Id (язык программирования)


Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

Id-программы неявно параллельны .

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

Примеры

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

тип bool = False | Правда;

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

typeof id = * 0 -> * 0;
определение идентификатора x = x;

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

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

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

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

def цикл x = {A = x: A In A};

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

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

Реализации

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

использованная литература

  1. Перейти ↑ Sharp, JA (1992). Вычисления потоков данных: теория и практика . Интеллект, ограниченный. п. 125. ISBN 9780893919214. Проверено 2 декабря 2014 .
  2. ^ Эрвинд & KP Гостелоу, The Id Report: Asychronous Язык и вычислительной машины, технический отчет TR-114, Департамент информации и компьютерных наук, Университет Калифорнии, Ирвин, сентябрь 1978 года.
  3. ^ "Параллельный Haskell". Пейтон-Джонс, Гордон и Финн. POPL 1996

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

  • Справочное руководство по языку ID , Ришиюр С. Нихил, 1991.
  • «Асинхронный язык программирования для большой многопроцессорной машины», Арвинд и др., TR114a, Департамент ISC, Калифорнийский университет в Ирвине, декабрь 1978 г.