Яр (язык программирования) — различия между версиями

Материал из ТХАБ.РФ
Перейти к: навигация, поиск
м
м (Ссылки)
 
(не показаны 2 промежуточные версии 1 участника)
Строка 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://программирование-по-русски.рф/яр.яргт Официальный сайт Языка программирования Яр]
 
* [https://bitbucket.org/budden/iar Репозиторий языка Яр на БитБукет]
 
* [https://bitbucket.org/budden/iar Репозиторий языка Яр на БитБукет]
 +
* [http://plana.mybb.ru/ Форум по программированию на русском языке и языку Яр]
 
* [https://vk.com/yar_lisp Группа Вконтакте посвящённая языку Яр]
 
* [https://vk.com/yar_lisp Группа Вконтакте посвящённая языку Яр]
  
Строка 78: Строка 86:
 
[[Категория:Язык программирования]]
 
[[Категория:Язык программирования]]
 
[[Категория:Язык программирования с русским синтаксисом]]
 
[[Категория:Язык программирования с русским синтаксисом]]
 +
[[Категория:Яр]]
 
[[Категория:Лисп]]
 
[[Категория:Лисп]]
 
[[Категория:LISP]]
 
[[Категория:LISP]]

Текущая версия на 09:39, 24 марта 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)

Что будет сделано

  • методы
  • декораторы
  • исключения
  • модули
  • параметрические типы, вариантность
  • стандартные контейнеры
  • лямбды

На данный момент исправляются ошибки вывода типов в платформе.

См. также

Ссылки