Изисквания
Всеки студент трябва да разработи проект по Методи на транслация. Проекта трябва да представлява транслатор (компилатор) преобразуващ програми на език от високо ниво (SimpleC или SimpleP) до език от ниско ниво (машинен език или асемблер за платформите базирани на x86, .Net IL или Java ByteCode). Синтаксиса на възможните входни езици е даден в помощните материали за курса.
Вие можете да:
- използвате произволен език за програмиране;
- използвате произволна среда за разработка;
- използвате произволна операционната система;
- използвате произволен метод на синтактичен разбор;
- използвате произволен метод за генерация на код;
- реализирате компилатора като конзолно, графично, WEB или друго приложение;
- работите в групи от двама човека (на изпита всеки решава самостоятелно задачата);
- използвате стартовия проект scsc (даден е в помощните материали), като основа за създаване на собствен проект;
- обсъждате проблема, изискванията и материалите с всеки;
Вие НЕ можете да:
- използвате проекти (или части от тях) създадени от други лица за целите на този курс, включително създадени в предишни учебни години;
- използвате проекти (или части от тях) създадени от други лица за сходни цели;
- използвате код, който не сте реализирали собственоръчно (с изключение на код от стартовия проект);
- използвате компилатори/генератори на компилатори;
Критерии за оценяване
В зависимост от сложноста на избраната от вас граматика на език и в зависимост от степента на завършеност на реализацията, вие получавате точки както следва:
- Simple-C-1 или Simple-P-1 (лексикален, синтактичен и генерация): (10-15 точки);
- Simple-C-3 или Simple-P-3 (лексикален, синтактичен и част. ген.): (15-25 точки);
- Simple-C-3 или Simple-P-3 (лексикален, синтактичен и генерация): (25-35 точки);
- Simple-C-5 или Simple-P-5 (лексикален, синтактичен и част. ген.): (25-35 точки);
- Simple-C-5 или Simple-P-5 (лексикален, синтактичен и генерация): (40 точки);
- За допълнителни конструкции в езика или възможности на компилатора: (0-10 бонус точки);
- За тестови примери за езиците Simple-C#, Simple-C, Simple-P: (0-20 бонус точки).
Оценката на проект се формира по формулата: (20 + Брой точки)/10. Закръглява се до цяла оценка (по общоприетите правила). Оценката се получава на практическата част от изпита при решена задача и при представен проект. Задачата се състои в промяна на разработения проект в определена насока, например добавяне на ново правило в граматиката на езика и реализацията му в проекта.
Литература
- A. V. Aho, M. S. Lam, R. Sethi, and J. D. Ullman, "Compilers: Principles, Techniques, and Tools" (Second Edition), Addison-Wesley, 2007;
- и други.