существует ли Универсальная Модель для языков?

Много языков программирования совместно используют универсальные и даже довольно универсальные функции. Например, при сравнении Java, VB6.NET, PHP, Python, затем Вы нашли бы общие функции, такие как управляющие структуры, числовые и обработка строк, и т.д.

Что было сделано для определения этих функций в метаязыке (или агностик языка) уровень?

UML предлагает описательную ссылку программного обеспечения в каждом аспекте, но реальный фокус, кажется, процессы данных. Действительно ли UML релевантен?

Я не спрашиваю, "Почему у нас нет единственного языка, который заменяет текущее изобилие". Нам нужны много различных инструментов (по крайней мере, в этой вечности).

Я не прошу, чтобы все языки соответствовали шаблону - блок по сравнению со скомпилированными языками достаточно отличается для создания этого невыполнимым (и некоторые люди называют HTML языком, хотя я не был бы). Любая попытка запустилась бы с правильно узкого объема. В соответствии с этим, я не ожидал бы, что модель покроет даже маленький выбор полной законностью.

Я ожидал бы однако, что такая модель могла использоваться для перемещения от одного языка до другого (с ограниченными целями - думают jist перевод).

5
задан Smandoli 14 April 2010 в 17:16
поделиться

6 ответов

То, что вы описываете, похоже на формальную семантику языков программирования. Существует множество подходов, и каждый из них дает способ формально специфицировать смысл программы на некотором языке программирования. В некоторых случаях эта спецификация по сути является переводом на другой язык, например, на лямбда-исчисление, или компиляцией для формально заданной абстрактной машины, например, SECD.

Здесь так много работы, что трудно выбрать конкретную ссылку. Но я надеюсь, что дал вам несколько полезных ключевых слов для продолжения поиска.

3
ответ дан 14 December 2019 в 08:46
поделиться

UML обычно используется для определения алгоритмов / кода в более простых терминах, прежде чем переходить к реальному коду.

Чтобы ответить на ваш вопрос, я предполагаю, что уже существует определенный набор требуемых частей языков, в то время как, если, иначе ... Будет ли это когда-либо установлено в качестве стандарта или превращено в базовую библиотеку это используется всеми языками: нет, это потому, что разные разработчики языков любят делать это сами.

0
ответ дан 14 December 2019 в 08:46
поделиться

Автор Pattern Calculus , кажется, предлагает такую ​​универсальную модель. Я ожидаю, что он окажется столь же полезным, как и предыдущие попытки определить универсальную модель, то есть хорошими частями, но не последним словом.

0
ответ дан 14 December 2019 в 08:46
поделиться

Было много попыток сделать это, но ни одна не была очень успешной. Самая ранняя, о которой я знаю, это UNCOL более 50 лет назад.

Вы привели список языков, которые имеют много общего, потому что они довольно похожи - все они процедурные языки с общими корнями и некоторыми расширениями ОО, так что это не слишком удивительно. Если вы начнете рассматривать различные языки, такие как LISP, haskell, erlang, prolog или даже SQL, вы увидите совсем другие вещи.

4
ответ дан 14 December 2019 в 08:46
поделиться

Я думаю, что наиболее близким к этому вопросу без ограничения общности является машина Тьюринга, которая не очень полезна для практических целей. Но если вы позволите машинным языкам Тьюринга «помечать» и повторно использовать, вы можете создать нужные концепции, работая от низкого до высокого уровня.

0
ответ дан 14 December 2019 в 08:46
поделиться

Я думаю, что MOF - универсальный язык. Вы можете, например, создавать диаграммы UML из MOF с помощью метамодели UML. Если вы сохраните эту информацию о метамодели в xmi, вы сможете сохранить любую информацию, которая вам нужна, и даже больше, чем на любом языке. Семантика XMI настолько богата, что ее использование безгранично. Если вы сопоставляете UML с xmi в верхней части метамодели, синхронизируемой в реальном времени с MOF, то для меня это универсальный язык.

0
ответ дан 14 December 2019 в 08:46
поделиться