Перфо.NET — различия между версиями

Материал из ТХАБ.РФ
Перейти к: навигация, поиск
(Новая страница: «Перфо - интерпретатор языка программирования Перфо - русскоязычный вариант языка похоже…»)
 
м (Описание языка:)
Строка 10: Строка 10:
 
* '''идентификатор''' - любой другой набор символов не содержащий пробельных символов: А1, $SYM, !!!Ошибка!!!
 
* '''идентификатор''' - любой другой набор символов не содержащий пробельных символов: А1, $SYM, !!!Ошибка!!!
 
* '''списки''' состоят из любых сущностей разделенных пробелами и заключенных в круглые скобки: (+ 3 4 5)
 
* '''списки''' состоят из любых сущностей разделенных пробелами и заключенных в круглые скобки: (+ 3 4 5)
** '''действие''' это список, первым элементом которого является идентификатор, а остальные элементы являются параметрами действия
+
** '''действие''' это список, первым элементом которого является '''идентификатор''', а остальные элементы являются '''параметрами действия'''
 
   (ИдентификаторДействия Параметр1 Параметр2 ... ПараметрН), например, (мин 34 9 100)
 
   (ИдентификаторДействия Параметр1 Параметр2 ... ПараметрН), например, (мин 34 9 100)
*** '''идентификатор''' может быть вычисляемым ((Идент "ИдентификаторДействия") Параметр1 Параметр2 ... ПараметрН)
+
** '''идентификатор''' может быть вычисляемым ((Идент "ИдентификаторДействия") Параметр1 Параметр2 ... ПараметрН)
*** '''параметр действия''' может быть любой сущностью или последовательностью
+
** '''параметр действия''' может быть любой сущностью или '''последовательностью'''
**** '''последовательность''' это список состоящий из любых сущностей, у которого первый элемент НЕ идентификатор:
+
** '''последовательность''' это список состоящий из любых сущностей, у которого первый элемент НЕ идентификатор:
  
 
   (Значение1 Значение2 Значение3) или ((Действие1) (Действие2) (Действие3)) или ((Действие1) (Действие2) Значение1)
 
   (Значение1 Значение2 Значение3) или ((Действие1) (Действие2) (Действие3)) или ((Действие1) (Действие2) Значение1)
  
* '''оператор''' это специальная форма действия, в которой смысл и назначение параметров, а так же их последовательность выполнения определены стандартом языка, например:
+
* '''оператор''' это специальная форма '''действия''', в которой смысл и назначение параметров, а так же их последовательность выполнения определены стандартом языка, например:
  
 
  (Если (Условие) (СписокДействий1) (СписокДействий2)) или (Перем ИмяПеременной Значение)
 
  (Если (Условие) (СписокДействий1) (СписокДействий2)) или (Перем ИмяПеременной Значение)
Строка 28: Строка 28:
 
* оператор возвращает то, что определено стандартом языка
 
* оператор возвращает то, что определено стандартом языка
 
* последовательность возвращает результат последнего элемента
 
* последовательность возвращает результат последнего элемента
 +
 
== См. также ==
 
== См. также ==
 
* [[Перфолента.NET]]
 
* [[Перфолента.NET]]

Версия 20:52, 5 августа 2020

Перфо - интерпретатор языка программирования Перфо - русскоязычный вариант языка похожего на Scheme, унифицированный с языком Перфолента / 1С /OneScript

Описание языка:

  • есть 3 типа сущностей: Идентификаторы, Значения и Списки
  • значениями могут быть простые типы: строки, символы, числа, даты, булево и неопределено или созданные во время выполнения объекты и делегаты действий
    • синтаксис значений такой же, как в языке Перфолента:
 "строка" - строка, "С"с - символ, 4.537 - число, '23.07.2020' - дата, Истина - булево, Неопределено    
  • идентификатор - любой другой набор символов не содержащий пробельных символов: А1, $SYM, !!!Ошибка!!!
  • списки состоят из любых сущностей разделенных пробелами и заключенных в круглые скобки: (+ 3 4 5)
    • действие это список, первым элементом которого является идентификатор, а остальные элементы являются параметрами действия
 (ИдентификаторДействия Параметр1 Параметр2 ... ПараметрН), например, (мин 34 9 100)
    • идентификатор может быть вычисляемым ((Идент "ИдентификаторДействия") Параметр1 Параметр2 ... ПараметрН)
    • параметр действия может быть любой сущностью или последовательностью
    • последовательность это список состоящий из любых сущностей, у которого первый элемент НЕ идентификатор:
 (Значение1 Значение2 Значение3) или ((Действие1) (Действие2) (Действие3)) или ((Действие1) (Действие2) Значение1)
  • оператор это специальная форма действия, в которой смысл и назначение параметров, а так же их последовательность выполнения определены стандартом языка, например:
(Если (Условие) (СписокДействий1) (СписокДействий2)) или (Перем ИмяПеременной Значение)

Возвращаемые значения:

  • значение возвращает само себя
  • идентификатор возвращает сопоставленное ему значение, в том числе, делегат действия, идентификатор или неопределено
  • действие может вернуть значение, делегат действия, идентификатор или неопределено
  • оператор возвращает то, что определено стандартом языка
  • последовательность возвращает результат последнего элемента

См. также