Перфо.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 Значение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)) или (Перем ИмяПеременной Значение)
Возвращаемые значения:
- значение возвращает само себя
- идентификатор возвращает сопоставленное ему значение, в том числе, делегат действия, идентификатор или неопределено
- действие может вернуть значение, делегат действия, идентификатор или неопределено
- оператор возвращает то, что определено стандартом языка
- последовательность возвращает результат последнего элемента