Янус (язык программирования с параллельными ограничениями)
Парадигма | логика параллельных ограничений |
---|---|
Разработано | Кен Кан и Виджай А. Сарасват |
Впервые появился | 1990 |
Основные реализации | |
(нет доступных) |
Янус — это язык компьютерного программирования, частично описанный К. Каном и Виджаем А. Сарасватом в статье «Акторы как особый случай параллельного (логического) программирования с ограничениями» в 1990 году. [1] Это язык параллельных ограничений без возврата.
Janus моделирует параллелизм посредством использования каналов пакетов . Код, которому необходимо отправить сообщение процессу, делает это, ограничивая пакет, который должен быть объединением другого пакета и единственного пакета сообщения. Затем можно использовать другую сумку для отправки последующих сообщений.
Процесс получает сообщение, сопоставляя пакет с шаблоном, который говорит, что это объединение некоторого синглтона и некоторого другого пакета. Логика каналов пакетов создает свойство, общее для модели актера , а именно: порядок прибытия сообщений не гарантируется. Однако, в отличие от акторов в модели акторов, процессы в Janus могут передаваться по своим «почтовым ящикам», так сказать, в видесумки и может вместить более одной. Эта способность передавать почтовые ящики и хранить более одного унаследована от языка программирования ToonTalk , на который повлиял Янус.
Янус, язык программирования, назван в честь Януса , двуликого римского бога, поскольку каждая логическая переменная в Янусе имеет два «лица», два аспекта, которые можно передавать в качестве аргументов. Их называют спрашивающим и кассиром . Они представляют собой, соответственно, право спрашивать значение переменной (или какую-либо характеристику значения) и право сообщать значение (или указывать некоторые ограничения на то, каким может быть это значение). Аспекты спрашивающего и говорящего могут передаваться как аргументы независимо друг от друга. Ни одно из этих прав не подразумевает другого права. Синтаксис языка предотвращает копирование кассира или его использование более одного раза. По мнению Кана и Сарасвата, логические противоречия предотвращаются статически.
Ссылки [ править ]
- ^ Кан, К.; Сарасват, Виджай А. (1 октября 1990 г.). «Акторы как частный случай параллельного программирования с ограничениями (логики)» . Уведомления ACM SIGPLAN . 25 (10): 57–66. дои : 10.1145/97946.97955 . Проверено 29 октября 2019 г.
- В.А. Сарасват, К.М. Кан, Дж. Леви (1990). «Янус: шаг к программированию с распределенными ограничениями». НАКЛП.
- В.А. Сарасват, М. Ринар, П. Панангаден (1991). «Семантические основы параллельного программирования с ограничениями». ПОПЛ.
- Дэвид Гудеман, Коэнраад Де Босшер, Саумья К. Дебре (1992). «jc: эффективная и портативная последовательная реализация Janus». Учеб. Совместная международная конференция и симпозиум по логическому программированию.