Лондрина
- 1 year ago
- 0
- 0
Старсет — высокоуровневый язык программирования , разработанный под руководством в Институте программных систем РАН в 1991 году.
Старсет поддерживает три типа данных : слова (они же строки), множества и классы. Каждое слово, представляющее собой корректно записанное число, имеет численное значение. Если численное значение слова равно 0, то слово логически интерпретируется как тождественно ложный предикат . В противном случает слово логически интерпретируется как тождественно истинный предикат. Тип «множество» определён как математическое множество слов. Тип «класс» определён как математическое множество множеств. Старсет позволяет определить индексы для переменных типа «класс». Индексированный класс является эквивалентом словаря в языках типа Python . Идентификаторы переменных типа «множество» и «класс» начинаются с $ и $$, соответственно.
Помимо «традиционных» арифметических и логических операторов и операторов над строками, Старсет поддерживает сопоставление с образцом на уровне как слов, так и множеств. Для оптимизации операции сопоставления слова и множества представлены в виде .
Старсет является процедурным языком с ограниченным набором встроенных функций и возможностью создания пользовательских процедур и функций-процедур.
Старсет поддерживает операторы ветвления, простого цикла, параллельного цикла по множеству или классу и последовательного цикла по множеству или классу. Для имитации работы с базами данных используются операторы создания и удаления индекса, поиска, модификации, добавления и выборки множества. Виртуализованная встроенная система ввода/вывода позволяет сохранять множества и классы на внешних носителях.
Процедура Ivanov вводит класс с дисплея, удаляет все подмножества, не содержащие ни одного слова с подсловом 'Иванов', и выводит полученный класс на дисплей.
Proc Ivanov() word: x; set: $set; class: $$class; Read $$class; $$class := {$set in $$class : (Exist x in $set)(x is [..]^'Иванов'^[..])}; Write $$class; Endproc