Другие языки программирования и технологии
Сложно ли создать свой язык программирования? Хотя бы интерпретируемый?
Если вы смогли, то скажите, что для этого изучили, если не секрет?
Это зависит от того, какой язык вы собираетесь создать. Он ведь может быть совсем простым. К примеру, язык управления каким-нибудь простым приводом будет содержать всего две команды "вкл" и "выкл" и, скажем, "пауза Х сек".
Или это может быть универсальный язык, типа Бейсика. Или что-нибудь специализированное... И требования к языку тоже имеют значения.
В простейших вариантах задача написания своего языка решается элементарно.
В сложных - является сложнейшей задачей, под силу только серьезному коллективу.
У меня небольшой опыт:
Помимо общих программистских знаний (создание алгоритмов, работа с массивами, списками, строками, стеки и т.д.) и знаний средств и особенностей языков, на которых были реализованы эти интерпретаторы, читал несколько книг, сейчас уже не вспомню каких именно. В одной описывалась готовая методика разработки интерпретируемых языков. В другой - вопросы разбора выражений. И т.д. А так же документацию на языки и форматы, кое-что из теории по ЯП, но поверхностно, не углублялся в тему.
Или это может быть универсальный язык, типа Бейсика. Или что-нибудь специализированное... И требования к языку тоже имеют значения.
В простейших вариантах задача написания своего языка решается элементарно.
В сложных - является сложнейшей задачей, под силу только серьезному коллективу.
У меня небольшой опыт:
- Несколько простейших интерпретаторов линейных алгортимов, без арифметических выражений, без условных операторов. Что-то вроде "сделай А", "сделай Б"..
- Бейсик-подобный язык для управления станком. Там, помимо специализированных команд "Сверлить", "Перемещение" и т.д. был условный оператор, оператор цикла FOR и WHILE. Вызов подпрограммы и разбор простых арифметических выражений. Это, пожалуй, был самый сложный проект.
- Интерпретатор арифметических выражений.
- Интерпретатор для файла с расписанием выполнения нескольких операций. Спец. язык для задания названия операции, периодичности запуска.
- Несколько парсеров для разных форматов, это тоже своего рода интерпретатор.
- "Язык" для разметки шаблонов печатных форм на основе таблиц Excel.
Помимо общих программистских знаний (создание алгоритмов, работа с массивами, списками, строками, стеки и т.д.) и знаний средств и особенностей языков, на которых были реализованы эти интерпретаторы, читал несколько книг, сейчас уже не вспомню каких именно. В одной описывалась готовая методика разработки интерпретируемых языков. В другой - вопросы разбора выражений. И т.д. А так же документацию на языки и форматы, кое-что из теории по ЯП, но поверхностно, не углублялся в тему.
Всем курсом писали компилятор в качестве курсовой работы. Матлогика и пр. курсы дискретной математики. Занудные вещи вроде лексического анализа (ФБН) логически сложная задача. С тех пор нет желания заниматься чем-нибудь подобным. Точнее, для появления мотивации придётся приложить много усилий
Сам язык создать не сложно, его за неделю можно придумать. Сложности будут не с созданием языка, а с написанием компилятора или интерпретатора к этому языку. Вот на это уходит несколько лет
Похожие вопросы
- Сложно ли самому освоить языки программирования? Хотел бы этим заняться.
- Хочу создать свой язык программирования и компилятор. Думаете это очень сложно?
- Как создать свой язык программирования ?
- Как создать свой язык программирования? совет?
- А реально создать свой язык программирования?
- Сложно ли будет изучить язык программирования C#?
- Хочу создать свой язык программирования. Нужна помощь по синтаксису
- Почему бы не создать идеальный язык программирования?
- Ассемблер сложно ли выучить этот язык программирования.
- Как создать свой язык программирования?