
Это статья про разновидность языка Си с русским и оригинальным английским синтаксисом, работающими одновременно. «Если» и «if» работают как синонимы. Это не интерпретатор. Это компилятор, который способен собрать себя сам. Это даже не транспилятор русского в английский — оба набора слов работают равноценно. Код можно посмотреть https://кодыч.рф/administrator/rusi.
Как это выглядит
// Английский main с русским типом и оператором int main() { int x = 42; if (x == 42) { возврат 0; } return 1; } // Полностью русский синтаксис цел главн() { цел ъ = 42; если (ъ == 42) { возврат 0; } возврат 1; } // Смешанный стиль цел main() { printf("Легкоступов! Ты чего написал?"); возврат 0; }
Философия проекта
Латиница везде и во всем. На английском пишут код для ЭВМ, математики вечно ищут икс, аккорды для гитары на импортном пишутся (E G A E G B A E G A G E), номера автомобилей в РФ используют только те буквы, которые совпадают с латиницей (не ломать же им там свой мозг пониманием букв «Ы» или «Щ»).
RMS владея английским и испанским — явно не думал же он о том, что в Евразии еще много кто живет, когда создавал свой опенсорс. Создавал он для своей идеи. О чем это говорит? Мы не создаем — мы импортируем. А если мы не создаем — мы не понимаем. Инженерное мышление должно подсознательно ощущать недостатки и опасности таких импортов. Это даже не вопрос пресловутого «импортозамещения», на которое у всех негатив, а вопрос подходов к формированию и осознанию окружающих нас технологий, как ни странно.
Работники ИТ в России двуязычны, как и везде где английский не основной язык. Создать двуязычный компилятор казалось бы — это вполне естественно. Хотя тот же Рю Уэяма не сделал японский компилятор. Авторы Луа из Бразилии не сделали бразильский. Авторы Котлина из Петербурга не стали делать его кириллическим. Что их всех остановило? Они все однозначно знали что-то кроме инглиша.
Как оно вообще зародилось?
Вкратце: пишу с нуля свой язык программирования. Ассемблер на русском. https://кодыч.рф/administrator/kvs. Пишу его на Python. И вот мне захотелось написать компилятор с русскими кириллическими мнемониками на кириллическом же языке. Где бы такой взять? В РФ есть такой продукт. Своеобразный и для специфических задач, платный и проприетарный. Хочу опенсорс. Решение — сделать самому. Вот уж парадокс курицы и яйца.
Ранее была статья https://habr.com/ru/news/963440/, где было рассказано о внедрении русифицированного JS в образовании. Переделать интерпретируемый язык, изначально заточенный под веб — легко. Там сразу работает юникод почти на всех уровнях. Но системный язык хочется видеть сделанным на системном языке. Значит, переделывать нужно системный язык программирования.
На просторах GitHub был обнаружен компилятор chibicc гения Рю Уэямы (Rui Ueyama), и главное — минималистичный, легче переделывать.
Трудности перевода
Чтобы перевести, нужно вкратце описать как работает компилятор. Он потребляет слова и переводит их в узлы AST — абстрактного синтаксического дерева. Казалось бы, идея проста. Для логики читающей узлы AST уже не важно, как называлось слово на человекочитаемом языке, и можно просто поменять список ключевых слов. Но не все так просто. В компиляторостроении традиционным считается подход потреблять слова и операторы побайтово, а не посимвольно.
Для нас это означает, что просто подставить слово на великом и могучем не выйдет — каждая кириллическая буква занимает по 2 байта. Такой компилятор соберется, но работать не будет.
Исключением могут считаться, разве что интерпретируемые языки, заточенные под веб — там юникод изначально заложен как основной способ кодировки. К таким я отнесу JS и PHP. Хуже дела обстоят с интерпретаторами, спроектированными для прикладных задач. Lua и Python борются за производительность и любят использовать потребление именно по байтам. FASM архитектурно вообще имеет систему фильтрации на основе таблицы с допустимыми символами.
Техническая реализация
Главная функция в модуле unicode.c, которая отвечает за посимвольный парсинг вместо побайтового, это decode_utf8().
uint32_t decode_utf8(символ **нов_поз, символ *п) { беззнак символ первый = (беззнак символ)*п; если (первый < 0x80) { *нов_поз = п + 1; возврат первый; } цел длина; uint32_t рез; uint32_t мин_знач; если ((первый & 0xF8) == 0xF0) { длина = 4; рез = первый & 0x07; мин_знач = 0x10000; } иначе если ((первый & 0xF0) == 0xE0) { длина = 3; рез = первый & 0x0F; мин_знач = 0x800; } иначе если ((первый & 0xE0) == 0xC0) { длина = 2; рез = первый & 0x1F; мин_знач = 0x80; } иначе { error_at(п, "некорректная UTF-8 последовательность"); } для (цел ш = 1; ш < длина; ш++) { беззнак символ байт = (беззнак символ)п[ш]; если ((байт & 0xC0) != 0x80) error_at(п, "некорректная UTF-8 последовательность"); рез = (рез << 6) | (байт & 0x3F); } если (рез < мин_знач) error_at(п, "избыточная UTF-8 последовательность"); если (рез >= 0xD800 && рез <= 0xDFFF) error_at(п, "суррогатные пары недопустимы в UTF-8"); если (рез > 0x10FFFF) error_at(п, "кодпоинт превышает U+10FFFF"); *нов_поз = п + длина; возврат рез; }
В оригинальном chibicc (и во многих классических компиляторах) лексер при чтении исходного кода работает с байтами. Он видит поток байтов и интерпретирует их как символы ASCII. Для кириллицы это было бы катастрофой, потому что русская буква «А» в UTF-8 занимает два байта (0xD0 0x90), и лексер увидел бы два разных «токена» вместо одной буквы.
Функция decode_utf8() решает эту проблему, выполняя преобразование байтового потока в поток кодпоинтов (символов Unicode). Она работает следующим образом:
Анализ первого байта: Функция смотрит на первый байт последовательности и определяет, сколько байтов занимает текущий символ (1, 2, 3 или 4 байта).
Валидация: Она проверяет, что последующие байты являются корректными “продолжениями” (их старшие биты равны 10).
Сборка: Функция извлекает значащие биты из каждого байта и собирает их в одно целое 32-битное значение — код символа Unicode.
Теперь, вместо того чтобы просто взять байт (*p++), лексер в tokenize.c использует новую функцию для получения следующего символа:
// Вместо побайтового чтения: // c = *p++; // Используется посимвольное чтение: c = decode_utf8(&p, p);
Это фундаментальное изменение. Оно означает, что весь последующий код (проверка на is_ident1, is_ident2 и т.д.) работает уже не с байтами, а с полноценными символами Unicode. Именно благодаря этому можно использовать в коде переменные счётчик и ключевое слово если. decode_utf8() — это «переходник» между миром байтов (на уровне файла) и миром символов (на уровне логики компилятора).
Далее уже можно сделать так:
стат бул зарезервированное_слово(Token *ток) { стат ХешТаблица карта; если (карта.вместимость == 0) { стат символ *ключ_слова[] = { "return", "if", "else", "for", "while", "int", "sizeof", "char", "возврат", "если", "иначе", "для", "пока", "цел", "размер", "символ", "struct", "union", "short", "long", "void", "typedef", "_Bool", "структ", "объед", "корот", "длин", "пусто", "типдеф", "enum", "static", "goto", "break", "continue", "switch", "case", "переч", "стат", "перейти", "прерви", "продолжи", "выбор", "случай", "default", "extern", "_Alignof", "_Выравнивание_типа", "_Alignas", "_Выравнивание", "do", "signed", "_Generic", "_Обобщ", "умолч", "внеш", "делай", "знак", "unsigned", "const", "volatile", "auto", "register", "restrict", "беззнак", "конст", "летуч", "авто", "регистр", "огранич", "__restrict", "__restrict__", "_Noreturn", "_Безвозврат", "float", "double", "плав", "двойн", "typeof", "asm", "_Thread_local", "__thread", "_Atomic", "типоф", "асм", "__attribute__", }; для (цел ш = 0; ш < размер(ключ_слова) / размер(*ключ_слова); ш++) хеш_вставить(&карта, ключ_слова[ш], (пусто *)1); } возврат хеш_получить2(&карта, ток->loc, ток->len); }
Особняком стоят логические идентификаторы:
#ifndef _STDBOOL_H_INCLUDED #define _STDBOOL_H_INCLUDED // Тип булевой переменной (встроенный тип _Bool) #define bool _Bool #define true 1 #define false 0 // Тип булевой переменной (русский синоним) #define бул _Bool #define истина 1 #define ложь 0 #define __bool_true_false_are_defined 1 #endif // _STDBOOL_H_INCLUDED
Такой подход дает самое интересное — обратную совместимость с оригинальным языком.
Обратная совместимость как ключевая фича
Важно понимать: Руси — это не “новый язык”. Это надстройка над C. Всё, что работает в C, работает и в Руси. Это означает, что:
Можно копировать любой английский код — он скомпилируется без изменений.
Можно импортировать любые C-библиотеки — они будут работать как родные.
Можно смешивать
int main()ицел главн()в одном файле.Можно постепенно переходить на русский синтаксис, не переписывая весь проект сразу.
Это не замена английского. Это расширение выбора. Ты можешь писать так, как тебе удобно, не теряя совместимости с миром. Это свобода. Это комфорт. Это уважение к себе и своей культуре.
Целевая архитектура
Компилятор генерирует код для архитектуры x86-64 (AMD64) под операционные системы семейства Linux. Это означает, что:
Исполняемые файлы собираются в формате ELF64.
Используется стандарт System V AMD64 ABI (тот же, что у GCC и Clang).
Исходный код может иметь расширения .c, .си, .рс (программа на русском C). Заголовочные файлы могут иметь расширения .h, .з (заголовок на русском).
Самосбор
Компилятор способен скомпилировать сам себя. Это важный этап разработки, который подтверждает, что компилятор достаточно зрелый и надёжный для работы с собственным кодом.
Процесс самосбора выглядит так:
Исходный код компилятора уже написан на Rusi (смесь русского и английского синтаксиса). Собрать его с помощью gcc не выйдет.
Этот код компилируется текущей собранной версией компилятора (stage1).
Полученный бинарник (stage2) снова компилирует исходный код (stage3).
Проверяется, что stage2 и stage3 идентичны.
Скачать, собрать и проверить
Клонируем репозиторий:
git clone https://кодыч.рф/administrator/rusi.git cd rusi
Собираем компилятор:
make
Готовый бинарник появляется в папке stage2/:
ls stage2/ rusi.elf
Теперь можно заменить бинарник в корне проекта и прогнать тесты:
make test-all
Далее можно поупражняться в написании простеньких программ.
Создадим два файла: привет.з и программа.си. Можно и одним обойтись и проще сделать, но тут пример написан для красоты синтаксиса.
// привет.з - заголовочный файл #включить <stdio.h> #define ПЕЧАТЬ printf
// программа.си - основная программа #включить "привет.з" цел главн() { ПЕЧАТЬ("Привет, мир!\n"); возврат 0; }
Компилируем и запускаем:
./rusi.elf программа.си -o программа ./программа # Вывод: Привет, мир!
Список синонимов
? Типы данных (13 синонимов)
Английский |
Русский |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
? Ключевые слова (17 синонимов)
Английский |
Русский |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
? Операторы (18 синонимов)
Английский |
Русский |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
? Директивы препроцессора (15 синонимов)
Английский |
Русский |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
? Встроенные макросы (9 синонимов)
Английский |
Русский |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
? Функции
Английский |
Русский |
|---|---|
|
|
Вместо заключения
У нас очень развито направление перевода медиа-контента. Игры, книги, песни, фильмы и сериалы.
Переложить импортное кино на великий и могучий может любой переводчик, который всех категорически приветствует. Это не требует понимания того, как устроена кинокамера или монтажный стол. Напереводить так можно очень много всего.
Перевести игру может, теперь вообще кто угодно. Причем автоматизированно.
Перевести язык программирования — это совсем другое. Это сложно. Потому что перевести язык программирования — это иногда близко к пересозданию этого языка с нуля. Изначально я и начал создавать свой KVS с нуля.
Тут не получится просто взять и заменить «if» на «если» в исходниках компилятора. Потому что компилятор — это не текст. Это сложная система, состоящая из множества взаимосвязанных компонентов: лексер, парсер, препроцессор, генератор кода, оптимизатор, линкер. Каждый из этих компонентов ожидает определённые токены, определённые ключевые слова, определённую грамматику. И чтобы изменить язык, который понимает компилятор, нужно изменить все эти компоненты. А чтобы изменить их — нужно понять, как они работают.
Перевод фильма — это работа переводчика. Перевод компилятора — это работа инженера.
P.S.
Название «Руси» намеренно выбрано таким, чтобы было понятно, что это русифицированный Си. Использование латинского варианта названия «Rusi» — это Rui Ueyama R.U. + Си.
Ссылки
Исходный код Руси: https://кодыч.рф/administrator/rusi
КВС (ассемблер с русским синтаксисом): https://кодыч.рф/administrator/kvs
Оригинальный chibicc: https://github.com/rui314/chibicc
Планы развития
Переписать весь код компилятора на русский синтаксис.
Расширение для подсветки синтаксиса в VS Code / VS Codium.
Русификация стандартной библиотеки (
стандарт.з,строки.з,математика.з).Портирование КВС с Python на Руси.
Комментарии (25)

