headerimage
ROWE Technik-Blog

Die Programmiersprache Pascal

20.04.2022

Die Programmiersprache Pascal wurde in den 80ziger Jahre häufig zu Schulungszwecken eingesetzt. Im Gegensatz zu Basic ist der Code sehr strukturiert aufgebaut. Variablen und Konstanten müssen vorab deklariert werden. Spagetti-Code wie im Basic wird weitestgehend vermieden. Zeilennummer sind für den Code nicht erforderlich, sie werden lediglich in Ausnahmefällen - z. B. beim ZX Spectrum - von einem Zeileneditor benötigt. Sprünge werden im Code durch mehrere Schleifentypen (For-, While-, Until-Schleife) ermöglicht. Im Gegensatz zum weitverbreiteten, maschinennahen C oder C++ ist der Pascal-Code durch Befehls- und Funktionswörter gut lesbar und ist zusammen mit angemessener Kommentierung des Programmierers auch durch andere Personen zu lesen und zu warten.

Meine ersten Erfahrungen hatte ich mit dem UCSD Pascal auf einem Apple II im Informatik-Unterricht 1984. Der Apple II mit 2 Diskettenlaufwerken und einem 12 Zoll Monochrommonitor kostete damals stolze 6.000,- DM.

Auszug aus der Kurzanleitung

Vor einem Compiler-Lauf musste die ASCII-Datei auf einer 5,25 Zoll Datendiskette gespeichert werden. Die  Compilierung erfolgte Schritt für Schritt über Lesen des Quelltextes von Diskette. Damit gestaltete sich die Fehlererkennung und -bereinigung „schneckenlangsam“.

In meinem Studium durften wir Pascal auf dem 32-Bit-Superminicomputer VAX11 programmieren. Die Eingabe erfolgte über diverse Textterminals und bewirke bei hoher Auslastung irritierende Latenzzeiten bei der Verarbeitung und Ausgabe. Programmierung mit hochauflösender Grafik war nicht möglich. Diagramme wurden per Textausgabe etwas umständlich mit dem „*“-Symbol während des Ausdruckens erzeugt.

Auszug aus dem Handbuch

Bei meinem Homecomputer ZX Spectrum war ich anfangs noch stolz, einen HiSoft Pascal Compiler für wenig Geld erstanden zu haben. Doch schnell wurde mir klar, dass die bescheidene verbleibende Speichergröße des Homecomputers und die sehr mühselige Eingabe mittels Zeileneditor wie beim Basic nur wenig Spaß machte.

Screenshot Hisoft Pascal 1.7M auf einem ZX Spectrum

Der Durchbruch der Programmiersprache wurde Ende der 80ziger Jahre durch die hohe Verbreitung der IBM-kompatiblen PCs und die Programmiersprache Turbo Pascal von Borland erreicht. Die Versionen 1 bis 3 waren noch recht spartanisch von der Benutzeroberfläche. Die hakelige Segmentierung des Arbeitsspeichers vom Intel 8088/8086 Prozessor musste mittels Overlay-Technik gehandhabt werden. Ab der Version 4.0 übernahm dies weitestgehend der Compiler und es wurde eine übersichtliche, zeichenorientierte Fensteroberfläche geboten. Der Code konnte mittels „full screen“-Editor komfortabel erfasst werden. Der Code ließ sich schnell testen und fehlerbereinigen, da die Compilierung wahlfrei neben Diskette/Festplatte auch im Arbeitsspeicher stattfinden konnte. Ab der Version 5 wurde darüber hinaus noch ein Debugger für die Fehlerbereinigung bereitgestellt. Turbo Pascal ermöglichte einfache Kommandozeilen-Aufrufe, umfassende string-Verarbeitung, mehrdimensionale Arrays und ein pfiffiges Units-Konzept (Unterbibliotheken).

Trotz vieler Vorteile besaß der Borland-Compiler aber unverändert

  • keine Syntaxhervorhebung oder Syntax-Highlighting (bis Version 6)
  • nur maximal 25-Zeilen Darstellung (alternativ ein mickriger 43-Zeilen Zeichensatz)
  • einen Funktions- und Befehlssatz, der keine Fenstertechnik für die Erstellung von Benutzeroberflächen und Dialogboxen unterstützte (bis Version 6)
  • einen Funktions- und Befehlssatz, der nur Standard-Ein-/Ausgabe per write/writeln/read/readln unterstütze, jedoch keine komfortablen Eingabe-/Editierfelder, wie z. B. dBASE
  • einen Funktions- und Befehlssatz unterstütze nur Standard-Ein-/Ausgabe in Dateien im Binär- und ASCII-Format, jedoch keine strukturierte Eingabe, Verarbeitung und Sicherung von Daten in einem Datenbank-Dateiformat, wie z. B. dBASE
  • eine komplizierte Ausgabe von hochauflösender Grafik auf die damals unterschiedlichsten monochromen und mehrfarbigen Grafikkarten
  • lediglich eine primitive Druckerausgabe im ASCII-Format

