Универсальный метаязык для «простых» программ - PullRequest
3 голосов
/ 09 декабря 2010

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

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

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

Опять же, я не прошу перевод каждой возможной программы.Я думаю, что очень ограниченный, простой язык, но сверхпортативный.

Знаете ли вы что-нибудь подобное?Есть ли причина, по которой он не должен существовать?

Ответы [ 5 ]

2 голосов
/ 14 декабря 2011

Check Haxe и его страница Wikipedia . Это открытый исходный код, и его основная цель - это то, что вы описываете: создание кода на многих языках только из одного источника.

1 голос
/ 12 января 2015

Я немного посмотрел и нашел это.https://www.indiegogo.com/projects/universal-programming-language выглядит интересно

1 голос
/ 14 декабря 2010

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

В шаблоне вы сохраняете основные понятия алгоритма. Затем вы должны добавить код для этого алгоритма на одном или нескольких конкретных языках (C ++, Java, JS, Python), когда это необходимо. В любом случае вам придется делать это независимо от того, какой язык или подход вы выберете. Переключатель конфигурации выберет правильный язык для любого применяемого вами шаблона.

AtomWeaver - генератор кода, который работает с шаблонами и использует ABSE в качестве подхода к моделированию.

0 голосов
/ 10 декабря 2010

Классический Паскаль очень прост.Оберон является еще одним аналогичным вариантом.Или вы можете изобрести свой собственный производный язык, похожий на псевдокод из учебников по информатике.Легко реализовать переводчик с одного из этих языков на любой порядочный современный императивный язык.

0 голосов
/ 09 декабря 2010

Практически любой язык, который вы выберете, будет иметь какую-то функцию, которая не отображается на другой естественным образом. Самая близкая вещь, о которой я могу подумать, это, вероятно, полезное подмножество JavaScript. Конечно, если вы являетесь автором языка, вы можете ограничить его настолько, насколько вы хотите, предоставляя только конструкции, общие для любого языка (циклы, условные выражения и т. Д.)

В целях изменчивости было бы лучше использовать представление XML, но вам не хотелось бы кодировать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...