stungnthumz
04.08.2026 16:08ѣжѣли провѣрятичегоглаголют молчаливо еси ложъ тогдауж прѣрвати спасихоспади1

vadimr
04.08.2026 16:08Почему именно Сиъ? Большинство ныне используемых языков, начиная с Лиспа по хронологии и с Питона по распространённости, из коробки позволяют использовать идентификаторы на кириллице. Только это мало кому нужно.

kmatveev
04.08.2026 16:08Пафоса дофига. Гугл утверждает, что gcc давно считает, что исходники в UTF-8, и поддерживает другие кодировки, а значит юникод поддерживает без проблем. Добавляем в лексер синонимы для ключевых слов, и вроде всего делов, даже парсер трогать не надо.

Fromych
04.08.2026 16:08В гцц парсер переписан уже сто раз, а тут человек взял крошечный chibicc для быстрого старта

Olegsoft
04.08.2026 16:08А оно сейчас вообще надо ? Когда с развитием вайбкодинга, ИИ и GPT программировать возможно стало вообще на любом человеческом и не человеческом языке без знания языка программирования даже !

pureooplover
04.08.2026 16:08Ну, во первых надо учитывать - делать такие проекты - одно удовольствие (сам знаю опыт создания интерпретаторов и прочего),
во вторых - сам автор сказал что "Если не мы создаем - мы не понимаем" - а в случае вайб-кодинга создаем не мы а ИИ,
в третьих - ИИшный код часто бажный.

