Глаголица
Функциональный язык программирования с синтаксисом на кириллице, написанный на F#.
О проекте
Глаголица (Glagol) — собственный функциональный язык программирования, реализованный в виде интерпретатора на F#. Все ключевые слова — на русском языке, что делает код читаемым и узнаваемым. Несмотря на необычный фасад, под ним — полноценный функциональный язык: рекурсия, замыкания, сопоставление с образцом, монадическая обработка ошибок, асинхронные и недетерминированные вычисления.
В рамках проекта разработаны: интерпретатор языка, набор примеров программ (вместе с эквивалентами на F#) и расширение для VS Code с подсветкой синтаксиса.
Реализованные возможности языка
- Именованные переменные
- Функции и замыкания
- Рекурсия
- Списки и последовательности
- Сопоставление с образцом
- Ленивые / недетерминированные вычисления (List monad)
- Асинхронное выполнение и потоки
- Каррирование и частичное применение
- Пайплайн-операторы
- Обработка успеха и ошибок
- Генераторы последовательностей
- Поддержка модульности (импорт сторонних файлов)
- Базовый набор встроенных библиотечных функций
- Поддержка комментариев
Разделы документации
Документация языка
Синтаксис, типы, операторы, конструкции и встроенные функции.
Техническая реализация
Как устроен интерпретатор изнутри: парсер, AST, вычислитель, List-монада.
Примеры программ
15 программ на Глаголице с эквивалентами на F# — от факториала до асинхронности.
Расширение VS Code
Подсветка синтаксиса, иконка файлов .gl, запуск программ из редактора.
Команда разработчиков
| Имя | Группа | Роль в проекте |
|---|---|---|
| Мартыч Иван | М8О-203БВ-24 | Тимлид, документация, расширение для VS Code, программист |
| Бахолдин Иван | М8О-203БВ-24 | Программист, примеры программ на языке Глаголица и F# |
| Романов Богдан | М8О-203БВ-24 | Программист, отладка языка, исправление багов |
Предыстория языка
«Восстань, пророк, и виждь, и внемли,
Исполнись волею моей,
И, обходя моря и земли,
Глаголом жги сердца людей»— А. С. Пушкин, «Пророк»
Глаголица — это функциональный язык программирования, написанный на F#. Когда мы обсуждали, каким будет наш функциональный язык, то сошлись на мнении, что он будет на русском языке, на кириллице — благо кодировка UTF-8 внутри F# это позволяет.
Название для языка родилось из простой мысли: в программировании всё строится на функциях, а функция — это действие. В русском языке часть речи, обозначающая действие, — это глагол. Так и появилась «Глаголица» — язык, где само название говорит о своей сути.
Но помимо названия, одна из самых запоминающихся деталей любого языка программирования — это его логотип. Поэтому мы не могли оставить «Глаголицу» без такого элемента, благодаря которому её будут узнавать.