You can edit almost every page by Creating an account. Otherwise, see the FAQ.

Старсет

Материал из EverybodyWiki Bios & Wiki
Перейти к:навигация, поиск

Ошибка скрипта: Модуля «Unsubst» не существует. 

Старсет — высокоуровневый язык программирования, разработанный под руководством М. М. Гилулы в Институте программных систем РАН в 1991 году.

Типы данных[править]

Старсет поддерживает три типа данных: слова (они же строки), множества и классы. Каждое слово, представляющее из себя корректно записанное число, имеет численное значение. Если численное значение слова равно 0, то слово логически интерпретируется как тождественно ложный предикат. В противном случает слово логически интерпретируется как тождественно истинный предикат. Тип «множество» определен как математическое множество слов. Тип «класс» определён как математическое множество множеств. Старсет позволяет определить индексы для переменных типа «класс». Индексированный класс является эквивалентом словаря в языках типа Python. Идентификаторы переменных типа «множество» и «класс» начинаются с $ и $$, соответственно.

Операции[править]

Помимо «традиционных» арифметических и логических операторов и операторов над строками, Старсет поддерживает сопоставление с образцом на уровне как слов, так и множеств. Для оптимизации операции сопоставления слова и множества представлены в виде S(1)-деревьев[1].

Старсет является процедурным языком с ограниченным набором встроенных функций и возможностью создания пользовательских процедур и функций-процедур.

Старсет поддерживает операторы ветвления, простого цикла, параллельного цикла по множеству или классу и последовательного цикла по множеству или классу. Для имитации работы с базами данных используются операторы создания и удаления индекса, поиска, модификации, добавления и выборки множества. Виртуализованная встроенная система ввода/вывода позволяет сохранять множества и классы на внешних носителях.[2][3]

Пример кода[править]

Процедура Ivanov вводит класс с дисплея, удаляет все подмножества, не содержащие ни одного слова с подсловом 'Иванов', и выводит полученный класс на дисплей.

   Proc Ivanov()
     word: x;
     set: $set;
     class: $$class;
     Read $$class;
     $$class := {$set in $$class : (Exist x in $set)(x is [..]^'Иванов'^[..])};
     Write $$class;
   Endproc

См. также[править]

Примечания[править]

  1. Шаблон:±. S(b)-Tree Library: an Efficient Way of Indexing DataШаблон:Ref-lang. — DIMACS Series in Discrete Mathematics and Theoretical Computer Science, 1999. — Vol. 50. — P. 207 - 222.
  2. Шаблон:±. Adding Parallel and Persistent Sets to Modula-3Шаблон:Ref-lang. — Joint Modular Languages Conference JMLC'94, Ulm, Germany, 1994.
  3. Шаблон:±. Optimized Parallel Sets for Data Intensive ApplicationsШаблон:Ref-lang. — Proceedings of 7th International Conference and Workshop on Database and Expert Systems Applications: DEXA 96, 1996. — P. 185 - 192. — Шаблон:DOI.

Литература[править]

Шаблон:Языки программирования

This article "Старсет" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Старсет. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.



Read or create/edit this page in another language[править]