Другие языки программирования и технологии

Сложно ли создать свой язык программирования? Хотя бы интерпретируемый?

Если вы смогли, то скажите, что для этого изучили, если не секрет?
Ни
Николай
6 177
Это зависит от того, какой язык вы собираетесь создать. Он ведь может быть совсем простым. К примеру, язык управления каким-нибудь простым приводом будет содержать всего две команды "вкл" и "выкл" и, скажем, "пауза Х сек".
Или это может быть универсальный язык, типа Бейсика. Или что-нибудь специализированное... И требования к языку тоже имеют значения.

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

У меня небольшой опыт:
  1. Несколько простейших интерпретаторов линейных алгортимов, без арифметических выражений, без условных операторов. Что-то вроде "сделай А", "сделай Б"..
  2. Бейсик-подобный язык для управления станком. Там, помимо специализированных команд "Сверлить", "Перемещение" и т.д. был условный оператор, оператор цикла FOR и WHILE. Вызов подпрограммы и разбор простых арифметических выражений. Это, пожалуй, был самый сложный проект.
  3. Интерпретатор арифметических выражений.
  4. Интерпретатор для файла с расписанием выполнения нескольких операций. Спец. язык для задания названия операции, периодичности запуска.
  5. Несколько парсеров для разных форматов, это тоже своего рода интерпретатор.
  6. "Язык" для разметки шаблонов печатных форм на основе таблиц Excel.

Помимо общих программистских знаний (создание алгоритмов, работа с массивами, списками, строками, стеки и т.д.) и знаний средств и особенностей языков, на которых были реализованы эти интерпретаторы, читал несколько книг, сейчас уже не вспомню каких именно. В одной описывалась готовая методика разработки интерпретируемых языков. В другой - вопросы разбора выражений. И т.д. А так же документацию на языки и форматы, кое-что из теории по ЯП, но поверхностно, не углублялся в тему.
Дмитрий Дымченко
Дмитрий Дымченко
60 220
Лучший ответ
Всем курсом писали компилятор в качестве курсовой работы. Матлогика и пр. курсы дискретной математики. Занудные вещи вроде лексического анализа (ФБН) логически сложная задача. С тех пор нет желания заниматься чем-нибудь подобным. Точнее, для появления мотивации придётся приложить много усилий
Виталик
Виталик
98 516
Сам язык создать не сложно, его за неделю можно придумать. Сложности будут не с созданием языка, а с написанием компилятора или интерпретатора к этому языку. Вот на это уходит несколько лет
Сергей Щукин
Сергей Щукин
5 840