refal-5-lambda
refal-5-lambda copied to clipboard
Переписывание рантайма с C++98 на C89
Эта задача — подзадача для #197. Там же мотивация задачи и детали реализации
Требуется переписать файлы рантайма (refalrts-*.cpp
в папке src/lib
и подпапках) с C++98 на C89. Нужно заменить классы на структуры, их методы на функции, вместо контейнеров STL написать собственные ограниченные аналоги (реализаций вектора на Си в интернете можно найти миллион).
Подробности по этой задаче напишу позже.
В исходниках на Си должен использоваться тот же стиль оформления кода, что и в рантайме Рефала-05:
- Описание стиля: https://mazdaywik.github.io/Refal-05/A-style-guide.html
- Пример оформления: https://github.com/Mazdaywik/Refal-05/blob/master/lib/refal05rts.h
- Пример оформления: https://github.com/Mazdaywik/Refal-05/blob/master/lib/refal05rts.c
- Пример оформления: https://github.com/Mazdaywik/Refal-05/blob/master/lib/Library.c
Код должен компилироваться и работать с любым C89-совместимым компилятором. Должны поддерживаться операционные системы Windows, Linux и macOS. Код не должен требовать внешних библиотек.
Задача вполне подходит на летнюю практику, поскольку она сугубо ремесленная, не требует углублённого понимания работы компиляторов, научного творчества в ней мало. По крайней мере, научного творчества в ней мало на первый взгляд, в процессе вылезти может много чего интересного.
Внимание! Задача блокируется задачами #312 и #313, поэтому если выберете эту задачу на практику, напишите мне на почту или в комментарии, я вне очереди приступлю к двум вышеназванным задачам.
Задачу решаю я, @Mazdaywik.