Zum Inhalt springen

ISWIM

aus Wikipedia, der freien Enzyklopädie

ISWIM ist eine von Peter J. Landin konzipierte Programmiersprache und eine Abkürzung von »If you See What I Mean«.

Landin stellte seine Ideen auf einer Konferenz im August 1965 vor. Dieser Vortrag wurde unter dem Titel The Next 700 Programming Languages in den Communications of the ACM veröffentlicht und übte unterschwellig einen großen Einfluss auf spätere Entwicklungen aus. Der US-amerikanische Informatiker John Charles Reynolds behauptete, der Einfluss ISWIM hätte den von Algol 60 übertroffen. Tatsächlich wurde nie ein ISWIM-Compiler implementiert, während es bei Algol 60 eine Reihe von Implementierungen und Nachfolgesprachen (darunter JOVIAL, Coral 66, Simula, Algol 68, Pascal) gab.

Der Titel spielt auf die damals gezählten 700 Anwendungsfelder an, für die bereits 1700 Programmiersprachen existierten. Alle diese Sprachen unterschieden sich in vielen Details – auch in den Teilen, die nicht mit ihrem Anwendungsgebiet zu tun hatten. Nun hatte man durch Algol 60 gerade die Nützlichkeit einer klaren Struktur kennengelernt und verwandte es deshalb gerne auch für Anwendungen, für die es nicht entworfen worden war.

Landin (1965) hatte den applikativen Kern in Algol 60 beschrieben. Nun ging er umgekehrt von diesem Kern, also einem untypisierten λ-Kalkül aus. Das Ziel ist es, diesen Kern so weit wie möglich anwendbar zu machen. Eine Konsequenz ist die Freigabe der Auswertungsreihenfolge, die bei der imperativen Programmierung bekanntlich mehr als logisch nötig festgelegt wird.

Nicht angesprochen in Landins Vortrag wurde die Frage, wie ISWIM hätte erweitert werden können; er spricht allerdings von 700 Programmiersprachen und nicht von einer Programmiersprache mit 700 Erweiterungsmodulen. Tatsächlich scheint diese Frage auch erst später intensiver untersucht worden zu sein.

Ebenfalls vorausgesetzt und nicht näher diskutiert wurden die imperativen Ergänzungen.

Die Darstellung der Quelltext-Blockstruktur mittels Einrückung (Offside-Rule, Abseitsregel) in ISWIM wurde von einigen später entwickelten Programmiersprachen übernommen. Beispielsweise implementieren Haskell, Occam und Python die Abseitsregel.

Literatur

Peter J. Landin:

  • A correspondance between ALGOL 60 and Church's Lambda-notation. Communication of the ACM 8, 89–101; 158–165 (1965)
  • The Next 700 Programming Languages (PDF; 1,2 MB) Communications of the ACM, 9, 157–166 (1966). — enthält auch Diskussion Ersatzlink (PDF; 1,15 MB)

