[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