Как пишутся компиляторы ?
От: Forrest_Gump  
Дата: 04.12.04 16:54
Оценка:
Вопрос, конечно, немного детский, но прошу не RTFM'ить меня сразу к учебникам , а ответить на такой вопрос:

В 3-м издании Страуструппа в 6-й главе разбирается пример с калькулятором, причём
1) сразу говорится, что программа является миниатюрным компилятором
2) язык калькулятора представлен в виде:
program:
  END // END is endofinput
  expr_list END
expr_list:
  expression PRINT // PRINT is semicolon
  expression PRINT expr_list
expression:
  expression + term
  expression term
  term
term:
  term / primary
  term * primary
  primary
primary:
  NUMBER
  NAME
  NAME = expression
  -primary
  (expression)

То есть сначала говорится, что программа — это список выражений, затем — что список выражений — это выражения, разделённые точкой с с запятой, затем — что такое выражение и т.д.

Вопрос в том, отличается ли это принципиально от компилятора С++, скажем (надо "лишь" правильно записать всю грамматику языка в аналогичном формате) ?
Компилятор писать (пока ?) не сообираюсь, интересно просто получить общее представление (самое общее)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.