MINÄ UIN

MINÄ UIN
Kieliluokka tiukka, toimiva
Esiintyi 1966
Tekijä Peter Landin
Tyyppijärjestelmä dynaaminen
Vaikutettu Algol 60 , Lisp
vaikutti SASL , ML , Miranda , Haskell , Clean , Lucid

ISWIM  ( englanniksi If you  See What I Mean  - jos ymmärrät mitä tarkoitan ) on teoreettinen ohjelmointikieli , jonka Peter Landin kuvasi vuonna 1966 [ 1] pakolliseksi kieleksi , jonka toiminnallinen ydin perustuu λ-laskentaan syntaktisen sokerin kanssa . Pääominaisuus on J-operaattorin käyttö muuttuvaan tilaan , osoitus- ja ohjausmekanismiin  , joka mahdollistaa nykyisen jatkon kaappaamisen . λ-laskennan ansiosta kielellä on korkeamman asteen funktioita ja leksikaalisia muuttujia .  

ISWIM: n toiminnallinen semantiikka on SECD - koneen määrittelemä ( pino, ympäristö, koodi, dump ), ja se käyttää arvon mukaan kutsua eli tiukkaa arviointia . Kielen koodin piti näyttää mahdollisimman läheltä matemaattista merkintää, joten Landin poisti puolipisteen lauseiden ja Algol-kaltaisille kielille tyypillisten aloituslohkojen väliltä ja korvasi ne kohdistuksesta riippuvalla laajuudella.  

ISWIM-merkinnän erityispiirre on missä-lauseiden käyttö. ISWIM-ohjelma on yksittäinen lauseke, joka on rajoitettu jossa-lauseisiin (apumääritelmiin, jotka sisältävät muuttujien välisiä suhteita), ehdollisiin lausekkeisiin ja funktiomääritelmiin. ISWIM (yhdessä CPL :n kanssa ) on ensimmäinen kieli, joka käyttää tätä merkintää.

Merkittävä semanttinen ominaisuus oli kyky määritellä uusia tietotyyppejä (mahdollisesti rekursiivisena) tuotteiden summana; tätä varten käytettiin tilavaa kuvausta, joka oli melko samanlainen kuin luonnolliset kielet, oleellisesti samanlainen kuin algebralliset tietotyypit nykyaikaisissa toiminnallisissa kielissä. Kielen muuttujilla ei ollut eksplisiittisiä tyyppimäärityksiä, mikä viittaa siihen, että Landin suunnitteli dynaamisesti kirjoitettua kieltä (kuten Lisp , ei Algol ); mahdollisesti olettaen myös jonkinlaisen tyyppipäätelmän .

ISWIMiä ei koskaan otettu käyttöön ohjelmistoissa, vaikka Art Evanin PAL ja John Reynoldin Gedanken käyttivät useimpia Landinin kielen avainominaisuuksia, mukaan lukien siirtotoiminnot. Molemmat näistä kielistä käyttivät dynaamista kirjoitusta. Milnerin ML :n voidaan katsoa vastaavan ISWIM:ää ilman J-operaattoria, mutta rikastettuna tyyppipäätelmillä .

Toinen ISWIM:n seuraajalinja pääsi eroon pakollisista ominaisuuksista - kohdistamisesta ja J-operaattorista - kehittyen puhtaasti toiminnallisina kielinä, ja siirtyi sittemmin laiskaan arviointiin . SASL , Miranda ja Haskell menivät tähän suuntaan .

Muistiinpanot

  1. P. Landin. Seuraavat 700 ohjelmointikieltä  // ACM:n viestintä . - 1966. Arkistoitu 13. joulukuuta 2014.