Здравствуйте, LaptevVV, Вы писали:
LVV>Все поскипано.
LVV>Компилятор в своем классическом виде — это устаревшая концепция.
LVV>ДОСТАЛО
в IDE набирать
программу посимвольно!
LVV>Нуж на просто другая IDE (редактор кода, конечно), заточенная под язык программирования. Редактор должен оперировать конструкциями языка а не символами. Простой пример — по клавише сразу появляется заготовка оператора for со всеми скобками b точками с запятой. Редактор ДОПУСКАЕТ символьный ввод ТОЛЬКО в нужных местах. Программист просто не сможет изменить ключевое слово, стереть скобку и т.д.

Действительно хорошая идея!
LVV>Отталкиваться надо от семантики языка — почитайте и Страуструпа о том же в Дизайн и эволюция.
LVV>Соответственно редактор сразу работает с внутренним представлением программы (синтаксчески-семантичекой конструкцией программы). О, только что идея пришла в голову, что внутренним представлением может быть IL!!
Гм. А как насчёт оптимизации? Или потом "компилировать окончательно"?
А если программа находится в ещё не готовом виде и её просто нельзя откомпилироваь в MSIL?
LVV>Таким образом, при таком редакторе нужен будет только генератор кода. Парсер и лексер — в принципе не нужны! В том классическом виде, как они сейчас понимаются. Особенно лексер ( в смысле сканер). Хотя лекго может быть выполнена обратный перевод в текст (для совместимости).
LVV>Естественно, редактор должен обладать полной информацией по синтаксису и семантике языка.
Я так понимаю, в редакторе будут помечаться места, где можно что-то писать своё?
А фактически даже не писать, а в соответствии с грамматикой языка редактор может предоставлять список возможных "ходов".
PS. Не воспринимайте серьёзно, почему-то представилось:
Вот программист хочет написать a = b + c;
написал
a = b
и нажал Ctrl+Space.
IDE заглянул в грамматику, там написано "+" | "-" | "*" | "/"
и выдаёт wizard:
"Выбор арифметического оператора"
Этот мастер соберёт все необходимые
сведения и поможет Вам выбрать
арифметический оператор для Вашей
программы. Для продолжения нажмите
клавишу "Дальше"
{Дальше>>} {Отмена}
на следующей закладке
"Выборите подходящий оператор"
( ) +
( ) -
( ) *
( ) /
( ) Всё равно
(*) Выбрать наилучший
{<<Назад} {Дальше>>} {Отмена}
далее
"Выбор арифметического оператора"
Мастер выбора арифметического
оператора собрал все необходимые
сведения для установки арифметического
оператора в Вашу программу.
Для завершения установки нажмите
клавишу "Готово"
{<<Назад} {Готово>>} {Отмена}