Kritiker argumentierten, der Befehlssatz orientiere sich an den Basisvorgaben nach Wirth und deshalb dürfe der grundlegende Befehls- und Funktionssatz nicht beliebig erweitert werden. Das stimmte natürlich, doch zeigten andere Anwenderprogramme, dass es viel komfortablere Methoden der Dateneingabe und -ausgabe gab. Zwar wurden die Nachteile durch zahlreiche Einzellösungen der Programmierer ausgeglichen, doch bewirkte das neben dem erheblichen zusätzlichen Programmieraufwand auch einen gewissen Wildwuchs und eine gewisse Inkompatibilität.

Screenshot des Dokumentationstools A500D

Als Beispiel sei ein selbstprogrammiertes Tool im Zuge meiner damaligen Tätigkeit als Projektleiter für Automatisierungstechnik genannt, dass für SPS-Ein-/Ausgabe-Baugruppen symbolische Daten selbsttätig aus dem Programmcode gelesen und auf Beschriftungsstreifen ausgedruckt hat. Die Fensteroberfläche und die Eingabedialoge sind eine Eigenprogrammierung und an die DOS-Benutzeroberfläche der Firma angeglichen. Die Druckerausgabe basiert auf mehreren PCL-Dateien, die mein Kollege Stefan im Zuge einer dBASE-Programmierung erstellt hatte. Die Druckerbeschreibungssprache PCL stammte von der HP LaserJet-Druckerserie und wurde damals von vielen HP-kompatiblen Laserdrucker unterstützt.

Turbo Pascal wurde mit der Verbreitung von Windows anfangs noch unter gleichen Produktnamen geführt (Turbo Pacal für Windows 1.0). Später wurde die deutlich erweiterte Benutzeroberfläche für Object Pascal in Delphi umgetauft. Noch heute vertreibt Embarcadero Technologies Delphi für die aktuelle Betriebssystemversion Windows 11.

Auch heute kann noch weitestgehend Quellcode-kompatibel in der Sprachausprägung Turbo Pascal programmiert werden. Die zeichenorientierte Entwicklungsumgebung Free Pascal ist open source und wird für mehrere System angeboten, so auch für 32- und 64Bit-Architektur des Windows 10.

"Free Pascal" abgebildet mittels dem Tool "Console" unter Windows 10

Ich selbst habe über mehrere Jahre nebenberuflich eine selbstprogrammierte WEG-Verwaltungs- und Abrechnungssoftware eingesetzt, die komfortabel vom online-Banking-Import und bis zur Eigentümerabrechnung auf den Cent genau rechnete. Der erzeugte Code ist sehr robust und die angebotenen Variablentypen erreichen eine Rechengenauigkeit von 15 Stellen zzgl. Vorzeichen. Die Daten wurden im dBASE III-kompatiblen Format verarbeitet und gesichert, die dafür weiterentwickelte Bibliothek stammte aus der DOS-Zeit von 1989.

In Free Pascal programmierte WEG-Verwaltungs- und Abrechnungssoftware

Allerdings bleiben auch in Free Pascal viele Schwächen erhalten, weil komplexe Dialoge immer noch selbst programmiert werden müssen, wie z. B. die Bedienoberfläche. Zwar gibt es analog zu Turbo Pascal die Bibliothek "Free Vision", die API-kompatibel zu "Turbo Vision" ist. Doch ist diese Version wie das Original relativ umständlich zu programmieren. Einfach gehaltene Zeilenmenüs sind für meinen eigenen Bedarf völlig ausreichend, jedoch in heutigen Anwendung nicht mehr zeitgemäß.

Analog zu Delphi bietet sich für Windows-Oberflächen und -dialoge die Entwicklungsumgebung Lazarus an, die auf Free Pascal gründet. Doch ist sie sehr umfangreich und die Einarbeitung ist langwierig. Für eine simple, gelegentliche Programmierung scheidet Lazarus für die meisten Nutzer wohl eher aus.

Die heutige Bedeutung der Programmiersprache

Die heutige Bedeutung von Pascal und Delphi ist eher gering. Viele Anwendungen werden heute als Web-/Browseranwendung programmiert. Dafür haben sich die Programmiersprachen Java, Java Script und Python etabliert, natürlich neben HTML und CSS zur Gestaltung der Webseiten. Systemnahe Software, wie Treiber, werden dagegen meist in C, C++, C# programmiert. Möchten Sie Programmierer werden, sollten Sie sich eher mit diesem Programmiersprachen befassen. Für Gelegenheitsprogrammierer, die für Freizeit und Beruf kleine Programme entwerfen wollen, ist Free Pascal unverändert ein interessanter Kandidat, der auf eine riesige Quellcode-Bibliothek zugreifen kann, als Open Source keine Lizenzkosten verursacht und schnellen Code erzeugt.

 

Kommentare: 0

Keine Kommentare vorhanden!

Neuen Kommentar verfassen:

Bitte füllen Sie mit * markierte Felder korrekt aus. JavaScript und Cookies müssen aktiviert sein.
Name: (Pflichtfeld)*
email: (Pflichtfeld, wird nicht veröffentlicht)*
Homepage:
Bild hochladen:
jpg - jpeg - gif - png   (max. 10 MByte)
Ihr Kommentar: *
(Das Bild wird erst beim speichern links oben eingefügt)
 
Bitte tragen Sie den Spamschutz Code ein:*
Captcha
Powered by CMSimpleBlog