stringtranslate.com

Id (lenguaje de programación)

Irvine Dataflow ( Id ) es un lenguaje de programación paralela de propósito general , iniciado en la Universidad de California en Irvine en 1975 [1] por Arvind y KP Gostelow. [2] Arvind continuó trabajando con Id en el MIT hasta la década de 1990.

El subconjunto principal de Id es un lenguaje de programación puramente funcional con semántica no estricta . Las características incluyen: funciones de orden superior , un sistema de tipos polimórficos con verificación de tipos estática al estilo Milner con sobrecarga, tipos definidos por el usuario y coincidencia de patrones, y operadores de prefijo e infijo. Condujo al desarrollo de pH, un dialecto paralelo de Haskell .

Los programas de identificación son de grano fino e implícitamente paralelos .

La abstracción de la variable de sincronización MVar en Haskell se basa en las M-estructuras de Id. [3]

Ejemplos

Id admite tipos de datos algebraicos , similares a ML, Haskell o Miranda:

tipo bool = Falso | Verdadero;

Los tipos se infieren de forma predeterminada, pero se pueden anotar con una typeofdeclaración. Las variables de tipo utilizan la sintaxis *0, *1, etc.

tipo de id = *0 -> *0;definición id x = x;

Una función que utiliza una comprensión de matriz para calcular los primeros números de Fibonacci :

tipo de fib_array = int -> (matriz int);definición fib_array n = { A = { matriz (0,n) de | [0] = 0 | [1] = 1 | [i] = A[i-1] + A[i-2] || i <- 2 a n } En A };

Tenga en cuenta el uso de evaluación no estricta en la definición recursiva de la matriz A.

La estrategia de evaluación indulgente de Id permite estructuras de datos cíclicas de forma predeterminada. El código siguiente crea una lista cíclica mediante el operador cons :.

def ciclo x = { A = x : A En A };

Sin embargo, para evitar la construcción no terminante de estructuras verdaderamente infinitas, los retrasos explícitos deben anotarse utilizando #:

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

Implementaciones

pH-fluido
El sistema pHluid fue una implementación de investigación del lenguaje de programación Id, con planes futuros para una interfaz para pH, un dialecto paralelo del lenguaje de programación Haskell, implementado en el Laboratorio de Investigación de Cambridge de Digital. y para uso sin fines de lucro. Está destinado al hardware estándar de estaciones de trabajo Unix.

Referencias

  1. ^ Sharp, JA (1992). Computación de flujo de datos: teoría y práctica. Intellect, Limited. pág. 125. ISBN 9780893919214. Recuperado el 2 de diciembre de 2014 .
  2. ^ Arvind; Gostelow, Kim P.; Plouffe, Wil (1978). "El informe (preliminar) Id: un lenguaje de programación asincrónico y una máquina de computación (revisado)". Informe técnico TR-114, Departamento de Información y Ciencias de la Computación, Universidad de California, Irvine .
  3. ^ "Haskell concurrente". Peyton-Jones, Gordon y Finne. POPL 1996.

Enlaces externos