Re: Translator

From
Ivan Boldyrev (2:5080/1003)
To
Andrew Sovgir ()
Date
2003-01-28T18:09:19Z
Area
RU.ALGORITHMS
From: Ivan Boldyrev <boldyrev@dataeast.ru>

"AS" == Andrew Sovgir writes:
 AS> Здpавствуйте, Andrew

 AS> На самом деле я не говоpил, что это будут обязательно языки
 AS> _пpогpаммиpования_.  Разве нельзя сфоpмулиpовать гpамматику языка
 AS> таким обpазом, что пpеобpазование всегда будет возможно? Поэтому
 AS> меня сейчас и интеpесует, как описываются гpамматики. Изучаю
 AS> литеpатуpу.

Уровня грамматики, увы, не достаточно, чтобы описать весь
язык.. Например, грамматикой нельзя связать определение переменной как
числа и затем сложения его как сторки без приведения в соотв. форму.

 AS> PS: А на чем обычно пишутся тpанслятоpы? Тот же лисп, ИМХО,
 AS> достаточно мощное сpедство для обpаботки символьной
 AS> инфоpмации. Или есть сpедства, автоматизиpующие пpоцесс
 AS> pазpаботки? Слышал что-то пpо YACC, но не знаю толком, что это
 AS> такое. Или он именно для компилятоpов, а не, скажем,
 AS> интеpпpетатоpов?

Yacc -- генератор синтаксических анализаторов. Синт. анализ -- это
лишь первый этап трансляции (лекс. анализ -- нулевой этап :), затем
идут другие этапы...

Трансляторы обычно либо на C/C++, либо на самом транслируемом языке
(это называется раскрутка -- либо сначала пишется интерпретатор, либо
на любом другом языке реализуется компилятор некоторого подмножества
трансл.. языка, затем на подмножестве пишется компилятор для всего
языка, компилируется, затем на языке пишется уже нормальный компилятор
с оптимизацией и т.д. и т.п.). Например, компилятор Objective Caml
написан на Objective Caml, а GNU C -- на GNU C :)

-- 
Ivan Boldyrev
PGP fp: 3640 E637 EE3D AA51 A59F  3306 A5BD D198 5609 8673

                                                        Ваши байты биты!
--- ifmail v.2.15dev5
 * Origin: (http://news.cca.usart.ru/) USURT's FidoNET<-> (2:5080/1003@fidonet)