@vanoren
Начинающий разработчик

Как написать язык программирования?

Можно ли написать язык программирования на Flat Assembler для создания приложений с компилятором, простым синтаксисом.
На просторах интернета летает "одна вода", и я хотел бы получить развернутый ответ на этот вопрос с ссылками на полезные статьи по этой теме
  • Вопрос задан
  • 932 просмотра
Решения вопроса 1
Griboks
@Griboks
Развёрнутый ответ займет многобуков, поэтому кратко...
Языки бывают двух типов: компилируемые и интерпретируемые.

Сложность создания первых заключается в трансляции высокоуровневый абстракции в низкоуровневый код (+управление памятью и прочие сложные вещи). Самый простой подход - придумать свой синтаксис, который переводить в какой-нибудь C++ или C#, а затем использовать стандартные средства языка для компиляции.

Но я рекомендую вам сделать интерпретируемый язык (с постставкой Script). В таком случаем вы можете просто последовательно обрабатывать команды типа if cmd='add' then return a+b

А если вы не хотите разбираться во всем этом, то лучше использовать генератор парсеров/компиляторов. Затем написать на своём языке компилятор своего языка (bootstrapping), чтобы получить независимый компилятор.

P. S.
Ваш вопрос про ассемблер не понятен. Вы хотите написать парсер и компилятор на ассемблер или же хотите, транслировать ваш язык в ассемблер? Или интерпретатор на ассемблере? Чем ниже уровень, тем больше вариантов.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Zoominger
@Zoominger
System Integrator
Можно, но невозможно.
Даже создание компилятора для уже существующего языка у команд профессионалов занимает годы, при этом в команде присутствуют отличные специалисты в самых разных сферах.

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы