На каком языке программирования (Assembler / С / С++) лучше будет написать компилятор для своего языка программирования?
Учитывая, что компилятор и является своего рода инструментом написанного нами языка программирования (перевода исходного кода "текста" на машинные коды), то выходит нужно создать лишь компилятор, но на каком языке эффективнее будет? Или разницы особо никакой нет. Просвятите неофита. Из языков знаю лишь С++ на 60-65% где-то. Остальные незначительно (Assembler / Java)...
Да там разница будет 1%. Си быстрее и легче, чем Си++. Ассемблер - классика, но даже сейчас уже пишут на Си вместо ассемблера
Лучше писать на том языке, который ты знаешь. Специалист сам выбирает подходящий язык программирования. А неспециалист вряд ли справится с решением задачи.
Для синтаксического анализа текста есть генераторы парсеров, например ANTLR. C++ там поддерживается, Ассемблер не поддерживается.
"Создать лишь компилятор"??? Самый известный учебник по написанию компиляторов содержит около 1200 страниц немаленького формата.
Не важно, на каком языке написан компилятор. Важно, насколько оптимальный машинный код он генерирует. И тут лучше не писать с нуля, а взять, например, llvm - который позволяет создать свой front-end для любого языка программирования.
Компилятор компилируемого языка, как правило, пишется на этом самом языке, кроме самой первой версии, разумеется. Так что выбор языка для первого компилятора не критичен абсолютно, пиши на том, что лучше знаешь.
Мне в этом плане очень помог исходник компилятора с Си. Написанный на Си.
Кажется, в 1986 году...