PL/1
PL/1 für Programming Language #1 ist eine Programmiersprache, die in den 1960er-Jahren von Heinz Zemanek (IBM Wien) entwickelt wurde.Ursprünglich entwickelt unter dem Namen NPL (New Programming Language) als eine allgemeine Programmiersprache für alle Anwendungsgebiete. Es wurde versucht, die Vorteile aller bis dahin bestehenden Hochsprachen (insbesondere ALGOL, Fortran und COBOL) zu vereinigen.
Kritiker der Sprache unterstellten PL/1, dass es leider nur gelungen sei, die Nachteile der verschiedenen Vorbilder zu vereinen. Bei naturwissenschaftlich-technischen Programmierern galt es als kaufmännisch, bei kaufmännischen Anwendern als naturwissenschaftlich-technisch. Anhänger weisen auf die Vorteile hin:
- Syntax mit freiem Format
- Schüsselwörter sind nicht abhängig von Groß- oder Kleinschreibung
- Viele eingebaute Funktionen
- Unterstützt strukturierte Programmierung
- Unterstützt rekursive Programmierung
- Datentypen sind hardwareunabhängig
- Dynamische Speicherverwaltung
- Eventhandling
Abkömmlinge des PL/1 sind PL/M (CP/M wurde in PL/M geschrieben) und PL/S (IBM interne Programmiersprache für Systemsoftware).
PL/1 wird meist auf IBM Großrechnern eingesetzt, es existieren aber auch Varianten für Windows, AIX und andere Unix - Varianten.
Gegenüber den später entwickelten Sprachen wie Pascal kennzeichnet die gesamte PL/I-Sprachfamilie (wie auch schon die Vorläufer aus dem ALGOL-Zoo), dass Datenstrukturen zwar als konkrete Elemente angegeben werden können, aber praktisch keine Sprachelemente für die Definition von Struktur-Typen existieren. Dadurch war es nicht möglich, Zuweisungskompatibilität schon während der Übersetzungszeit zu prüfen. Der neue PL/I-Compiler von IBM kennt auch abstrakte Datentypen.
Neben dem Namen PL/1 ist für diese Sprache auch der Name PL/I gebräuchlich.
Table of contents |
2 Literatur 3 Weblinks |
Programmbeispiel
Test: procedure options(main);
/* This is a comment */
/* Declaration: */
declare My_String char(20) varying initial('Hello, world!');
/* An example for an event handler */
on error begin;
/* edited output: */
put skip edit('There is an error in the world')(a);
call plidump; /* print a dump */
end;
put skip list(My_String); /* This is list output */
end Test;
Literatur
Weblinks