Компилятор языка RuC

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

User avatar
askfind
Devil
Posts: 822
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Компилятор языка RuC

Post by askfind »

Компилятор языка RuC. Авторство принадлежит Андрею Николаевичу Терехову, заведующему кафедрой "Системного программирования" СПбГУ.


https://github.com/andrey-terekhov/RuC

Исходный код С на русском языке!

Этот репозиторий содержит компилятор языка RuC. Авторство принадлежит Андрею Николаевичу Терехову, заведующему кафедрой "Системного программирования" СПбГУ.
Сборка

При первоначальном использовании необходимо установить некоторые утилиты:

$ sudo apt-get -y install git gcc g++ cmake clang-tidy clang-format-9

Для конфигурирования и сборки репозитория воспользуйтесь:

$ cmake -S . -B build
$ cmake --build build --config Release

P.s. Если вы собирали Debug версию, не забудьте вернуть -DCMAKE_BUILD_TYPE=Release

2.1.2. Стадии трансляции

Приоритет синтаксических правил перевода определяется следующими стадиями трансляции:
Исходный файл разбивается на токены препроцессора и последовательности пробельных символов (включая комментарии). Исходный файл не должен заканчиваться токеном частичной препроцессора или частичным комментарием. Каждый комментарий заменяется одним пробелом. Символы новой строки сохраняются.
Выполняются директивы препроцессора, расширяются вызовы макросов. Если последовательность символов, соответствующая синтаксису универсального имени символа, создается конкатенацией токенов, поведение не определено. Директива препроцессора #include вызывает рекурсивную обработку именованного заголовка или исходного файла с этапа 1 по этап 2. Затем все директивы повторной обработки удаляются.
Каждый элемент исходного набора символов и управляющая последовательность в символьных литералах и строковых литералах преобразуются в соответствующий член набора символов выполнения.
Строковые литералы, следующие друг за другом, объединяются.
Пробелы, разделяющие токены, больше не имеют значения. Каждый токен препроцессора преобразуется в токен. Полученные токены синтаксически и семантически анализируются и переводятся как единица перевода.
You do not have the required permissions to view the files attached to this post.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
Shaos
Admin
Posts: 24078
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Язык Си для троичного компьютера

Post by Shaos »

Это что-то над clang-ом чтоли?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
askfind
Devil
Posts: 822
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: Язык Си для троичного компьютера

Post by askfind »

Shaos wrote:Это что-то над clang-ом чтоли?
Полноценный компилятор С из исходного кода.
Есть тесты конструкций реализации Си. Хорошая документация по описанию компилятора.
Поддержка ключеных слов языка Си на русском языке, английском языке.

Создаёт бинарные файлы для микроконтроллеров. Есть примеры и описание как это сделать. Можно добавить поддержку других процессоров.

На этом проекте с исходными кодами компилятора Си можно сделать поддержку троичных вычислителей.
C/RUC_Soft$ tree -L 2
.
├── roboGTK
│   ├── build
│   ├── CMakeLists.txt
│   ├── LICENSE
│   ├── README.md
│   ├── res
│   └── src
├── RuC
│   ├── build
│   ├── CMakeLists.txt
│   ├── docs
│   ├── libs
│   ├── LICENSE
│   ├── path
│   ├── README.md
│   ├── scripts
│   ├── src
│   └── tests
├── RuC-UI
│   ├── Build
│   ├── CMakeLists.txt
│   ├── keywords.txt
│   ├── LICENSE
│   ├── Makefile
│   ├── README.md
│   ├── RuC
│   ├── RuC.sublime-project
│   ├── RuCVM
│   ├── tests
│   ├── test.sh
│   ├── thirdparty
│   ├── UI
│   └── util
└── RuC-VM
├── CMakeLists.txt
├── libs
├── LICENSE
├── README.md
├── scripts
└── src

24 directories, 16 files
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
Shaos
Admin
Posts: 24078
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Компилятор языка RuC

Post by Shaos »

А зачем ему clang-tidy и clang-format-9 ?

P.S. В 2022 году Сергей Вакуленко поделился h-файлом, с помощью которого можно писать Си программы на старославянском языке :)

https://vak.dreamwidth.org/879986.html

Code: Select all

#include <stdio.h>
#include "ancientslavic.h"

молитва отченаш

  цело х, у, xmax ъ

  молви ( "Введите предел по икс (5-15): " ) ъ
  поведай ( "%d", &xmax ) ъ

  х стане дулю ъ
  покуда х помене xmax пущай
    у стане х да 2 ъ
    молви ( "y (%d) = %d\n", х, у ) ъ
    х стане х да 1 ъ
  аминь

  молви ( "Готово\n" ) ъ
  воздати дулю ъ

аминь
Я тут за главного - если что шлите мыло на me собака shaos точка net