[cdev] Utility bc
Grigoriy A. Sitkarev
sinclair80 на gmail.com
Пн Мар 15 18:40:05 MSK 2010
Хороший вопрос.
Вы читали спецификацию Open Group для утилиты bc? Вам ещё надо бы
установить себе операционную систему где вам будет удобно этими вещами
заниматься, и поэкспериментировать с уже готовой утилитой bc(1).
Основной смысл этого задания был в том чтобы простимулировать
учащегося к изучению и конструированию компиляторов и интерпретаторов.
Без этой теоретической базы задание останется для вас непонятным и
запрограммировать вы его не сможете.
1. Спецификация Open Group для bc дана в виде описания лексики и
грамматики языка. Вам нужно разобраться что это такое.
2. Вам нужно разобраться как вообще работают компиляторы и
интерпретаторы, из каких частей они состоят, как парсить
синтаксические конструкции и строить из них дерево и каким образом и
т.д.
3. После того как вы разобрались с построением дерева, вам можно будет
пропустить шаг оптимизации и пытаться сделать интерпретатор, который
будет "натравлен" на дерево, которое у вас строится.
Есть очень хорошая книга, ставшая классической, она в трёх изданиях
выходила (в 1977 г., 1986 г. и 2006 г.) - Compilers: Principles,
Techniques and Tools. Эта книга известна также под названием Dragon
Book. Сканы этих книг были в интернете выложены, на русском языке они
не издавались (к большому сожалению). И я думаю что это не
случайность.
Если вы сделаете хотя бы лексический анализатор, соответствующий
спецификации Open Group, я согласен поставить вам зачёт.
--
Г.А.
15 марта 2010 г. 13:38 пользователь Вилежанинов Василий
<megabot88 на gmail.com> написал:
> Здравствуйте.
>
> Что нужно реализовать в данной утилите?
>
>
>
> _______________________________________________
> cdev mailing list
> cdev на wiki.syktsu.ru
> http://wiki.syktsu.ru/cgi-bin/mailman/listinfo/cdev
>
>
Подробная информация о списке рассылки cdev