WikiDer > Pascal (Programmiersprache)
Pascal | ||||
| Paradigma | Imperativ | |||
| erschien | 1970 | |||
| Entworfen von | Niklaus Wirth | |||
| Typensystem | statisch, stark | |||
| Implementierungen | GNU Pascal, PS Pascal, Apfel Pascal und andere | |||
| Dialekte | Borland Pascal, Turbo-Pascal, Objekt Pascal und andere | |||
| Beeinflusst von | algol | |||
| Einfluss auf | Modula-2, Ada, Sauerstoff, COMAL | |||
| Betriebssystem | Multiplattform | |||
| ||||
Pascal ist ein Programmiersprache das in 1970 wurde entwickelt von Niklaus Wirth und ist nach dem französischen Mathematiker benannt Blaise Pascal. Pascal legt Wert auf Einfachheit, strukturierte Programmierung und Datenstrukturen. Die Sprache basierte auf der Sprache, die einige Jahre zuvor entwickelt wurde Algol-60 und eine Alternative zu seinem allzu komplizierten Nachfolger (Algol-68).
Pascals Programme sollten sein Mini-Computer kompiliert und ausgeführt werden konnte. Tatsächlich hatte Wirth schon so eine Art persönlicher Computer für die Augen. Pascal ist jedoch für praktische Anwendungen noch nie so beliebt geworden wie die Programmiersprache C von Brian Kernighan und Dennis Ritchie, das die gleichen Strukturen wie Pascal bietet, aber auch mehr Möglichkeiten, diese zu umgehen und Optimierungen für den zu verwendenden Computer vorzunehmen, Dinge, die Wirth vermeiden wollte, die Programmierer jedoch wollten.
In dem 1970er hat Pascal noch nicht angesprochen. Einerseits waren die Mini-Computer noch zu teuer um eigenständige zu verwenden, blieb dagegen Mainframe-Benutzer zu Sprachen wie Algol-60 und fortran halten. Das änderte sich im 1980er Jahre, dann Compiler für verschiedene Varianten für Personalcomputer verfügbar. Pascal löste daraufhin Algol-60 als am weitesten verbreitete Programmiersprache an Universitäten und Hochschulen ab. Nach dem strukturierte Programmierung, von was Edsger Dijkstraße war der große Champion, die nächste große Entwicklung wurde es Objekt orientierte Programmierung; objektorientierte Varianten wurden später sowohl für C als auch für Pascal erstellt. Turbo-Pascal war eine beliebte Variante.
Pascal ist in seiner ursprünglichen Form ein reines Verfahrenssprache.
Grundgrammatik
Ein häufig verwendetes Beispiel, um einen Eindruck von der Grammatik einer Sprache ist es "Hallo Welt" Programm.
ProgrammHallo Welt(Ausgabe);loslegenschreiben('Hallo Welt!')Ende.In Pascal sein Schlüsselwörter Groß-/Kleinschreibung nicht beachten. Außerdem haben (außerhalb von Strings) Leerzeichen vor und nach einem Semikolon und der Punkt sowie zusätzliche Leerzeichen keinen Einfluss. Außerdem entspricht ein Übergang zu einem Zeilenumbruch einem Leerzeichen.
Ein Pascal-Programm beginnt mit dem Schlüsselwort "Programm", gefolgt von a Kennung mit einem oder mehreren Parametern in Klammern und dann einem Semikolon. Einige Compiler erlauben es, das bisher Erwähnte wegzulassen. Dann ggf. a verwendet Klausel. Der Rest ist a Block, gefolgt von einem Punkt.
Der Block besteht aus einem Deklarationsteil (oben leer) und einer zusammengesetzten Anweisung, die aus "begin", null oder mehr durch Semikolon getrennten Anweisungen und "end" besteht. Ein Befehl kann auch leer sein, daher ist auch ein Semikolon vor "end" erlaubt.
Der Deklarationsteil kann die Deklaration einer oder mehrerer Variablen enthalten, wie zum Beispiel:
varich,nein:ganze Zahl;ein,b,c:Real;f:TextdateiEin Befehl (o) kann enthalten (wobei (oo) für null oder mehr Befehle steht, die durch Semikolons getrennt sind, und (e) für Ausdruck):
- eine Zuweisungsanweisung wie n:=n 1
- eine strukturierte Aufgabe:
- eine zusammengesetzte Aufgabe (siehe oben)
- ein bedingter Befehl:
- wenn (e) dann (o)
- wenn (e) dann (o) sonst (o)
- ein Wiederholungsbefehl wie:
- für n:=1 bis 10 tun (o)
- für n:=10 bis 1 do (o)
- (oo) wiederholen bis (e)
- während(e) tun(o)
Ausdrücke sind beispielsweise "m=10", "m Das Schreiben in eine Datei mit Dateispeicherort (b) kann (abhängig vom Compiler) beispielsweise wie im folgenden Beispiel erfolgen: Die Funktion "write" statt "writeln" wird verwendet, wenn mehr auf die gleiche Zeile kommen soll. Pascal basiert eindeutig auf Algol-60 und daher ist es sinnvoll, die Unterschiede zu dieser Sprache und die Gründe für diese Unterschiede zu beschreiben. In den meisten Fällen wurden die Neuerungen in Pascal auch in späteren Sprachen übernommen. Es gibt drei Arten von Unterschieden: Pascal wurde ungefähr zur gleichen Zeit wie C entwickelt und es gibt viele Ähnlichkeiten zwischen den beiden Sprachen. Das Original Pascal und C sind beides einfache prozedurale Sprachen für die strukturierte Programmierung. Sie haben Einrichtungen für dynamische Speicherverwaltung und Zeigermanipulation. Äußerlich sind die Sprachen jedoch völlig anders, wobei C deutlich kompakter, aber weniger „lesbar“ ist. Ein wichtiger Unterschied, der die eine oder andere Sprache bevorzugt, ist die Verwendung von Pascal von := als Zuweisungsoperator und = für Vergleiche. In C wird . zu = als Zuweisungsoperator verwendet, und == für Vergleiche. weil = in der Mathematik für beide Zwecke verwendet, viele verwenden das kürzere Symbol, wenn das andere Symbol (entweder := in Pascal oder == bei C). Die Designer von C argumentierten, dass Zuweisungen viel häufiger vorkommen als Gleichungen und daher die Zuweisung das kürzeste Symbol verdient. Pascal-Anhänger argumentieren, dass das versehentliche Durchführen eines Vergleichs viel weniger schädlich ist als eine Zuweisung, was sicherlich zutrifft, wenn es wie in C völlig richtig ist, eine Zuweisung mitten in einer Zuweisung durchzuführen. wennAnweisung auszuführen. Moderne Compiler machen den Programmierer auf solche Dinge aufmerksam, die den Boden für Diskussionen weitgehend beseitigt haben. Das größte Risiko bei der Verwendung von C über Pascal ist Verwirrung um Zeiger. In Produktionsumgebungen werden in C-Programmen relativ viele sehr schwer zu findende Fehler gemacht, indem versehentlich die Adresse eines Zeigers mit dem Wert vertauscht wird, auf den der Zeiger zeigt. Bei Pascal ist eine solche Verwechslung dank starker Typprüfung unmöglich. Diese Debatte veranschaulicht die Unterschiede, die dem Design der beiden Sprachen zugrunde lagen. Pascal wurde teilweise als Studiensprache konzipiert. Auf fehleranfällige Konstruktionen wurde bewusst verzichtet und auf eine gute Lesbarkeit des Codes geachtet. Die Designer von C legten dagegen Wert auf Prägnanz. Ein weiterer wichtiger Unterschied besteht darin, dass Pascal eine starke Typisierung hat. Das bedeutet, dass alle Variablen eines bestimmten Typs vordefiniert sein müssen, bevor sie verwendet werden können. Zuordnungen zwischen nicht austauschbaren Typen sind verboten, es sei denn, sie werden durch eine explizite Typumwandlung konvertiert. Dies vermeidet häufige Fehler, bei denen Variablen nicht korrekt verwendet werden, weil der Programmierer den Typ der Variablen nicht beachtet. Es ist nicht mehr nötig Ungarische Notation, eine Gewohnheit, in der Kennungen beginnen Sie mit einem Buchstaben, der den Typ identifiziert. Im Gegensatz zu C erlaubt Pascal die mehrfache Verschachtelung von Prozeduren. Verschachtelte Funktionen haben vollen Zugriff auf Variablen und Parameter der Funktion, in der sie verschachtelt sind. Ursprünglich hatte Pascal keine Mechanismen zur separaten Kompilierung und Handhabung von Arrays unbekannter Größe; Implementierungen, die diese Funktionalität bereitstellen, sind jedoch seit Jahrzehnten verfügbar. Frühe Implementierungen (insbesondere die UCSD p-System-Compiler, der auf dem Zurich-P4-Compiler basierte, beide in Pascal selbst geschrieben) übersetzte Pascalcode in ein maschinenunabhängiges P-Code-Darstellung. Diese Zwischenform wurde dann von einem für eine Computerarchitektur spezifischen Programm interpretiert. Dadurch ist nur dieses kompakte Dolmetscher an unterschiedliche Architekturen angepasst. In dem achtziger Jahre Anders Hejlsberg hat den Blue Label Pascalcompiler für die Nascom-2-Computer. Hejlsberg hat sich später für die Firma entschieden Borland arbeiten und seine umschreiben Compiler zu was Turbo-Pascal für den IBM-PC. Dieser neue Compiler kostete 49 US-Dollar, weit weniger als der Preis, den Hejlsberg ursprünglich für den Blue Label-Compiler verlangte. Borlands billiger Compiler hatte großen Einfluss auf die Pascal-Community, die sich Ende der 1980er Jahre hauptsächlich auf den IBM-PC konzentrierte. Viele PC-Bastler suchten nach einem strukturierte Programmiersprache Das BASIC ersetzen konnte und oft bei Turbo Pascal landete. Turbo Pascal direkt übersetzt in die Maschinensprache des ZilogZ80 oder der Intel8086, die einzigen Architekturen, die es unterstützte, und war daher viel schneller als interpretierte Systeme. Super Pascal war eine Variante, die nicht-numerische Etiketten verwendet, a Rückkehr-Anweisung und Ausdrücke als Typnamen. In dem Die Neunziger Compiler, die flexibel auf mehrere Computerarchitekturen angewendet werden konnten, wurden dominanter. Dadurch war es möglich, Pascal direkt in Maschinensprache zu übersetzen und gleichzeitig problemlos an andere zu übersetzen Hardware- einstellen. Mit der Einführung der Version 5.5 hat Borland Pascal um die objektorientierte Programmierung erweitert. Später entschied Borland jedoch, dass es ausgefeiltere objektorientierte Fähigkeiten wünschte und begann wieder in Delphi, wobei man den Entwurfsstandard Object Pascal verwendet, der von Apfel vorgeschlagen, umgesetzt. (Object Pascal wurde übrigens nie ein formaler Standard.) In den frühen Versionen von Delphi hieß die implementierte Sprache einfach Object Pascal, aber in späteren Versionen wurde sie in "Delphi-Programmiersprache" umbenannt. Die wichtigsten Änderungen im Zusammenhang mit den älteren objektorientierten Erweiterungen waren ein referenzbasiertes Objektmodell und virtuelle Konstruktoren, Destruktoren und Eigenschaften. Es gibt mehrere Compiler, die diesen Dialekt implementieren. Das Linux-Version von Delphi und mit ihm Pascal, ist erhältlich als Kylix. Es gibt viele verschiedene Pascal-Compiler: Obwohl es sehr populär war (wenn auch in den 1980er und frühen 1990er Jahren mehr), wurden frühe Versionen von Pascal weithin kritisiert, weil sie für das Schreiben ernsthafter Programme ungeeignet seien. Brian Kernighan, Co-Autor der Programmiersprache C, wette schon 1981 starke Einwände in seinem Bericht.[1] Andererseits wurden Ende der 1970er und Anfang der 1980er Jahre einige große Entwicklungsprojekte, wie z Apfel Lisa und Apple Macintosh, geschrieben in Pascal. Denn in den in der Praxis verwendeten Dialekten waren alle Probleme, auf die Kernighan hinweist, bereits gelöst. In den Jahrzehnten seitdem hat sich Pascal weiterentwickelt und die meisten Einwände gelten nicht mehr für aktuelle Implementierungen. Das auf Pascal basierende Delphi ist immer noch das zweite (nach Visual Studio) ist die weltweit meistverkaufte Entwicklungsumgebung. ABAP ·ABC ·ActionScript ·Ada ·algol ·APL ·Assemblersprachen ·AWK ·B ·BASIC ·BCPL ·C ·C ·C♯ ·sauber ·Schermaschine ·COBOL ·COMAL ·Curry ·d ·Eiffel ·Erlang ·F♯ ·her ·fortran ·gehen ·Haskell ·Symbol ·J ·Java ·Kotlin ·lispeln ·Logo ·lua ·m4 ·ML ·Modula-2 ·Oberon ·Objekt Pascal ·Ziel c ·Ocamli ·Unze ·Pascal ·perl ·PHP ·PL/I ·PL/SQL ·Prolog ·Prova ·Python ·Rexx ·Rollenspiel ·Rubin ·Frieden ·SAS ·Reichweite ·planen ·Selbst ·Simula ·Smalltalk ·Schnell ·TCL ·Typoskript ·vala ·Visual Basicvard:ganze Zahl;f:Textdatei;loslegenDatei zuweisen(f,(b));Versuchenumschreiben(f);zumd:=1zu10tunschreiben(f,d,' ',d*d);schließlichDatei schließen(f)EndeEnde.
Unterschiede zu Algol-60
Syntaktische Unterschiede
Einschränkungen
Erweiterungen
Pascal und C
Implementierungen
Öffentlich verfügbare Compiler (neueste Version)
Kritik aus der Vergangenheit
Quellen
![]()
Wikibooks hat mehr zu diesem Thema: Programmierkurs in Pascal. Programmiersprachen