Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Id (programming language)

From Wikipedia, the free encyclopedia
For other uses of "ID", seeID (disambiguation).

Irvine Dataflow (Id) is a general-purposeparallel programming language, started at the University of California at Irvine in 1975[1] byArvind and K. P. Gostelow.[2] Arvind continued work with Id atMIT into the 1990s.

The major subset of Id is apurely functional programming language withnon-strict semantics. Features include:higher-order functions, a Milner-style statically type-checked polymorphic type system with overloading, user defined types and pattern matching, and prefix and infix operators. It led to the development of pH, a parallel dialect ofHaskell.

Id programs are fine grainedimplicitly parallel.

The MVar synchronisation variable abstraction in Haskell is based on Id's M-structures.[3]

Examples

[edit]

Id supportsalgebraic datatypes, similar to ML, Haskell, or Miranda:

type bool = False | True;

Types areinferred by default, but may be annotated with atypeof declaration. Type variables use the syntax*0,*1, etc.

typeof id = *0 -> *0;def id x = x;

A function which uses an array comprehension to compute the firstn{\displaystyle n}Fibonacci numbers:

typeof fib_array = int -> (array int);def fib_array n =  { A = { array (0,n) of        | [0] = 0        | [1] = 1        | [i] = A[i-1] + A[i-2] || i <- 2 to n }  In A };

Note the use of non-strict evaluation in the recursive definition of the arrayA.

Id's lenient evaluation strategy allows cyclic datastructures by default. The following code makes a cyclic list, using the cons operator:.

def cycle x = { A = x : A In A };

However, to avoid nonterminating construction of truly infinite structures, explicit delays must be annotated using#:

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

Implementations

[edit]
pHluid
The pHluid system was a research implementation of Id programming language, with future plans for a front-end for pH, a parallel dialect of the Haskell programming language, implemented at Digital's Cambridge Research Laboratory. and non-profit use. It is targeted at standard Unix workstation hardware.

References

[edit]
  1. ^Sharp, J.A. (1992).Data Flow Computing: Theory and Practice. Intellect, Limited. p. 125.ISBN 9780893919214. Retrieved2014-12-02.
  2. ^Arvind; Gostelow, Kim P.; Plouffe, Wil (1978)."The (preliminary) Id report: an asynchronous programming language and computing machine (revised)".Technical Report TR-114, Department of Information and Computer Science, University of California, Irvine.
  3. ^"Concurrent Haskell". Peyton-Jones, Gordon and Finne. POPL 1996.

External links

[edit]
  • ID Language Reference Manual, Rishiyur S. Nikhil, 1991.
  • "An Asynchronous Programming Language for a Large Multiprocessor Machine", Arvind et al., TR114a, Dept ISC, UC Irvine, Dec 1978


Stub icon

Thisprogramming-language-related article is astub. You can help Wikipedia byadding missing information.

Retrieved from "https://en.wikipedia.org/w/index.php?title=Id_(programming_language)&oldid=1144551939"
Categories:
Hidden category:

[8]ページ先頭

©2009-2026 Movatter.jp