Sekundärliteratur:

          | )
          | {{#if:{{#ifeq:en|de||{{#if:en|1}}}}| ; 
              | )}}}}}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}}}{{#if:http://www.cs.utah.edu/plt/publications/pllc.pdf%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=http://www.cs.utah.edu/plt/publications/pllc.pdf}}%7C%7C}}}}{{#if:Programming languages and lambda calculi (draft)|{{#if:{{#invoke:WLink|isValidLinktext|1=Programming languages and lambda calculi (draft)|lines=0}}||}}}}{{#if: | In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{{werk}}}}}}}{{#if: The University of Utah – School of Computing| The University of Utah – School of Computing{{#if: 2006-07-12Kapitel 4: ISWIM, pp. 37–48https://web.archive.org/web/20090205113235/http://www.cs.utah.edu/plt/publications/pllc.pdf%7C,%7C{{#if: 2014-08-10 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: 2006-07-12| {{#if:{{#invoke:DateTime|format|2006-07-12|noerror=1}}
            |{{#invoke:DateTime|format|2006-07-12|T._Monat JJJJ}}
            |{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum=2006-07-12|class=Zitationswartung}} }}{{#if: Kapitel 4: ISWIM, pp. 37–48https://web.archive.org/web/20090205113235/http://www.cs.utah.edu/plt/publications/pllc.pdf%7C,%7C{{#if: 2014-08-10 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: Kapitel 4: ISWIM, pp. 37–48| S. Kapitel 4: ISWIM, pp. 37–48{{#if: https://web.archive.org/web/20090205113235/http://www.cs.utah.edu/plt/publications/pllc.pdf%7C,%7C{{#if: 2014-08-10 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: https://web.archive.org/web/20090205113235/http://www.cs.utah.edu/plt/publications/pllc.pdf{{#invoke:TemplUtl%7Cfaculty%7C}}%7C+{{#if:Kapitel 4: ISWIM, pp. 37–482006-07-12The University of Utah – School of Computing|{{#if:https://web.archive.org/web/20090205113235/http://www.cs.utah.edu/plt/publications/pllc.pdf%7Carchiviert%7Cehemals}}%7C{{#if:https://web.archive.org/web/20090205113235/http://www.cs.utah.edu/plt/publications/pllc.pdf%7CArchiviert%7CEhemals}}}}+{{#if:https://web.archive.org/web/20090205113235/http://www.cs.utah.edu/plt/publications/pllc.pdf%7Cvom%7Cim}}+Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|}}| (nicht mehr online verfügbar)}}{{#if: 2009-02-05| am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|2009-02-05{{#if:464405||(?)}}}}}}{{#if: 2014-08-10|;}}}}{{#if: 2014-08-10| {{#if:Kapitel 4: ISWIM, pp. 37–482006-07-12The University of Utah – School of Computinghttps://web.archive.org/web/20090205113235/http://www.cs.utah.edu/plt/publications/pllc.pdf{{#invoke:TemplUtl%7Cfaculty%7C}}%7Cabgerufen%7CAbgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| 2014-08-10 |ISO|noerror=1}} }}
       |4=im Jahr
       |7=im
       |10=am
       |#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf=2014-08-10|class=Zitationswartung}} }} {{#invoke:DateTime|format|2014-08-10|T._Monat JJJJ}}
    | {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:en|de||{{#if:en|1}}}}|{{#if:The University of Utah – School of Computing2006-07-12Kapitel 4: ISWIM, pp. 37–48https://web.archive.org/web/20090205113235/http://www.cs.utah.edu/plt/publications/pllc.pdf{{#if: 2014-08-10 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
       |  (
       | {{#if:PDF | |  (}}
       }}{{#ifeq:{{#if:en|en|de}}|de||
          {{#invoke:Multilingual|format|en|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: |{{#ifeq:{{#if:en|en|de}}|de||, }}{{{kommentar}}}}})}}{{#if: 2006-07-12Kapitel 4: ISWIM, pp. 37–48https://web.archive.org/web/20090205113235/http://www.cs.utah.edu/plt/publications/pllc.pdf{{#if: 2014-08-10 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}} }}en|{{#if: |: {{
 #if: 
 | {{
     #ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | Vorlage:Str trim
     | {{#invoke:Vorlage:lang|flat}}
     }}
 | {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | „Vorlage:Str trim“
     | {{#invoke:Text|quote
         |1={{#if: 
              | {{#invoke:Vorlage:lang|flat}}
              | {{#invoke:Vorlage:lang|flat}} }}
         |2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
         |3=1}} }}

}}{{#if:

   |  (<templatestyles src="Person/styles.css" />{{#if:  | :  }}{{#if:  | , deutsch: „“ }})
   | {{#if: 
       |  ({{#if:  | , deutsch: „“ }})
       | {{#if:  |  (deutsch: „“) }}
 }}

}}{{#if: {{{zitat}}}

   | {{#if: 
       | {{#if: {{{zitat}}}
           | Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
   | Vorlage:": Text= fehlt }}{{#if:  | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
             | Vorlage:": Ungültiger Wert: ref=
             | {{{ref}}} }}

}}|.{{#if:{{#invoke:TemplUtl|faculty|}}|{{#if:https://web.archive.org/web/20090205113235/http://www.cs.utah.edu/plt/publications/pllc.pdf%7C%7C{{#ifeq: | JaKeinHinweis |{{#switch:

   |0|=Vorlage:Toter Link/Core{{#if: http://www.cs.utah.edu/plt/publications/pllc.pdf
       | {{#if:  | [1] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: http://www.cs.utah.edu/plt/publications/pllc.pdf
      | {{#if:{{#invoke:URLutil|isWebURL|http://www.cs.utah.edu/plt/publications/pllc.pdf}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://www.cs.utah.edu/plt/publications/pllc.pdf Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: http://www.cs.utah.edu/plt/publications/pllc.pdf
       | {{#if:{{#invoke:URLutil|isWebURL|http://www.cs.utah.edu/plt/publications/pllc.pdf}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[http://www.cs.utah.edu/plt/publications/pllc.pdf }}|{{#switch: 
   |0|=Vorlage:Toter Link/Core{{#if: http://www.cs.utah.edu/plt/publications/pllc.pdf
       | {{#if:  | [2] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: http://www.cs.utah.edu/plt/publications/pllc.pdf
      | {{#if:{{#invoke:URLutil|isWebURL|http://www.cs.utah.edu/plt/publications/pllc.pdf}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://www.cs.utah.edu/plt/publications/pllc.pdf Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: http://www.cs.utah.edu/plt/publications/pllc.pdf
       | {{#if:{{#invoke:URLutil|isWebURL|http://www.cs.utah.edu/plt/publications/pllc.pdf}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[http://www.cs.utah.edu/plt/publications/pllc.pdf }} }}}}}}}}}}{{#if:|
        {{#invoke:Vorlage:Internetquelle|archivBot|stamp={{{archiv-bot}}}|text={{#if:https://web.archive.org/web/20090205113235/http://www.cs.utah.edu/plt/publications/pllc.pdf%7CVorlage:Webarchiv/archiv-bot}}

}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}