1024rk
04.08.2026 16:08Умная мысль пыталась настичь автора на строке "бразильские программисты не написали бразильский язык программирования", но он оказался быстрее, не додумав окончание "хотя у них тоже латиница".
Ответ лежит на поверхности - проблема "нативных языков" не в чармапе. И даже не в нераспространенности языка - сколько в мире носителей китайского и хинди, но никто не пишет код на них. Проблема в формализованности и лаконичности.
Английский структурирован так, что на нём удобно описывать логические структуры, он остаётся человекочитаемым в условиях строгой формализации и оптимизации синтаксиса и не расходится в разговорном и кодирующем использовании. define boolean translateYPosition звучит так, как это сказал бы человек в разговорной речи. РасширяемыйВыводОперацияЗапустить - не звучит. Программисты тоже люди, и язык пишется для того, чтобы его читал человек. Русский, с его падежами, склонениями и произвольным порядком слов, соответствует этому требованию хуже, чем практически что угодно. Поэтому никогда и ни в каком мире всякие йоптаскрипты не станут ничем большим, чем просто прикол и мемчик.

bentall
04.08.2026 16:08Создатели Lua, конечно, ограничились португальским названием, оставив все ключевые слова английскими, но есть и такая штука (вроде ершовского РАЯ/КуМира) https://portugol.dev/ (через VPN, либо поищите portugol в google play).
А что до естественности звучания, forth соответствует разве что языку на котором Йода разговаривает (а также тюркским языкам и обратному порядку слов широко применяемому в немецком) и язык переживает не лучшие свои времена, но это всяко не йотаскрипт. И кстати немецкая форт-школа и вправду выделяется на общем фоне, если к примеру взглянуть на исходники mecrisp-stellaris, оптимизирующего 32-разрядного нативного компилятора форта для ARM-микроконтроллеров, то там вы легко найдёте и немецкоязычные комментарии, и, кое где, немецкоязычные идентификаторы. А поскольку в форте ключевых слов зашитых в компилятор нет, на нём вообще можно на любом языке программировать.

