Re[2]: Интеллектуальный редактор кода контролирующий синтаксис при вооде
От: mrhru Россия  
Дата: 11.12.03 10:08
Оценка: 58 (4) -1 :))) :))) :))) :))) :))) :))) :))) :)
Здравствуйте, 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:

"Выбор арифметического оператора"

  Этот мастер соберёт все необходимые 
    сведения и поможет Вам выбрать
   арифметический оператор для Вашей
  программы. Для продолжения нажмите
              клавишу "Дальше"
     
      {Дальше>>} {Отмена}


на следующей закладке

"Выборите подходящий оператор"
  ( )  +
  ( )  -
  ( )  *
  ( )  /
  ( )  Всё равно
  (*)  Выбрать наилучший

{<<Назад} {Дальше>>} {Отмена}


далее

"Выбор арифметического оператора"

      Мастер выбора арифметического 
      оператора собрал все необходимые
  сведения для установки арифметического 
      оператора в Вашу программу. 
    
    Для завершения установки нажмите 
          клавишу "Готово"

{<<Назад} {Готово>>} {Отмена}


 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.