Здравствуйте, s22, Вы писали:
s22>Компилятор который написан на нитре не способен к самосборке из исходников, так как исходников на самом себе нет.... s22>Трабл?
Смотря какой. Компилятор Nitra комилируется на Nitra прошлой версии. Если есть желание Нитру можно будет поключить к своему языку.
Но в общем, Nitra является специализированным языком для разработки компиляторов, так что решение на любом языке общего назначения будет проигрывать решению на Nitra.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, s22, Вы писали:
s22>Компилятор который написан на нитре не способен к самосборке из исходников, так как исходников на самом себе нет.... s22>Трабл?
У меня (как мне кажется) ещё более глубокий вопрос: ведь и самого "языка Нитра" — тоже нет!
Скажем, есть у нас грамматика "языка черепашки", записанная в EBNF/PEG/etc. Но ведь получив AST, с ним надо что-то делать! На чём и где нужно писать код, который, скажем, обойдёт всё AST и выведет код на LLVM?
Затем, вопрос 2: Получим мы некий готовый компилятор ЯзыкЧерепашки.EXE и, чего уж там, внедрим в него динамически подключаемые синтаксические модули! Как это сделать синтаксически — понятно, а откуда возьмётся в Черепашка.EXE тот самый модуль, который умеет подгружать внешние DLL и давать им порулить синтаксисом?? Ведь мы сейчас в контексте языка черепашки, а не Нитры!
Я конечно много чего ещё не понимаю, но вот эти непонятки меня пока останавливают больше всех.