refal-5-lambda icon indicating copy to clipboard operation
refal-5-lambda copied to clipboard

Переписывание рантайма с C++98 на C89

Open Mazdaywik opened this issue 4 years ago • 1 comments

Эта задача — подзадача для #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 avatar Jul 04 '20 09:07 Mazdaywik

Задачу решаю я, @Mazdaywik.

Mazdaywik avatar Oct 04 '20 16:10 Mazdaywik