vadimr
04.08.2026 16:08Если так рассуждать, то скоро всё программирование будет на китайском – китайский ещё более синтаксически формальный язык, чем английский. Но пока что идеям китайского языка последовал только APL.
Я думаю, что дело всё-таки больше в традиции, поскольку во второй половине 20 века программирование больше всего развивалось в США. А так, например, лично я начинал обучаться с русской версии Лого и помню русский Кобол (и даже видел русских программистов, программировавших немецкий компьютер на немецком Коболе). Особых проблем с этим не было, хотя, конечно, флективный русский синтаксис менее удобен для формального языка, чем английский.
Сейчас я элементы DSL пишу на русском, а сами управляющие конструкции на английском. Это связано с необходимостью в противном случае запоминать перевод огромного объёма специальной русской терминологии из предметной области на английский язык. Кто-нибудь сможет сходу перевести на английский слово "заштырка"?
Собственно, граница между русскими элементами оконного интерфейса и русским интерфейсным слоем DSL весьма условна.

bentall
04.08.2026 16:08идеям китайского языка последовал только APL
Ну вообще-то шутка про китайский Бейсик это просто из за использования символов непонятных для простых смертных (китайский), и использовании оператора перехода на вычисленный номер строки вместо нормальных управляющих конструкций в первых версиях языка (Бейсик, кто помнит какими-то когда-то был).
А так APL просто развитие математической записи.

