Целью семестра является совместная разработка примитивного высокоуровневого (на выходе АЯВУ) компилятора.
Разработка производится на C# .NET v 2.
После обзорных занятий студенты самостоятельно выбирают себе модули для разработки.
Джеффри Рихтер, CLR via C#. Программирование на платформе Microsoft .NET Framework 2.0 на языке C#. ISBN: 978-5-91180-303-2, 5-7502-0285-2.
Альфред В. Ахо, Моника С. Лам, Рави Сети, Джеффри Д. Ульман, Компиляторы: принципы, технологии и инструментарий. ISBN 978-5-8459-1349-4, 0-321-48681-1.
Microsoft .NET framework v 2.x (содержится в Windows ≥ XP)
Visual Studio 2008 (при наличии лицензии)
(не зависимые от Novell =) ), работают, по крайней мере, под Windows, Linux, OS X.
Mono 2.x
MonoDevelop 2.x
Subversion ≥ 1.6
TortoisSVN (Windows)
Доступен по ссылке. Необходимо:
Проигнорировать и принять постоянно не подписанный сертификат SSL/TLS.
Ввести имя пользователя (если предложенное не совпадает, один раз предложить пустой пароль, а потом уже правильное имя пользователя) и пароль - как в учётной записи Windows на ММ.
Проект должен успешно собираться. Если не уверены, что всё хорошо положили в репозиторий, сделайте checkout в пустой каталог и попробуйте построить проект.
Не должны выдаваться предупреждения при сборке. Но если уж никак от них не избавиться, то в коде должен быть комментарий, что данная конструкция вызывает предупреждение, но оставлена потому-то.
Свои реализации надо добавлять в каталог https://adm2.math.spbu.ru/svn/08/grp244/sem-II/sacod-practice/Lang7.cs/Lang7Compiler/Impl и наследовать от абстрактных классов из https://adm2.math.spbu.ru/svn/08/grp244/sem-II/sacod-practice/Lang7.cs/Lang7Compiler/Abstracts.
ссылки в solution на свой проект добавлять для тестирования, но commit SyntAna.sln делать только когда допишете, чтобы не портить его работоспособность.
На данный момент зачёт имеют:
lex_pars.py — примитивный нисходящий анализатор для инфиксных выражений с право- и леворекурсивными операциями, служащий для демонстрации того, что это не страшно