stringtranslate.com

Идентификатор (язык программирования)

Irvine Dataflow ( Id ) — язык параллельного программирования общего назначения , созданный в Калифорнийском университете в Ирвине в 1975 году [1] Арвиндом и К.П. Гостелоу. [2] Арвинд продолжал работать с Id в Массачусетском технологическом институте до 1990-х годов.

Основное подмножество Id — это чисто функциональный язык программирования с нестрогой семантикой . Возможности включают в себя: функции высшего порядка , систему полиморфных типов со статической проверкой типов в стиле Милнера с перегрузкой, определяемые пользователем типы и сопоставление с образцом, а также префиксные и инфиксные операторы. Это привело к развитию pH, параллельного диалекта Haskell .

Id-программы являются мелкозернистыми и неявно параллельными .

Абстракция переменных синхронизации MVar в Haskell основана на M-структурах Id. [3]

Примеры

Id поддерживает алгебраические типы данных , аналогичные ML, Haskell или Miranda:

введите bool = Ложь | Истинный;

Типы выводятся по умолчанию, но могут быть аннотированы объявлением typeof. Переменные типа используют синтаксис *0, *1и т. д.

идентификатор типа = *0 -> *0;идентификатор защиты х = х;

Функция, которая использует понимание массива для вычисления первых чисел Фибоначчи :

typeof fib_array = int -> (массив int);защита fib_array n = { A = { массив (0,n) из | [0] = 0 | [1] = 1 | [я] = А[i-1] + А[i-2] || я <- 2 до n } В };

Обратите внимание на использование нестрогих вычислений в рекурсивном определении массива A.

Мягкая стратегия оценки Id по умолчанию допускает циклические структуры данных. Следующий код создает циклический список, используя оператор cons :.

цикл защиты x = { A = x : A In A };

Однако, чтобы избежать непрерывного построения действительно бесконечных структур, явные задержки должны быть аннотированы с помощью #:

def count_up_from x = x :# count_up_from (x + 1);

Реализации

pHжидкость
Система pHluid представляла собой исследовательскую реализацию языка программирования Id с будущими планами создания интерфейса для pH, параллельного диалекта языка программирования Haskell, реализованного в Кембриджской исследовательской лаборатории Digital. и некоммерческое использование. Он предназначен для стандартного оборудования рабочих станций Unix.

Рекомендации

  1. ^ Шарп, Дж. А. (1992). Вычисление потоков данных: теория и практика. Интеллект, Лимитед. п. 125. ИСБН 9780893919214. Проверено 2 декабря 2014 г.
  2. ^ Арвинд; Гостелоу, Ким П.; Плуфф, Уил (1978). «(Предварительный) отчет об идентификаторе: асинхронный язык программирования и вычислительная машина (пересмотренная)». Технический отчет TR-114, Департамент информатики и компьютерных наук, Калифорнийский университет, Ирвайн .
  3. ^ «Параллельный Haskell». Пейтон-Джонс, Гордон и Финн. ПОПЛ 1996.

Внешние ссылки