vadimr
04.08.2026 16:08На самом деле в грамматике тоже есть общее. Для китайского языка характерна позиционная запись "параметров" (дополнений при глаголе) и расширение их списка дополнительными "ключевыми словами" (модальными глаголами). Да и вообще сам императивный стиль высказываний, где глагол является основой предложения, зачастую лишённого подлежащего, характерен именно для китайского языка.
В математической записи чаще всего используются скобки для параметров функции, от чего APL далёк.

Fromych
04.08.2026 16:08У нас 1С-ники полжизни так пишут и ничего, живут как-то. Глаз режет только первые два дня, потом вообще не замечаешь этот винегрет из букв)

equmag
04.08.2026 16:08Пафоса нагнали, а на деле проект вообще игрушечный, за пару вечеров выполнимый. Lexer -> AST стадия любого компилятора (а в особенности C) это самая лёгкая и крошечная его часть. На моем опыте обычно 2% от компилятора, в gcc ещё меньше. По сути форкнув реализацию, которую "было бы проще переписать" мы потеряли десятилетия оптимизаций gcc или Clang. Ну и кому этот винегрет нужен, как экспериментальный исследовательский проект? Ну, забавно наверно. В продакшене боже упаси использовать.
Вообще я с некоторым умилением смотрю как люди не могу справиться с английским, но раз хочется, пускай балуются. Где-то истина уже была произнесена в статье, вспомнив, что авторы известных языков из разных стран почему-то остановились на английском. Только вот забыли подумать а почему же так происходит

kovserg
04.08.2026 16:08https://habr.com/ru/articles/680148
до кучи:

artrades Автор
04.08.2026 16:08Сибиряк — это полноценный компилируемый язык программирования, являющийся русскоязычным аналогом Go (Golang). Абсолютно всё в языке написано по-русски: ключевые слова, встроенные функции, типы данных, операторы управления потоком.
https://github.com/Giocatory/Russian-Programming-LanguageYoptava — это первый в мире язык программирования на русском языке, транслируемый в Java с помощью Runtime компилятора. Yoptava позволяет выбрать определённую лексику для программирования, например:
ruptava — классический язык программирования Java на русском языке
belptava — классический язык программирования Java на белорусском языке
goptava — язык программирования Java для гопников и реальных пацанов, основанный на YoptaScript
leptava — язык программирования Java использующий старославянскую лексику

YuriPanchul
04.08.2026 16:08Ерунда полная. Сделать препроцессор, который превращает такой 'русский си" в обычный - не требует изменения компилятора. А вот эта часть статьи вообще написана иишницей;
Тут не получится просто взять и заменить «if» на «если» в исходниках компилятора. Потому что компилятор — это не текст. Это сложная система, состоящая из множества взаимосвязанных компонентов: лексер, парсер, препроцессор, генератор кода, оптимизатор, линкер. Каждый из этих компонентов ожидает определённые токены, определённые ключевые слова, определённую грамматику. И чтобы изменить язык, который понимает компилятор, нужно изменить все эти компоненты. А чтобы изменить их — нужно понять, как они работают.

