14 января 2015 г., 12:34 пользователь Харпалёв Иван
<[email protected]> написал:
> Доброго времени, могучий MoscowPM!
>
> Сейчас пишу небольшой язык.
> То есть пишу транслятор из него в awk и С. (Сначала в awk, чтобы
> потренироваться, а потом в C, там типизация, там сложнее).
>
> Когда язык был совсем примитивный, я его парсил регэкспами и по
> рабоче-крестьянски собирал код на целевом языке.
> Но язык подростает. И рефакторить оказывается очень печально.
>
> Как я понимаю весь процесс работы транслятора состоит из стандартных стадий,
> например:
> токенизация
> построение дерева разбора
> сбор кода на целевом языке из полученного описания.
>
> В общем тория у меня хромает и очень интересна.

По теории советую почитать dragon book.

> Но первым делом практика.

:-)))))))

> Скажите, чем строить дерево синтаксического разбора?
> что-то вроде

Вообще для создания компиляторов есть специальные инструменты.
http://dinosaur.compilertools.net

> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>



-- 
Best regards,
Ilya Chesnokov
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить