WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте

Старсет — высокоуровневый язык программирования, разработанный под руководством М. М. Гилулы в Институте программных систем РАН в 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. Konstantin V. Shvachko. S(b)-Tree Library: an Efficient Way of Indexing Data (англ.). — DIMACS Series in Discrete Mathematics and Theoretical Computer Science, 1999. — Vol. 50. — P. 207 - 222.
  2. Laszlo Böszörmenyi and Karl-Heinz Eder. Adding Parallel and Persistent Sets to Modula-3 (англ.). — Joint Modular Languages Conference JMLC'94, Ulm, Germany, 1994.
  3. Karl-Heinz Eder and Laszlo Böszörmenyi. Optimized Parallel Sets for Data Intensive Applications (англ.). — Proceedings of 7th International Conference and Workshop on Database and Expert Systems Applications: DEXA 96, 1996. — P. 185 - 192. DOI:10.1109/DEXA.1996.558293.

Литература

  • М. М. Гилула, А.П.Столбоушкин. Язык программирования Старсет. М.: «Наука», 1991. ISBN 5-020-06831-4.
  • М. М. Гилула. Множественная модель данных в информационных системах. М.: «Наука», 1992. — 207 p. ISBN 5-02-006938-8.
  • M. M. Gilula. Множественная модель для баз данных и информационных систем = The Set Model for Database and Information Systems. — Reading, Massachusetts: Addison-Wesley, 1994. ISBN 0-201-59379-3.

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии