README.md

Что это?

Это компилятор для языка “Рапира” с таргетом компиляции в язык Си.

Пример кода с оригинальным синтаксисом:

функ ПРОСТОЕ (N)
  если N < 2 то
    возврат нет
  все
  для M от 2 до корень(N) + 0.5 цикл
    если N /% M = 0 то
      возврат нет
    все
  кц
  возврат да
конец

вывод: ПРОСТОЕ(2003)
\ => выводит да 
вывод: ПРОСТОЕ(2004)
\ => выводит нет

Проект разделён на несколько стадий с конечной целью иметь модернизированную версию языка

Этапы проекта

  1. Имплементация языка, ссылаясь на оригинальную спецификацию (Препринт №767) (см. документ) с единственным изменением в виде бэкенда - компиляция в язык Си (см. секцию по модернизации)
  2. Модернизация языка

Модернизация языка

Вторая фаза проекта заключается в том, чтобы изменить язык в соответствии с современными запросами пользователей ЯП, то есть создать улучшенную версию исходного языка.

В качестве области применения модернизированной версии языка взяты области: автоматизация, скриптинг и быстрое прототипирование. В этих областях главные характеристики языка имеют большой потенциал: динамическая типизация, простота базиса и синтаксиса языка.

Самые важные вопросы, которые стоит решить: 1. Таргет генерации кода - этот вопрос ставиться и на первой фазе и принято решение на данном этапе генерировать код на языке Си, это позволит:

  • Упростить разработку
  • Иметь легко распростроняемый генерируемый код
  • Заиметь потенциал к хорошей производительности языка, избежав преграды интерпретации
  • Открыть дверь к прямому взаимодействию с Си кодом, позволив использовать большое количество готовых библиотек
  1. Отсутствие ООП/структур/именованых кортежей - в языке присутсвуют нетипизированные контейнеры - кортежи, которые могут выступать как структуры, но так как именованых элементов нет - стоит задуматься о добавление такого конструкта, а также об организации взаимодействия таких объектов, будь это ООП или что-то иное (наследование и т.п.)
  2. Модульная система- в препринте мало сказано о модульной системе, стоит задуматься об организации оной
  3. Система сборки и организации зависимостей - встроенная система сборки и работы с зависимосятми позволит избежать участь соревнования различных таковых систем сделанных пользователями, можно посмотреть на истории этого всего в Python и проблемы миграции с одной системы на другую
  4. ПИВИС/REPL - добавить возможность работы с языком в стиле: прочитать - исполнить - вычислить - и-снова, в стиле интерпретируемых языков

Использование ИИ

В разработке активно использовался Claude Code Opus 4.6. К примеру многие тесты на языке “Рапира” были сгенерированны ИИ на основе препринта, а также лексер и парсер по большей части.

Описание
Компилятор языка программирования Рапира и его модернизированной версии Рапира26
Конвейеры
0 успешных
0 с ошибкой
Разработчики