Elbrus128
04.08.2026 16:08Если все дело в синонимах, то зачем изобретать новый компилятор? И писать его на этом своем синонимичном Си?
Достаточно сделать скрипт (хоть в среде текстового процессора/редактора), который сначала делает поиск/замена для ключевых слов, потом однозначную латинизацию идентификаторов.
Теперь можно идти компилировать любым компилятором.
Тут не получится просто взять и заменить «if» на «если» в исходниках компилятора. Потому что компилятор — это не текст.
o_O

APh
04.08.2026 16:08не вопрос пресловутого «импортозамещения», на которое у всех негатив
Не совсем ясен посыл автора в данной статье и смысл идеи создавать компилятор, если "даже бразильцы не создали бразильский ЯП".
Во-первых, импортозамещение ни у кого из здравомыслящих людей не вызывает никакого негатива. США и в прошлом веке, и в нынешнем регулярно объявляют импортозамещение. Но, против них почти не ведутся информационные войны, потому нарративов, заразивших людей без критического мышления, что бойкот российской стали, бензина или автомобилей и потребительской электроники из Японии — это плохо, вы не услышите. У таких только в России плохо иметь национальных производителей, у всех других — хорошо. (Кстати, сейчас они набегут. ;-)
Во-вторых, использование русского языка в ключевых словах или идентификаторах никак не облегчает программирование. Я люблю русский язык, Россию и нашу науку с производством. Я неплохо знаю английский. Однако, ни я, ни сам англичанин не читаем код, как некий рассказ на упрощённом английском.
Все ключевые слова на английском в коде воспринимаются целиком, без перевода, как единый иероглиф, структурирующий математическое логическое выражение. Идентификаторы латинскими буквами тоже не сильно мешают, как не мешают латинские буквы в переменных и названиях функций на уроках математики с третьего класса в российских школах.
Т. е. код не столько рассказ на английском, сколько математическое выражение.
Четвероклассник, не знающий английского, за неск. дней запоминает значение ключевых слов языка Си. Ему английский не понадобится для постижения алгоритмов и программирования первых игр. Потому, и для облегчения вхождения в процесс кодирования замена латинских символов в ключевых словах на кириллические не требуется.
Так даже удобнее!!! Например, когда англичанин слышит слово принтер или принт, ему приходится скрипеть мозгами и буквально восстанавливать семантику (смысл, значение) слова из контекста, т. к. в его родном языке это может означать кучу вещей: человека с такой профессией, станок, устройство, рисунок/отпечаток, действие по печати и пр.
В русском языке слово принтер — однозначно. Это пример грамотного и полезного заимствования иностранного слова, в отличие множества других. Оно добавляет новый отдельный легко произносимый термин для обозначения периферийного устройства для получения твердой копии документа в виде одного короткого слова. Сравните с новым жаргоном, не добавляющим новых инструментов по выражению мысли. Эти мусорные заимствования действуют как синонимы, а-ля этот проект автора: клининг — уборка, шоппинг — покупки, лайфхак — совет, вайб, чил и пр. мусор, что любят вставлять в русскую речь люди, не знающие английского, но думающие, что так они выглядят, как завсегдатаи тусовок по всему миру, 3 раза в неделю.
Итог: «За изобретение ставлю пять, а по предмету — неуд», «Операция "Ы"».
Как хобби-проект — автор молодец: изучает компиляторы и развивается, практического применения для пользы дела не имеется.
P. S.: Подискутировать не смогу, т. к. за поддержку российских технологий сразу приходят группой знакомые специальные учётки из одной соседней, богатой, свободной и независимой страны и срезают карму, а местный сайт устроен так, что тогда нельзя писать комментарии в ответ в течение суток. Да, и среди молодых ИТшников не принято "почему-то" хвалить родные технологии. )) Почему, мы все знаем. Работа была проделана колоссальная... ;-)

yomayo
04.08.2026 16:08А Вы знакомы с РуСи Андрея Николаевича Терехова (https://github.com/andrey-terekhov/RuC)? Он год назад умер, и проект был заброшен. Но тем не менее - теперь имеется два одноимённых проекта. Такие вещи надо выяснять заранее, чтобы не было дублирования.

kreofil
04.08.2026 16:08В весенне-летний период русскоязычная языковая тема активно обсуждалась в семинарах и чатах "Ворчалок о программировании" (телега, макс, сайты). Материалов, если интересно обсуждение именно лексики и использования разных слов, падежей и т.д., можно обнаружить на сайтах:
NosferatuDima2
1с++