- Языки программирования с русским синтаксисом
- Недостатки
- Реализации
- Языки на основе 1С синтаксиса
- Лисп на 1С
- Русификация Си
- Прочие языки
- Рабочие проекты
- Заброшенные проекты
- Алгоритмы
- Ссылки
- «Сделано в России» — язык программирования WBASIC для разработки серверных веб-приложений
- История проекта
- Преимущества и недостатки
- Русский Язык Программирования
Языки программирования с русским синтаксисом
Гвидо Ван Россум — создатель Питона считает что код пишется 1 раз а читается много. Поэтому удобочитаемость важна!
Достаточно много программистов используют кириллические названия переменных и функций — это позволяет:
- избежать пересечения пространства имён и сразу разделять свой код/переменные/функции от чужих (это самое важное помоему!!)
- самодокументирование кода — комментариев меньше или они описывают более общие вещи
- обфусикация кода для иностранных разработчиков/хакеров/аналитиков
Недостатки
Реализации
Языки на основе 1С синтаксиса
- 1Script — Скриптовой язык 1C
- Перфолента.Net — язык программирования на платформе Net Framework с синтаксисом для программистов 1C. Полный компилятор. IDE. Активно развивается.
- Гонец (язык программирования) — Русский Go
- https://docs.racket-lang.org/russian-lang/index.html — русскоязычный язык программирования, основанный на идеях из расширения синтаксиса Scheme readable. Семантика языка полностью унаследована от Racket, вплоть до полной обратной совместимости: из этого языка можно вызывать любые функции и синтаксические конструкци Racket, а из Racket можно вызывать модули на этом языке.
Лисп на 1С
Русификация Си
Прочие языки
Рабочие проекты
- RuSL — интерпретируемый, структурный, функциональный, императивный язык программирования с последовательной типизацией и синтаксисом на русском языке.
- LuaRu (проект, не совсем доделанный) — Луа с возвращением русских имён у переменных и функций и добавлением русских синонимов для операторов
- LuaRus (доделанная версия LuaRu) — Луа с возвращением русских имён у переменных и функций и добавлением русских синонимов для операторов (Отличается от LuaRu)
- Алгоритм2 (язык программирования) — Русский Visual Basic
- Рефлекс (язык программирования)
- Oberon07ru — Русский Oberon, win32, linux, ColibriOS
- Проект перевода ОС A2 (Bluebottle) на русский язык
- Кумир (язык программирования)
- Язык V (язык программирования) — веб-сайтов
- Концепт (язык программирования) — скриптовый язык программирования
- 1C-to-EXE Компилятор 1С кода
- Компонентный Паскаль.BlackBox
- язык программирования Смолтолк на русском языке
- Скриптовый язык LangMF — Русский VBScript
Заброшенные проекты
- Яр — Язык программирования Яр Русский Лисп
- Си11 — Инстерстрон & Зуев
- Глагол (Язык программирования)
- ПРОФТ5 (язык программирования) — аналог Visual Basic
- Валентина (язык программирования)
- Компилятор Делавар
Алгоритмы
Ссылки
- Форум по языкам программирования на русском языке
- Старый форум по языкам программирования на русском языке
- Форум по zeccrbv языкам программирования и языку Яр (Русский Лисп)
- Русский язык и программирование на компилер.СУ
- LEX анализатор
- Пишем интерпретатор скрипта и стековую машину
- Простой интерпретатор с нуля на Python (перевод) #1
- Русская кодировка
- https://abf.io/ABF.io русский GitHub
- https://githowto.com/ Интерактивный курс по Git на 2-часа
- http://compiler.su/entuziasty-razrabotchiki-kompilyatorov-i-ikh-proekty.php список самодельных языков программирования
- http://www.exmortis.narod.ru/src_compilers.html исходники самодельных компиляторов
«Сделано в России» — язык программирования WBASIC для разработки серверных веб-приложений
Предлагаю Вам обратить внимание на проект «Сделано в России» — отечественного языка для веб-разработки. Проект разработан в Екатеринбурге, а не является локализация западного, что большая редкость, так как языков программирования разрабатываемых у нас не много.
WBASIC — Акроним Web Beginner’s All-purpose Symbolic Instruction Code.
Высокоуровневый язык программирования применяемый для разработки серверных веб-приложений.
Это диалект языка BASIC, разработаный с учетом работы в сети Интернет в 2017 году, а сам синтаксис языка в 1964.
Философия языка — это должно быть просто для начинающих. И надеюсь, мне это удалось. Вся документация по языку умещается на сегодня всего в 9 разделах и освоить их можно за один-два дня.
История проекта
Начало разработки — 23 Марта 2017. Прототип написан примерно за месяц
После того как были закончены все основные языковые конструкции и операторы, на этой версии удалось разработать сайт и справочник по языку. После этого я пришел к выводу что у меня все таки есть на руках первая рабочая версия языка. Всего в языке поддерживалось 34 команды и ключевых слова. Помимо этого сделан режим отладки DEBUG, и упрощеный ввод больших текстовых переменых и массивов в многострочном режиме.
Полученные результаты поразили меня самого, я сам не ожидал что у меня получится решить все технические проблемы и создать работающий прототип.
Следующим шагом была разработка рабочей, протестированной версии с которой можно снять шильдик бета, с устранением всех обнаруженных недостатков в прототипе.
Начало разработки — 20 Апреля 2017. Релиз — ориентировочно Май 2017 года.
Основные недостатки предыдущей версии — отсутствие кэширования у компилятора, код все время компилировался перед запуском. Так же маленький набор собственных функций. В этой версии сделан прозрачный кэш на временных файлах, что существенно увеличило быстродействие. Для этого пришлось полностью переписать команды DEBUG, INCLUDE не считая самого компилятора. INCLUDE теперь подключает файлы в только в момент выполнения этой команды, с проверкой на наличие КЭШа, как в PHP.
Кроме того, улучшен парсер служебных символов, с просмотром символов вперед и назад, что изменило действие «=» и «(«, появились команы IS, ISNOT, ISSET и EMPTY. Теперь «=» означает присвоение аргументов в определенных командах и проверку на равенство в выражениях типа IF… как в Бейсике. По имени и следующим за ним «(» определяется вызов подпрограммы. Также появилась проверки переменных на существование, наличие данных и их типов и их удаление.
Появились также служебные константы. В общем добавилось около 200 команд и зарезервированных слов с константами.
Преимущества и недостатки
По сравнению с PHP вы получите более простой и чистый синтаксис программ похожий на Python, и легкость освоения. Это самый простой язык из всех серверных языков, синтаксис проще Python не говоря уже о PHP.
Производительность примерно равна PHP7, стиль разработки такой же как на PHP – правите файлы на сервере, открываете страничку, смотрите результат, компилятор работает сам по себе полностью прозрачно.
Имеется специальный отладочный режим позволяющий увидеть все окружение скрипта и ошибки, чего очень не хватает в PHP и решается с помощью вставок логирования.
На сервере должен быть установлен PHP, можно 5 или 7 версии. Но, поскольку компилятор написан на PHP вы можете использовать помимо 200 команд WBASIC любые из 1500 функций PHP, хотя это выглядит как хак и возможно вам это даже не понадобится, поскольку набор уже существующих функций перекрывает потребности среднего приложения. PHP тоже изначально был написан на Perl, однако это не помешало его распространению.
Все строковые команды языка полностью поддерживают UTF-8, а документация полностью на русском.
Компилятор достаточно гибок, можно менять ключевые слова местами или пропускать их внутри команд, так как параметры команд разбиваются ключевыми словами, а не идут через запятую, например:
FOR I = 100 STEP -1 TO 0 FOR I = 0 TO 100 STEP 10
Если вы изучали Visual Basic, то перейти на WBASIC можно без проблем, большинство команд и синтаксис те же.
Пока нет программ и разработчиков на этом языке, есть шанс, что вы можете создать популярный продукт, поскольку продуктовая конкуренция отсутствует.
Исходники проекта и релиз выложены на GitHub
Русский Язык Программирования
Начал разработку русского языка программирования.
Сокращенно: РЯП.
Ну и, как следствие, начал разработку интерпретатора РЯП.
РЯП напоминает язык КуМир, но будут существенные отличия и преимущества в сравнении с другими языками.
Переменные не надо объявлять, так как при первом обнаружении переменной в листинге программы интерпретатор автоматически создаст с таким именем переменную типа Double (вещественное число).
Интерпретатор пишу в 32-битной версии среды разработки «Lazarus» (язык программирования Паскаль).
В ряпе конечно же есть зарезервированные слова: начало, конец, если, цикл.
Но зарезервированные слова можно использовать в качестве имен переменных!
По ссылке можете скачать архив, в нем содержатся бинарник (версия 0.2), простые программы:
архив
Си и Паскаль уйдут, Питон утонет, Яву скурят!
Свободно скачивайте и распространяйте, пишите программки, пишите мне о глюках.
Только, пожалуйста, не делите на ноль! 🙂
ДОПОЛНЕНИЕ 1 (от 28 февраля 18:30 МСК):
1) Кто-то посмеялся над названием языка, предложил свои варианты.
Прям, как малые дети 🙂
2) Кто-то вообще не захотел скачивать архив, наверное, даже по ссылке не перешел.
Для кого тогда придумывали URL и вообще всю философию HTTP?
3) Кто-то никак не хочет отлипнуть от английского языка.
Наверное, и шпрехает только на английском, используя слова типа стартап, коммит, заклозь, лайфхак, гамбургер, свитшот.
ДОПОЛНЕНИЕ 2 (от 28 февраля 19:15 МСК):
В скобках привожу латинские аналоги.
Реализованы конструкции языка: начало (begin; начало цикла), цикл (cycle; конец тела цикла), если (if), = (присвоение).
Бинарные операторы: * (умножение), + (сложение), — (вычитание), / (деление), ^ (возведение в степень),
% (процент), mod (остаток от деления на число), and (битовое И), xor (битовое исключающее ИЛИ),
or (битовое ИЛИ), >> (битовый сдвиг вправо).
Унарные команды: ЛИнверт (LInvert; логическое инвертирование переменной), округлить (round; округление вещественного числа до целого числа), показать (show; отобразить имя и значение переменной)
Вот код для вычисления простых чисел:
число = 3 конец = 60 начало цикл = число / 5 округлить цикл простое = 1 начало цикл2 = цикл + 1 остаток0 = число mod цикл2 остаток = остаток0 ЛИнверт остаток если остаток простое = 0 цикл = цикл - 1 если остаток цикл = 0 цикл цикл если простое показать число число = число + 2 конец = конец - 1 цикл конец
число = 3 число = 5 число = 7 число = 11 число = 13 число = 17 число = 19 число = 23 число = 29 число = 31 число = 37 число = 41 число = 43 число = 47 число = 53 число = 59 число = 61 число = 67 число = 71 число = 73 число = 79 число = 83 число = 89 число = 97 число = 101 число = 103 число = 107 число = 109 число = 113
P.S. На перспективу:
— Механизм массивов.
— Вместо присвоения одной переменной можно написать формулу,
в левой части которой может стоять не только переменная, но и операция с другой переменной.
— Анализ кода.
Выдача подробных подсказок программисту.
— Автоматическое переформатирование кода в нужный стиль.
— Имя переменной можно сокращать.
Интерпретатор сам определит, какую переменную из объявленных имели в виду.
— Иногда допускается, что между конструкцией языка (цикл, если) и переменной нет пробела.
— Любой код можно записать в одну строку.
— Объединение нескольких файлов кода в одном файле.
— Любое количество букв в названии конструкции языка.