Die ersten Programmiersprachen waren an spezielle Einsatzzwecke gerichtet: Es gab Sprachen für den wissenschaftlichen (z.B. FORTRAN, ALGOL) oder den kommerziellen Sektor (z.B. COBOL). PL/I sollte 1964 erstmals eine universelle Programmiersprache für alle Bereiche darstellen. Die Begeisterung hielt sich in Grenzen – und doch sind die Auswirkungen auch 60 Jahre später noch zu spüren.
Ein IBM System/360 Model 91 System im Dienste der NASA (Foto aus den späten 1960ern). Im Verlauf der 1960er hielten Mainframe-Rechner nicht nur an Universitäten und Forschungseinrichtungen, sondern zunehmend auch im Bankwesen und Unternehmen Einzug. Das IBM System/360 sollte sich an den wissenschaftlichen als auch den kommerziellen Einsatz richten. Das weckte den Bedarf an einer vereinheitlichten Programmiersprache, die sich an beide Felder richtete. PL/I - kurz für „Programming Language 1“ - sollte diese Lücke füllen.
Mitte der 1950er Jahre entstand die Idee, zur Programmerstellung eine an die natürliche Sprache angelehnte Formulierung zu nutzen. Bis dahin war eine Programmierung in Assemblersprache angesagt, etwas, für das „keine Vergnügungssteuer“ fällig war. Aus diesen allerersten Anfängen entstand dann die dritte Generation der Programmiersprachen (nach Maschinen- und Assemblersprache).
Domänen-spezifische Entwicklungen der Programmiersprachen waren in der Folgezeit offenbar weder zufällig noch gewollt, sondern unvermeidbar, und so entwickelten sich z.B. Sprachen im wissenschaftlich-technischen Bereich (Fortran, Algol) und im kommerziellen Bereich (Cobol). Die wohl bekannteste Bestrebung zur Vereinheitlichung der Sprachen stammt dann von IBM – PL/I.
PL/I – Programming Language One – wurde 1964 zunächst als NPL (New Programming Language) eingeführt. Da allerdings das Kürzel mit dem des (britischen) National Physical Laboratory kollidierte, erfolgte 1965 kurzerhand die Umbenennung in PL/I. 2024 feiern wir also den 60. Geburtstag dieser Sprache.
Der Bedarf an einer vereinheitlichten Programmiersprache
Wesentliche Unterstützung einer einheitlichen Sprache kam auch durch die Entwicklung der Hardware. Zwar unterlagen alle in der 1960er Jahren entwickelten Mainframe-Prozessoren dem Von-Neumann-Prinzip, wie es auch heute noch gilt. Aber diese General-Purpose-Prozessoren besaßen doch Domänen-spezifische Eigenschaften – auch heute sind Digitale Signalprozessoren für digitale Signalverarbeitung angepasst.
Die IBM System/360-Mainframe-Familie, ebenfalls 1964 angekündigt und ab 1966 lieferbar, war für eine der ersten, die sich direkt an die beiden großen Welten richtete: wissenschaftlich/technisch und kaufmännisch, gleichermaßen konzipiert. Das weckte auch den Bedarf nach einer vereinheitlichten Sprache, die die Bedürfnisse dieser beiden Felder gleichermaßen bedienen konnte. PL/I sollte eben diese vereinheitlichte Sprache sein.
Der weitere Weg von PL/I war dann
1964 Geburtsstunde
1965 Erstes vollständiges Manual
1966 Erster Compiler
1973 Definition von PL/M, Programming Language for Microprocessors
1976 Standardisierung PL/I
2024 Der Support für PL/I Compiler wird fortgesetzt
Im Übrigen war PL/I in den ersten Fassungen die Programmiersprache für die Entwicklung des Mainframe-Betriebssystems Multics, dass als einer der Väter von Unix (oder auch „Unics“) gilt.
Eine eigene Anekdote zu meiner Berührung mit PL/I fand im Jahr 1987 statt. Ich hatte auf diversen Fahrten mit der Münchner U- und S-Bahn ein kleines Buch zu PL/I gelesen und fand die Sprache recht ansprechend. Auf die kurze Zeit danach von meinem Chef bei Siemens Datentechnik angeschnittene Frage, wer denn PL/I kenne, und meine Antwort „Grundkenntnisse“ hatte ich dann zusammen mit Kollegen aus anderen Bereichen eine mehrtägige Dienstreise zu AT&T in Arlington gewonnen, um dort in PL/I geschriebenen Code im Bereich ISDN-Services auf Übernahme zu prüfen. Hierbei merkte man sehr deutlich die Eignung von PL/I im technischen Bereich, insbesondere das „ON“-Konzept.
Besonderes an PL/I
Zunächst einmal sei festgestellt, dass eine Vereinheitlichung als Übermenge, als Kompromiss oder auch in verschiedenen Mischformen denkbar ist. In jedem Fall wird es immer irgendeine Form von Kritik geben, so auch bei PL/I. Den Kritikern aus der Technikecke war die Sprache zu kaufmännisch, denjenigen aus dem kaufmännischen Bereich aber selbstverständlich zu technisch.
Von den Befürwortern wurden andererseits Eigenschaften hervorgehoben, die wegweisend für moderne Programmiersprachen waren. Hierzu zählen die gute Unterstützung von strukturierter und rekursiver Programmierung sowie die Ereignisbehandlung. Ja, die Förderung strukturierten Programmierens war eine wichtige Aufgabe, wie man unschwer auch daran erkennt, dass in jenen Jahren ein Paper des Autors Edsger W. Dijkstra mit der Begründung, dass strukturiertes Programmierung doch gar keinen Vorteil bringe und dass erfahrene Programmierer halt wüssten, dass man nur „in wilder Weise“ programmieren könnte, abgelehnt wurde.
Worin liegen denn die Besonderheiten von PL/I? Das berühmte Programm „Hello World“ hat zunächst diese Gestalt:
Hallo: proc options(main); put list ('Hello World!');end;
und zeigt damit relativ wenig Überraschendes. Natürlich gibt es Schleifen (DO .. END), Verzweigungen (IF, SELECT), auch ein GO TO fehlt nicht. Die Speicherverwaltung lässt sich über eigene Sprachkonstrukte (ALLOCATE, FREE) integrieren, auch eigene Blöcke mit lokal definierten Variablen und Prozeduren können definiert werden (BEGIN, END).
Besonders revolutionär war auch, dass die Namen case-insentive waren: zwischen Groß- und Kleinschreibung wurde nicht unterschieden. Wer sich noch an die alten Rechenkisten mit Lochkartenprogrammierung erinnert, weiß, dass der Programmcode sehr formatiert erstellt werden musste. Allein diese Maßnahme war bereits ein wichtiger Schritt zur Flexibilisierung.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel Communications Group GmbH & Co. KG, Max-Planckstr. 7-9, 97082 Würzburg einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.
Datentypen können in PL/I für Integer wie Floating Point definiert werden, und – eine weitere Besonderheit – für reelle und komplexe Zahlen. Natürlich gibt es auch Datenstrukturen, allerdings werden abstrakte Strukturen erst in neueren Versionen unterstützt.
Ein besonderes Augenmerk fand aber die Signalverarbeitung, ein durchaus modernes Feature. Das ON-Statement bildet die Brücke zu dem jeweiligen Ereignis, hierzu zählen z.B. schwere Fehler im Ablauf (FIXEDOVERFLOW, OVERFLOW, STRINGSIZE, ZERODIVIDE), weiterhin einfache Ereignisse (ENDFILE(file), ENDPAGE(file)) oder andere Bedingungen (ERROR, FINISH). Mithilfe dieser Konstrukte konnte und kann die Behandlung solcher Ereignisse bestmöglich in das Programm integriert werden.
Resüme: „Like a Rolling Stone“
PL/I war für Mainframes konzipiert, und die Softwareprojekte, die damit durchgeführt wurden, waren typischerweise in großen Firmen wie Bell Laboratories – siehe auch Anekdote oben – angesiedelt. Und selbst heute wird der Compiler von IBM weiter gepflegt. In diesem Bereich stellte sich PL/I duarchaus als ein großer Wurf heraus.
Auf dem PC- und Mikrocontroller-Sektor konnte sich PL/I (bzw. PL/M) dagegen nie richtig durchsetzen, obwohl Implementierungen für MS-DOS und CP/M vorlagen. Dies mag unter anderem daran liegen, dass für Unix und in der Folge auch die anderen Betriebssysteme die Sprache C den Standard darstellte, so dass auf diesem Gebiet der Siegeszug der C-Familie unaufhaltsam war. So groß war der Wurf der Programming Language One dann doch nicht.
PL/I steht nicht im Rampenlicht, aber von der Bildfläche verschwunden ist sie auch nicht: Im April 2022 kündigte IBM die Verfügbarkeit von Enterprise-PL/I revease 6.1 für sein 64bit-Mainframe-Betriebssystem z/OS an, das zugehörige Referenzhandbuch wurde noch im Juli diesen Jahres noch einmal aktualisiert. Auch mit 60 Jahren ist die Programmiersprache sinnbildlich „like a rolling stone“: Immer in Bewegung und kein Moos ansetzend.(sg)