Notice: Unexpected clearActionName after getActionName already called in /var/www/html/includes/context/RequestContext.php on line 338
PL/I – Wikipedia (Deutsch) – Lokale Kopie Zum Inhalt springen

PL/I

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von PL/1)

Programming Language One, oft als PL/I (auch PL/1, PL1 oder PLI) abgekürzt, ist eine Programmiersprache, die in den 1960er-Jahren von IBM entwickelt wurde. Die Bezeichnung PL/1 ist vor allem in Deutschland, Österreich und in der Deutschschweiz gebräuchlich.

Entwicklungsgeschichte

Ursprünglich wurde PL/I unter dem Namen NPL (New Programming Language) als eine allgemeine Programmiersprache für alle Anwendungsgebiete entwickelt. Es wurde versucht, die Vorteile aller bis dahin bestehenden Hochsprachen (insbesondere ALGOL 60, Fortran und COBOL) zu vereinigen. Ebenso war es ein Ziel, die dynamische Speicherverwaltung von Assembler vereinfacht in PL/I zu integrieren.

Eigenschaften

Vorlage:Hinweisbaustein

Kritiker der Sprache warfen PL/I vor, vor allem die Nachteile der verschiedenen Vorbilder zu vereinen. Bei naturwissenschaftlich-technischen Programmierern galt sie als zu kaufmännisch, bei kaufmännischen Anwendern als zu naturwissenschaftlich-technisch orientiert.

Anhänger der Sprache nannten als Vorteile:

Implementierungen

PL/I war und ist bei einigen großen IBM-Anwendern Hausprogrammiersprache.

Das Betriebssystem Multics wurde in PL/I geschrieben.

Abkömmlinge von PL/I sind PL/M (für Mikrocomputer) und PL/S (IBM-interne Programmiersprache für Systemsoftware).

PL/I wird vorwiegend auf IBM-Großrechnern eingesetzt, es existieren aber auch Varianten für Windows, OS/2, AIX und andere Unix-Varianten.

Für S/360-Rechner wurde in Zusammenarbeit mit den Fluggesellschaften American Airlines und Eastern Air Lines der Dialekt SabreTalk entwickelt.

Gegenüber den später entwickelten Sprachen wie Pascal kennzeichnete die gesamte PL/I-Sprachfamilie (wie auch schon deren Vorläufer wie ALGOL), dass Datenstrukturen zwar als konkrete Elemente angegeben werden konnten, aber praktisch keine Sprachelemente für die Definition von Struktur-Typen existierten. In der neuesten Generation von PL/I der Fa. IBM, Enterprise PL/I, können auch abstrakte Datentypen verwendet werden.

Programmbeispiel Hallo Welt

<syntaxhighlight lang="Text"> Hallo: proc options(main);

    put list ('Hallo Welt!');

end; </syntaxhighlight> {{#invoke:Vorlage:Siehe auch|f}}

Literatur

  • E. Sturm: Das neue PL/I. 7. Auflage. Vieweg-Verlag, 2007, ISBN 978-3-8348-0520-1.
  • Wirtz, Klaus Werner: Einführung in PL/1 für Wirtschaftswissenschaftler. 3. Auflage. Oldenbourg, München / Wien 1989, ISBN 3-486-25641-6.
  • Friedrich Grund, Walter Issel: PL/I-Programmierung. 5. Auflage. Deutscher Verlag der Wissenschaften, Berlin 1990, ISBN 3-326-00021-9.

Weblinks

  • <templatestyles src="Webarchiv/styles.css" />{{#if:20071016082709
      | {{#ifeq: 20071016082709 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: IBM-Homepage über die PL/I-Familie | {{#invoke:WLink|getEscapedTitle|IBM-Homepage über die PL/I-Familie}} | {{#invoke:Webarchiv|getdomain|http://www-306.ibm.com/software/awdtools/pli/}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20071016082709}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: IBM-Homepage über die PL/I-Familie | {{#invoke:WLink|getEscapedTitle|IBM-Homepage über die PL/I-Familie}} | {{#invoke:Webarchiv|getdomain|http://www-306.ibm.com/software/awdtools/pli/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20071016082709}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: IBM-Homepage über die PL/I-Familie | {{#invoke:WLink|getEscapedTitle|IBM-Homepage über die PL/I-Familie}} | {{#invoke:Webarchiv|getdomain|http://www-306.ibm.com/software/awdtools/pli/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: IBM-Homepage über die PL/I-Familie | {{#invoke:WLink|getEscapedTitle|IBM-Homepage über die PL/I-Familie}} | {{#invoke:Webarchiv|getdomain|http://www-306.ibm.com/software/awdtools/pli/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: IBM-Homepage über die PL/I-Familie | {{#invoke:WLink|getEscapedTitle|IBM-Homepage über die PL/I-Familie}} | {{#invoke:Webarchiv|getdomain|http://www-306.ibm.com/software/awdtools/pli/}} }} (Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: IBM-Homepage über die PL/I-Familie | {{#invoke:WLink|getEscapedTitle|IBM-Homepage über die PL/I-Familie}} | {{#invoke:Webarchiv|getdomain|http://www-306.ibm.com/software/awdtools/pli/}} }}  
                 }}}}}}}}{{#if:
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20071016082709|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://www-306.ibm.com/software/awdtools/pli/}}
    || {{#if:  || }}
  }}{{#if: IBM-Homepage über die PL/I-Familie
    | {{#if: {{#invoke:WLink|isBracketedLink|IBM-Homepage über die PL/I-Familie}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://www-306.ibm.com/software/awdtools/pli/%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www-306.ibm.com/software/awdtools/pli/%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://www-306.ibm.com/software/awdtools/pli/ }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }} (englisch)