MultiLisp - MultiLisp

MultiLisp
Paradigmák Több paradigma : funkcionális , imperatív , egyidejű , meta
Család Selypít
Tervezte Ifjabb Robert H. Halstead
Fejlesztő Massachusettsi Műszaki Intézet (MIT
Először jelent meg 1980 ; 41 évvel ezelőtt  ( 1980 )
Gépelési fegyelem Dinamikus , látens , erős
Hatály Lexikális
Végrehajtási nyelv Interlisp
Felület Koncert multiprocesszor
Engedély Szabadalmazott
Befolyásolta
Lisp , Scheme
Befolyásolt
Gambit , Interlisp - VAX

MultiLisp egy funkcionális programozási nyelv , a nyelvjárás a nyelv Lisp , és annak nyelvjárás rendszer , kiegészítve konstrukciók párhuzamos számítási végrehajtás és a megosztott memóriát . Ezek a kiterjesztések mellékhatásokkal járnak , így a MultiLisp nem determinisztikus . A párhuzamos programozású kiterjesztésekkel együtt a MultiLisp rendelkezett néhány szokatlan szemétgyűjtési és feladatütemezési algoritmussal is. A sémához hasonlóan a MultiLisp-et is szimbolikus számítástechnikára optimalizálták . Néhány párhuzamos programozási nyelvtől eltérően a MultiLisp konstrukciókat épített be mellékhatások kiváltására és a párhuzamosság kifejezett bevezetésére.

Robert H. Halstead Jr. tervezte az 1980-as évek elején a 32 processzoros Concert multiprocesszoron való felhasználásra, amelyet aztán a Massachusettsi Műszaki Intézetben (MIT) fejlesztettek ki, és az Interlisp- ben valósítottak meg . Befolyásolta a Gambit és az Interlisp- VAX rendszer dialektusainak fejlődését .

PCALL és JÖVŐ

A MultiLisp párhuzamosságot ér el a PCALL makróval , ahol

(PCALL Fun A B C ...)

egyenértékű

(Fun A B C ...)

kivéve, hogy az érveket A, B, C, stb. kifejezetten párhuzamosan lehet értékelni; ez megkerüli az értékelés szokásos sorrendjét, amely szekvenciális és balról jobbra halad. Ezenkívül használ egy futures nevű párhuzamos programozási konstrukciót , amely hasonlít a villára , lusta értékeléssel kombinálva . E konstrukció használatával olyan kifejezés, mint

(cons (FUTURE A) (FUTURE B))

írható, amely átfedésben lesz az A és B kifejezések kiértékelésével, nemcsak egymással, hanem olyan számításokkal is, amelyek a hátrányos hívás eredményét használják fel, mindaddig, amíg nem hajtanak végre olyan műveletet, amelynek helyes információra van szüksége az A vagy B értékéről .

Lásd még

Hivatkozások

  • Halstead, Robert H. Jr. (1985. október). Msgstr "MultiLisp: A szimbolikus számítások nyelve". ACM tranzakciók a programozási nyelvekről és rendszerekről . 7 (4): 501–538. doi : 10.1145 / 4472.4478 . S2CID   1285424 .
  • Koomen, Johannes AGM (1980). Az Interlisp virtuális gép: Tanulmánya annak tervezéséről és megvalósításáról, mint Multilisp (MSc). British Columbia Egyetem.
  • Bates, Raymond L.; Dyer, David; Koomen, Johannes AGM (1982. augusztus 15–18.). "Az Interlisp megvalósítása a VAX-on". LFP '82 Az 1982. évi ACM szimpózium anyagai a LISP-ről és a funkcionális programozásról . ACM szimpózium a LISP-ről és a funkcionális programozásról. Pittsburgh , Pennsylvania, Egyesült Államok. 81–87.
  • Halstead, Robert H. Jr. (1984). A MultiLisp nyelv: Lisp egy multiprocesszorhoz . Konferencia az 5. generációs számítógépekről. Tokió, Japán.
  • Martins, WS "A funkcionális nyelvek párhuzamos megvalósítása". A 4. Int. Workshop a funkcionális nyelvek párhuzamos megvalósításáról : 92.
  • Skillicorn, David B .; Talia, Domenico (1998. június). Msgstr "Modellek és nyelvek a párhuzamos számításhoz". ACM számítási felmérések . 30. (2): 123–169. doi : 10.1145 / 280277.280278 . S2CID   9308854 .