- A01-straight-line-int-sm (до 1 октября)
Реализовать интерпретатор языка выражений, компилятор языка выражений в представление стековой машины и интерпретатор стековой машины.
- A02-straight-line-x86 (до 10 октября)
Реализовать компилятор из языка стековой машины в представление X86.
- A03-straight-line-parser (до 19 октября)
Реализовать синтаксический анализатор языка выражений.
- A04-control-flow (до 27 октября)
Обогатить язык выражений операторами потока управления (skip, ;, if, for, while do, repeat until), поддержать трансляцию и интерпретацию во всех режимах.
- A05-all-expressions (до 4 ноября)
Объединить выражения и операторы в одну синтаксическую категорию, поддержать проверку атрибутов.
- A06-scopes-functions (до 13 ноября)
Обогатить язык функциями и областями видимости; поддержать во всех режимах работы.
- A07-data-structures (до 22 ноября)
Добавить в язык поддержку массивов, строк и S-выражений; поддержать во всех режимах работы.
- A08-fixnum (до 3 декабря)
Реализовать поддержку fixnum. Все указатели должны быть плоскими неупакованными значениями с младшим битом равным 0. Все числа должны иметь младший бит равный 1; диапазон значений ограничивается 31-битом. Операции над числами должны быть по возможности оптимизированы.
- A09-case (до 13 декабря)
Добавить в язык поддержку сопоставления с образцом.
- A10-gc (до 23 декабря)
Снабдить среду исполенния менеджером памяти, поддерживающим mark-and-copy сборщику мусора. См. комментарии в файлах runtime.c
и gc_runtime.s