Яр (язык программирования) — различия между версиями
Материал из ТХАБ.РФ
м |
м |
||
Строка 2: | Строка 2: | ||
* Яр - это русскоязычный универсальный язык программирования | * Яр - это русскоязычный универсальный язык программирования | ||
− | * Яр строится на платформе языка "искусственного интеллекта" Common Lisp, подобно тому, как Kotlin - на платформе JVM или F# - на платформе .Net | + | * Яр строится на платформе языка "искусственного интеллекта" Common Lisp, подобно тому, как [[Kotlin]] - на платформе [[JVM]] или F# - на платформе .Net |
* Программы на Яре быстры и быстро запускаются (прекомпиляция в двоичный код) и надёжны (сборка мусора, статическая типизация) | * Программы на Яре быстры и быстро запускаются (прекомпиляция в двоичный код) и надёжны (сборка мусора, статическая типизация) | ||
− | * "Горячая замена кода" позволяет менять программу без её перезапуска. Например, можно будет добавлять в классы новые поля, а в функции - новые параметры. Это ключевое преимущество Яра перед другими языками, которое присуще используемой платформе Common Lisp | + | * "Горячая замена кода" позволяет менять программу без её перезапуска. Например, можно будет добавлять в классы новые поля, а в функции - новые параметры. Это ключевое преимущество Яра перед другими языками, которое присуще используемой платформе [[Common Lisp]] |
− | * Возможная область применения такая же, как у C# или Java | + | * Возможная область применения такая же, как у [[C#]] или [[Java]] |
* язык и кроссплатформенная среда разработки выпущены под лиценией MIT - можно без ограничений встраивать в коммерческие приложения | * язык и кроссплатформенная среда разработки выпущены под лиценией MIT - можно без ограничений встраивать в коммерческие приложения | ||
== Пример кода == | == Пример кода == | ||
Строка 61: | Строка 61: | ||
* пошаговый отладчик с отображением стека и локальных переменных | * пошаговый отладчик с отображением стека и локальных переменных | ||
* интерактивный вычислитель (REPL) | * интерактивный вычислитель (REPL) | ||
+ | |||
== Что будет сделано == | == Что будет сделано == | ||
* методы | * методы | ||
Строка 69: | Строка 70: | ||
* стандартные контейнеры | * стандартные контейнеры | ||
* лямбды | * лямбды | ||
+ | |||
На данный момент исправляются ошибки вывода типов в платформе. | На данный момент исправляются ошибки вывода типов в платформе. | ||
+ | |||
+ | == См. также == | ||
+ | * [[Учебник по Яр]] | ||
+ | * [[Код на Яр]] | ||
+ | |||
== Ссылки == | == Ссылки == | ||
* [http://программирование-по-русски.рф/яр.яргт Официальный сайт Языка программирования Яр] | * [http://программирование-по-русски.рф/яр.яргт Официальный сайт Языка программирования Яр] | ||
Строка 78: | Строка 85: | ||
[[Категория:Язык программирования]] | [[Категория:Язык программирования]] | ||
[[Категория:Язык программирования с русским синтаксисом]] | [[Категория:Язык программирования с русским синтаксисом]] | ||
+ | [[Категория:Яр (Язык программирования)]] | ||
[[Категория:Лисп]] | [[Категория:Лисп]] | ||
[[Категория:LISP]] | [[Категория:LISP]] |
Версия 20:54, 8 февраля 2018
Язык программирования Яр
- Яр - это русскоязычный универсальный язык программирования
- Яр строится на платформе языка "искусственного интеллекта" Common Lisp, подобно тому, как Kotlin - на платформе JVM или F# - на платформе .Net
- Программы на Яре быстры и быстро запускаются (прекомпиляция в двоичный код) и надёжны (сборка мусора, статическая типизация)
- "Горячая замена кода" позволяет менять программу без её перезапуска. Например, можно будет добавлять в классы новые поля, а в функции - новые параметры. Это ключевое преимущество Яра перед другими языками, которое присуще используемой платформе Common Lisp
- Возможная область применения такая же, как у C# или Java
- язык и кроссплатформенная среда разработки выпущены под лиценией MIT - можно без ограничений встраивать в коммерческие приложения
Пример кода
/// классы больше похожи на структуры, чем на классы С++ опр класс Па () тело Поле1 // поле может содержать произвольный объект кно // кно - сокращение от 'конец опр'
/// Есть наследование опр класс Сы (Па) тело /// У поля есть тип и значение по умолчанию Поле2 -- л-строка = "Значение по умолчанию" кно
/// 'ПаₒИмя' - это просто идентификатор опр функ ПаₒИмя(Я -- Па) тело л-печать("Я - Па") л-печать(Я.Поле1) кно
опр функ СыₒИмя(Я -- Сы) тело л-печать("Я - Сы") л-печать(Я.Поле1) пусть П2 = Я.Поле2 если не П2 == "Значение по умолчанию" то л-печать(П2) кне // сокращение от 'конец если' кно
/// Яр выполняет определения по одному, /// а идущие подряд несколько функций определяет за одно действие. /// Если нужно разбить группу функций, то применяется эта конструкция. Сохрани-результат-компиляции()
опр функ Тест () тело /// родись - это аналог new или create пусть П = родисьₒПа(Поле1 = "1") // есть вывод типов, но есть и явное указание типа пусть С -- Сы = родисьₒСы(Поле1 = "2") П.Имя() С.Имя() кно /// Функция Тест вызывается во время выполнения скрипта Тест()
Реализовано
- неопубликованное описание языка на ~90 страницах
- работающий прототип транслятора
- реализованы функции, классы, некоторые управляющие конструкции, возможость вызова функций платформы
- работающая среда разработки - разработка Яра ведётся в этой среде
- раскраска исходных текстов, подсветка грамматических ошибок, переход к определению, автодополнение имён
- пошаговый отладчик с отображением стека и локальных переменных
- интерактивный вычислитель (REPL)
Что будет сделано
- методы
- декораторы
- исключения
- модули
- параметрические типы, вариантность
- стандартные контейнеры
- лямбды
На данный момент исправляются ошибки вывода типов в платформе.