Pascal (Programmiersprache)

Pascal ist eine einflussreiche befehlende und verfahrensrechtliche Programmiersprache, die in 1968-1969 entworfen ist und 1970 von Niklaus Wirth veröffentlicht ist, weil eine kleine und effiziente Sprache vorgehabt hat, gute Programmiermethoden mit der strukturierten Programmierung und Datenstrukturierung zu fördern.

Eine Ableitung bekannt als für die objektorientierte Programmierung entworfener Object Pascal wurde 1985 entwickelt.

Geschichte

Pascal wurde von Niklaus Wirth entwickelt und auf der Algol-Programmiersprache gestützt, die zu Ehren vom französischen Mathematiker und Philosophen Blaise Pascal genannt ist.

Vor seiner Arbeit an Pascal hatte Wirth Euler und ALGOL W entwickelt und hat später fortgesetzt, die Pascal ähnlichen Sprachen Modula-2 und Oberon zu entwickeln.

Am Anfang war Pascal größtenteils, aber nicht exklusiv, hat vorgehabt zu lehren, dass Studenten Programmierung strukturiert haben. Eine Generation von Studenten hat Pascal als eine einleitende Sprache in Studentenkursen verwendet. Varianten des Pascal sind auch oft für alles von Forschungsprojekten bis PC-Spiele und eingebettete Systeme verwendet worden. Neuere Bearbeiter von Pascal bestehen, die weit verwendet werden.

Pascal war die primäre höhere Programmiersprache, die für die Entwicklung im Apple Lisa, und in den frühen Jahren von Mac verwendet ist. Teile des ursprünglichen Macintoshes Betriebssystem wurden in Motorola 68000 Zusammenbau-Sprache von den Quellen von Pascal handübersetzt. Das populäre Schriftsetzen-System, das TeX durch Donald E. Knuth im WEB, dem ursprünglichen des Lesens und Schreibens kundigen Programmiersystem geschrieben wurde, das auf dem DEZ PDP-10 Pascal gestützt ist, während Anwendungen wie der Gesamtkommandant, das Skype und die Makromedia Fesseln, wurde in Delphi (Object Pascal) geschrieben.

Gegenstand Pascal wird noch verwendet, um Windows-Anwendungen zu entwickeln. Eine Quer-Plattform-Version genannt Freies Pascal, mit dem Lazarus IDE, ist bei Benutzern von Linux populär, da es verspricht, schreiben einmal, kompilieren überall, Entwicklung.

Kurze Beschreibung

Die Absicht von Wirth war, eine effiziente Sprache (sowohl bezüglich der Kompilationsgeschwindigkeit als auch bezüglich des erzeugten Codes) gestützt auf der so genannten strukturierten Programmierung, ein Konzept zu schaffen, das kürzlich populär geworden war. Pascal hat seine Wurzeln im Algol 60 Sprache, sondern auch eingeführte Konzepte und Mechanismen, die (oben auf den Skalaren und Reihe des Algols) Programmierern ermöglicht haben, ihren eigenen Komplex zu definieren, haben datatypes (strukturiert), und haben es auch leichter gemacht, dynamische und rekursive Datenstrukturen wie Listen, Bäume und Graphen zu bauen. Wichtige dafür eingeschlossene Eigenschaften waren Aufzeichnungen, Enumerationen, Teilbereiche, haben dynamisch Variablen mit verbundenen Zeigestöcken und Sätze zugeteilt. Um das möglich und bedeutungsvoll zu machen, hat Pascal ein starkes Schreiben auf allen Gegenständen, was bedeutet, dass ein Typ von Daten nicht umgewandelt oder als ein anderer ohne ausführliche Konvertierungen interpretiert werden kann. Ähnliche Mechanismen sind auf vielen Programmiersprachen heute normal. Andere Sprachen, die die Entwicklung des Pascal beeinflusst haben, waren COBOL, Simula 67, und das eigene Algol von Wirth W.

Pascal, wie viele Programmiersprachen heute (aber verschieden von den meisten Sprachen in der C Familie), erlaubt verschachtelte Verfahren-Definitionen zu jedem Niveau der Tiefe, und erlaubt auch die meisten Arten von Definitionen und Behauptungen innerhalb von Verfahren und Funktionen. Das ermöglicht eine sehr einfache und zusammenhängende Syntax, wo ein ganzes Programm syntaktisch fast zu einem einzelnen Verfahren oder Funktion identisch ist (abgesehen vom Schlüsselwort selbst, natürlich.)

Durchführungen

Der erste Bearbeiter von Pascal wurde in Zürich für den CDC 6000 Reihe-Großrechner-Computerfamilie entworfen. Niklaus Wirth berichtet, dass ein erster Versuch, es in Fortran durchzuführen, 1969 wegen der Unangemessenheit von Fortran erfolglos war, um komplizierte Datenstrukturen auszudrücken. Der zweite Versuch wurde auf der Sprache von Pascal selbst formuliert und war durch die Mitte 1970 betrieblich. Viele Bearbeiter von Pascal seitdem haben ähnlich selbstveranstaltet, d. h. der Bearbeiter wird selbst in Pascal geschrieben, und der Bearbeiter ist gewöhnlich zum Wiederkompilieren von sich fähig, wenn neue Eigenschaften zur Sprache hinzugefügt werden, oder wenn der Bearbeiter zu einer neuen Umgebung getragen werden soll. Das GNU Bearbeiter von Pascal ist eine bemerkenswerte Ausnahme, in C geschrieben werden.

Der erste erfolgreiche Hafen des CDC Bearbeiters von Pascal zu einem anderen Großrechner wurde von Welsh und Quinn am QUB 1972 vollendet. Das Ziel war der ICL 1900 Reihen. Dieser Bearbeiter war der Reihe nach der Elternteil des Bearbeiters von Pascal für den ICS Minicomputer von Multum. Der Hafen von Multum wurde entwickelt - in der Absicht Pascal als eine Systemprogrammiersprache - durch Findlay, Cupples, Cavouras und Davis zu verwenden, an der Abteilung der Computerwissenschaft der Wissenschaft in der Glasgower Universität arbeitend. Es wird gedacht, dass Multum Pascal, der im Sommer 1973 vollendet wurde, die erste 16-Bit-Durchführung gewesen sein kann.

Ein völlig neuer Bearbeiter wurde von Walisisch vollendet u. a. an QUB 1977. Es hat einer Quellsprache diagnostische Eigenschaft angeboten (sich Kopierfräs-vereinigend, verfolgend, und des Typs bewusste formatierte Leichenmüllkippen), der von Findlay und Watt an der Glasgower Universität durchgeführt wurde. Diese Durchführung wurde 1980 zum ICL 2900 Reihen von einer Mannschaft getragen, die an der Southampton Universität und Glasgower Universität gestützt ist. Der Standard Musterdurchführung von Pascal hat auch auf diesem Bearbeiter basiert, durch Walisisch und Heu an der Universität von Manchester 1984 angepasst worden zu sein, um streng für die Anpassung zum BSI 6192/ISO 7185 Standard zu überprüfen und Code für eine tragbare abstrakte Maschine zu erzeugen.

Der erste in Nordamerika geschriebene Bearbeiter von Pascal wurde an der Universität Illinois unter Donald B. Gillies für den PDP-11 gebaut und hat heimischen Maschinencode erzeugt.

Um die Sprache schnell fortzupflanzen, wurde ein Bearbeiter "nach Backbord haltender Bastelsatz" in Zürich geschaffen, das einen Bearbeiter eingeschlossen hat, der Code für eine "virtuelle" Stapel-Maschine erzeugt hat (d. h. codieren Sie, der sich zur vernünftig effizienten Interpretation leiht), zusammen mit einem Dolmetscher für diesen Code - das System von Pascal-P. Die P-Systembearbeiter waren genannter Pascal-P1, Pascal-P2, Pascal-P3 und Pascal-P4. Pascal-P1 war die erste Version, und Pascal-P4 war das letzte, um aus Zürich zu kommen.

Der Bearbeiter/Dolmetscher von Pascal-P4 kann noch geführt und auf mit ursprünglichem Pascal vereinbaren Systemen kompiliert werden. Jedoch akzeptiert es nur eine Teilmenge der Sprache von Pascal.

Pascal-P5, geschaffen außerhalb der Züricher Gruppe, akzeptiert die volle Sprache von Pascal und schließt ISO 7185 Vereinbarkeit ein.

UCSD Pascal hat sich von Pascal-P2 verzweigt, wo Kenneth Bowles es verwertet hat, um das interpretierende UCSD P-System zu schaffen

Ein Bearbeiter hat auf dem Bearbeiter von Pascal-P4 gestützt, der heimische Dualzahlen geschaffen hat, wurde für den Großrechner-Computer von IBM System/370 von der australischen Atomenergie-Kommission veröffentlicht; es wurde den "AAEC Bearbeiter von Pascal" nach der Abkürzung des Namens der Kommission genannt.

Am Anfang der 1980er Jahre wurde Watcom Pascal auch für IBM System 370 entwickelt.

IP Pascal war eine Durchführung der Programmiersprache von Pascal mit Micropolis DOS, aber wurde schnell zum BEDIENUNGSFELD/M bewegt, das auf dem Z80 läuft. Es wurde zu den 80386 Maschinentypen 1994 bewegt, und besteht heute als Windows/XP und Durchführungen von Linux. 2008 wurde das System bis zu einem neuen Niveau gebracht, und die resultierende Sprache hat "Pascaline" (nach der Rechenmaschine von Pascal) genannt. Es schließt Gegenstände, namespace Steuerungen, dynamische Reihe zusammen mit vielen anderen Erweiterungen ein, und zeigt allgemein dieselbe Funktionalität und Typ-Schutz wie C#. Es ist das einzige solche Durchführung, die auch mit der ursprünglichen Durchführung von Pascal vereinbar ist (der als ISO 7185 standardisiert wird).

Am Anfang der 1980er Jahre UCSD wurde Pascal zu den Computern des Apple II und Apple III getragen, um eine strukturierte Alternative den GRUNDLEGENDEN Dolmetschern zur Verfügung zu stellen, die mit den Maschinen gekommen sind.

Apple Computer hat seine eigene Lisa Pascal für die Werkstatt von Lisa 1982 geschaffen und hat diesen Bearbeiter zum Apple Macintosh und MPW 1985 getragen. 1985 hat Larry Tesler, in der Beratung mit Niklaus Wirth, Object Pascal definiert, und diese Erweiterungen wurden sowohl in den Bearbeitern von Lisa Pascal als auch in Mac Pascal vereinigt.

In den 1980er Jahren hat Anders Hejlsberg dem Blauen Etikett Bearbeiter von Pascal für den Nascom-2 geschrieben. Eine Wiederdurchführung dieses Bearbeiters für IBM PC wurde unter den Namen Compas Pascal und Polypascal auf den Markt gebracht, bevor es von Borland erworben wurde. Umbenannt Turbo Pascal ist es ungeheuer populär, Dank teilweise zu einer aggressiven Preiskalkulationsstrategie und teilweise dazu geworden, einen des ersten vollen Schirms Einheitliche Entwicklungsumgebungen, und schnelle Umlaufzeit zu haben (gerade Sekunden, um zu kompilieren, sich zu verbinden, und zu laufen.) Zusätzlich wurde es geschrieben und hoch völlig auf der Zusammenbau-Sprache optimiert, es kleiner und schneller machend, als viel von der Konkurrenz. 1986 hat Anders Turbo Pascal zum Macintosh getragen und hat die Erweiterungen von Object Pascal des Apfels in Turbo Pascal vereinigt. Diese Erweiterungen wurden dann zurück in die PC-Version von Turbo Pascal für die Version 5.5 hinzugefügt. Zur gleichen Zeit hat Microsoft auch den Bearbeiter von Object Pascal durchgeführt. Turbo Pascal 5.5 hatte einen großen Einfluss auf die Gemeinschaft von Pascal, die begonnen hat, sich hauptsächlich auf IBM PC gegen Ende der 1980er Jahre zu konzentrieren. Viele PC-Hobbyisten auf der Suche nach einem strukturierten Ersatz für den GRUNDLEGENDEN haben dieses Produkt verwendet. Es hat auch begonnen, von Berufsentwicklern angenommen zu werden. Um dieselbe Zeit wurden mehrere Konzepte von C importiert, um Programmierer von Pascal die C-basierte API von Windows von Microsoft direkt verwenden zu lassen. Diese Erweiterungen haben ungültig begrenzte Schnuren, Zeigestock-Arithmetik, Funktionszeigestöcke eingeschlossen, eine Adresse - des Maschinenbedieners und unsicher legt fest.

Jedoch hat Borland später entschieden, dass er mehr wohl durchdachte objektorientierte Eigenschaften gewollt hat, und in Delphi mit dem Draftstandard von Object Pascal angefangen hat, der durch den Apfel als eine Basis vorgeschlagen ist. (Dieser Apfelentwurf ist noch immer nicht ein formeller Standard.) Die ersten Versionen der Sprache von Delphi wurden Object Pascal entsprechend genannt. Die Haupthinzufügungen im Vergleich zu den älteren OOP Erweiterungen waren ein bezugsbasiertes Gegenstand-Modell, virtuelle Konstrukteure und destructors und Eigenschaften. Mehrere andere Bearbeiter führen auch diesen Dialekt durch.

Turbo Pascal und andere Ableitungen mit Einheiten oder Modul-Konzepten ist Modulsprachen. Jedoch stellt es kein verschachteltes Modul-Konzept oder qualifizierten Import und Export von spezifischen Symbolen zur Verfügung.

Fantastisches Pascal war eine Variante, die nichtnumerische Etiketten, eine Rückbehauptung und Ausdrücke als Namen von Typen hinzugefügt hat.

Die Universitäten Zürichs, Karlsruhes und Wuppertals haben E'Xtension für die Wissenschaftliche Computerwissenschaft entwickelt (Pascal XSC), der eine freie Lösung zur Verfügung stellt, um numerische Berechnung mit der kontrollierten Präzision zu programmieren.

Sprachkonstruktionen

Pascal, in seiner ursprünglichen Form, ist eine rein verfahrensrechtliche Sprache und schließt die traditionelle Reihe von EINEM ALGOL ähnlichen Kontrollstrukturen mit vorbestellten Wörtern solcher als ob, dann, sonst, während weil und so weiter ein. Jedoch hat Pascal auch viele Daten, die Möglichkeiten und andere Abstraktionen strukturieren, die ins ursprüngliche Algol 60, wie Typ-Definitionen, Aufzeichnungen, Zeigestöcke, Enumerationen und Sätze nicht eingeschlossen wurden. Solche Konstruktionen wurden teilweise geerbt oder von Simula 67, Algol 68, das eigene Algol von Niklaus Wirth W und Vorschläge von C. A. R. Hoare begeistert.

Hallo Welt

Programme von Pascal fangen mit dem Programm-Schlüsselwort mit einer Liste von Außendateideskriptoren als Rahmen an; dann folgt dem Hauptblock, der durch das Beginnen und die Endschlüsselwörter eingeklammert ist. Strichpunkte getrennte Behauptungen und der Schlusspunkt (d. h., eine Periode) beenden das ganze Programm (oder Einheit). Brief-Fall wird in der Quelle von Pascal ignoriert.

Hier ist ein Beispiel des Quellcodes im Gebrauch für einen sehr einfachen "Hallo" Weltprogramm:

Programm HelloWorld (Produktion);

beginnen Sie

Writeln ('Hallo Welt!')

Ende.

</Quelle>

Datentypen

Ein Typ in Pascal, und auf mehreren anderen populären Programmiersprachen, definiert eine Variable auf solche Art und Weise, dass es einen Wertbereich definiert, der die Variable zur Speicherung fähig ist, und es auch eine Reihe von Operationen definiert, die erlaubt sind, auf Variablen dieses Typs durchgeführt zu werden. Die vorherbestimmten Typen sind:

Der Wertbereich hat berücksichtigt jeder (außer boolean) ist definierte Durchführung. Funktionen werden für einige Datenkonvertierungen zur Verfügung gestellt. Für die Konvertierung zu sind die folgenden Funktionen verfügbar: der herum zur ganzen Zahl mit dem Runden des Bankiers; herum zur Null.

Der Programmierer hat die Freiheit, andere allgemein verwendete Datentypen (z.B Byte, Schnur, usw.) in Bezug auf die vorherbestimmten Typen mit der Typ-Behauptungsmöglichkeit des Pascal zu definieren. z.B.

Typ

Byte = 0.. 255;

signedbyte =-128.. 127;

spannen Sie = gepackte Reihe [1.. 255] der Rotforelle;

</Quelle>

Teilbereich-Typen

Teilbereiche jedes Ordnungsdatentyps (jeder einfache Typ außer dem echten) können gemacht werden:

var

x:1.. 10;

y:.. 'z';

z: Birne.. orange;

</Quelle>

Satz-Typen

Im Vergleich mit anderen Programmiersprachen von seiner Zeit unterstützt Pascal einen Satz-Typ:

var

set1: Satz 1.. 10;

set2: Satz.. 'z';

set3: Satz der Birne.. orange;

</Quelle>

Ein Satz ist ein grundsätzliches Konzept für die moderne Mathematik, und sie können in vielen Algorithmen verwendet werden. Solch eine Eigenschaft ist nützlich und kann schneller sein als eine gleichwertige Konstruktion auf einer Sprache, die Sätze nicht unterstützt. Zum Beispiel, für viele Bearbeiter von Pascal:

wenn ich in [5.. 10] dann

...

</Quelle>

führt schneller durch als:

wenn (i> 4) und (ich

Sätze von aneinander nichtgrenzenden Werten können besonders nützlich sein, sowohl in Bezug auf die Leistung als auch in Bezug auf Lesbarkeit:

wenn ich in [0.. 3, 7, 9, 12.. 15] dann

...</Quelle>

Für diese Beispiele, die Sätze über kleine Gebiete einschließen, wird die verbesserte Leistung gewöhnlich durch den Bearbeiter erreicht, der Satz-Variablen als bitmasks vertritt. Die Satz-Maschinenbediener können dann effizient als bitwise Maschinencodeoperationen durchgeführt werden.

Typ-Behauptungen

Typen können aus anderen Typ-Verwenden-Typ-Behauptungen definiert werden:

Typ

x = Ganze Zahl;

y = x;

...</Quelle>

Weiter können komplizierte Typen von einfachen Typen gebaut werden:

Typ

a = Reihe [1.. 10] der ganzen Zahl;

b = Aufzeichnung

x: Ganze Zahl;

y: Rotforelle

Ende;

c = Datei von a;

</Quelle>

Typ File

Wie gezeigt, im Beispiel oben sind Dateien von Pascal Folgen von Bestandteilen. Jede Datei hat eine Puffervariable, die durch f^ angezeigt wird. Die Verfahren kommen (um zu lesen), und stellen (um zu schreiben) bewegen die Puffervariable zum folgenden Element. Gelesen wird solch eingeführt, dass gelesen (f, x) dasselbe als x ist: = f^; kommen Sie (f);. schreiben Sie wird solch eingeführt, die schreiben (f, x) ist dasselbe als f^: = x; gestellt (f); der Typ-Text wird als Datei der Rotforelle vorherbestimmt. Während die Puffervariable verwendet werden konnte, für den folgenden zu verwendenden Charakter zu untersuchen (Kontrolle für eine Ziffer vor dem Lesen einer ganzen Zahl), führt das zu ernsten Problemen mit interaktiven Programmen in frühen Durchführungen, aber wurde später mit der "faulen Eingabe/Ausgabe" Konzept gelöst.

In Jensen & Wirth Pascal werden Schnuren als gepackte Reihe von Rotforellen vertreten; sie haben deshalb Länge befestigt und werden gewöhnlich raumausgepolstert. Einige Dialekte haben einen kundenspezifischen Schnur-Typ.

Zeigestock-Typen

Pascal unterstützt den Gebrauch von Zeigestöcken:

Typ

Nodeptr = ^Node;

Knoten = registriert

a: Ganze Zahl;

b: Rotforelle;

c: Nodeptr

Ende;var

ptoNode: Nodeptr;

Pint: ^Integer;

</Quelle>

Hier ist die Variable ptoNode ein Zeigestock zum Datentyp Node, einer Aufzeichnung. Zeigestöcke können verwendet werden, bevor sie erklärt werden. Das ist eine Vorwärtsbehauptung, eine Ausnahme zur Regel, dass Dinge erklärt werden müssen, bevor sie verwendet werden.

Um eine neue Aufzeichnung zu schaffen und den Wert 10 und Charakter zu den Feldern a und b in der Aufzeichnung zuzuteilen, und den Zeigestock c zur Null zu initialisieren, würden die Befehle sein:

neu (ptoNode);

...

ptoNode^.a: = 10;

ptoNode^.b: =;

ptoNode^.c: = Null;

...</Quelle>

Das konnte auch mit mit der Behauptung, wie folgt getan werden

neu (ptoNode);...

mit ptoNode^ tun

beginnen Sie

a: = 10;

b: =;

c: = Null

Ende;

...</Quelle>

Innerhalb des Spielraums mit der Behauptung beziehen sich a und b auf die Teilfelder des Rekordzeigestocks ptoNode und nicht zum Rekordknoten oder dem Zeigestock-Typ Nodeptr.

Verbundene Listen, Stapel und Warteschlangen können durch das Umfassen eines Zeigestock-Typ-Feldes (c) in der Aufzeichnung geschaffen werden (sieh auch Null).

Verschieden von vielen Sprachen, die Zeigestöcke zeigen, erlaubt Pascal nur Zeigestöcken, in dynamisch geschaffenen Variablen Verweise anzubringen, die anonym sind, und ihnen nicht erlaubt, in lokalen oder statischen Standardvariablen Verweise anzubringen. Zeigestöcke müssen auch einen verbundenen Typ haben, und ein Zeigestock zu einem Typ ist mit einem Zeigestock zu einem anderen Typ nicht vereinbar (z.B ein Zeigestock zu einer Rotforelle ist mit einem Zeigestock zu einer ganzen Zahl nicht vereinbar). Das hilft, die Typ-Sicherheitsprobleme zu beseitigen, die mit anderen Zeigestock-Durchführungen, besonders diejenigen innewohnend sind, die für PL/I oder C verwendet sind. Es entfernt auch einige durch baumelnde Zeigestöcke verursachte Gefahren, aber die Fähigkeit dynamisch zu lassen geht des Verweise angebrachten Raums durch das Verwenden der anordnen Funktion (der dieselbe Wirkung wie die freie Bibliotheksfunktion hat, die in C gefunden ist), bedeutet, dass die Gefahr von baumelnden Zeigestöcken nicht völlig beseitigt worden ist.

Kontrollstrukturen

Pascal ist eine strukturierte Programmiersprache, bedeutend, dass der Fluss der Kontrolle in Standardbehauptungen ideal ohne 'Goto'-Befehle strukturiert wird.

während a

wenn a> b dann

writeln ('Bedingung hat sich' getroffen)

sonst

writeln ('Bedingung nicht entsprochen');

weil ich: = 1 bis 10 tun

writeln ('Wiederholung:', i:1);

wiederholen Sie

a: = + 1

bis zu = 10;

Fall i von

0: schreiben Sie ('Null');

1: schreiben Sie ('derjenige');

2: schreiben Sie ('zwei')

Ende;</Quelle>

Verfahren und Funktionen

Struktur-Programme von Pascal in Verfahren und Funktionen.

Programm-Mine (Produktion);

var i: ganze Zahl;

Verfahren-Druck (var j: ganze Zahl);

</Quelle>

Verfahren und Funktionen können zu jeder Tiefe nisten, und die 'Programm'-Konstruktion ist der logische äußerste Block.

Jedes Verfahren oder Funktion können seine eigenen Behauptungen von Goto-Etiketten, Konstanten, Typen, Variablen, und anderen Verfahren und Funktionen haben, die alle in dieser Ordnung sein müssen.

Diese Einrichtungsvoraussetzung war ursprünglich beabsichtigt, um effiziente Kompilation des einzelnen Passes zu erlauben. Jedoch in einigen Dialekten (wie Embarcadero Delphi) ist die strenge Einrichtungsvoraussetzung von Behauptungsabteilungen entspannt worden.

Strichpunkte als Behauptungsseparatoren

Pascal hat viele Sprachsyntax-Eigenschaften aus der Algol-Sprache einschließlich des Gebrauches eines Strichpunkts als ein Behauptungsseparator angenommen. Das ist im Gegensatz zu anderen Sprachen, wie PL/I, C usw., die den Strichpunkt als eine Behauptung terminator verwenden. Wie illustriert, in den obengenannten Beispielen ist kein Strichpunkt vor dem Schlüsselwort einer Rekordtyp-Behauptung, eines Blocks oder einer Fall-Behauptung erforderlich; vor dem Schlüsselwort einer mehrmaligen Behauptung; und vor dem Schlüsselwort wenn Behauptung.

Die Anwesenheit eines Extrastrichpunkts wurde in frühen Versionen des Pascal nicht erlaubt. Jedoch berücksichtigt die Hinzufügung EINEM ALGOL ähnlicher leerer Behauptungen 1973 Revidierter Bericht und spätere Änderungen in die Sprache in ISO 7185:1983 jetzt fakultative Strichpunkte in den meisten dieser Fälle. Die Ausnahme ist, dass ein Strichpunkt sofort vor dem Schlüsselwort in wenn Behauptung noch immer nicht erlaubt wird.

Mittel

Bearbeiter und Dolmetscher

Mehrere Bearbeiter von Pascal und Dolmetscher sind für den allgemeinen Gebrauch verfügbar:

  • Delphi ist Embarcadero (früher Borland/CodeGear) Flaggschiff-Produkt der schnellen Anwendungsentwicklung (RAD). Es verwendet die Sprache von Object Pascal (hat 'Delphi' durch Borland genannt), ist von Pascal hinuntergestiegen, um Anwendungen für die Fensterplattform zu schaffen. Die.NET-Unterstützung, die von D8 bis D2005, D2006 und D2007 bestanden hat, ist begrenzt, und durch eine neue Sprache ersetzt worden (Prisma, das wiedergebrandmarkter Oxygene ist, sieh unten), der völlig umgekehrt nicht vereinbar ist. In den letzten Jahren wurden unicode und generics (D2009, D2010, Delphi XE) hinzugefügt, und die letzte Ausgabe (XE2) hat die bereits vorhandenen namespace Erhöhungen obligatorisch gemacht. (der Wartung des Codes macht, der mit anderen Versionen hart arbeiten muss)
  • Freier Pascal ist ein Mehrplattform-Bearbeiter, der in Object Pascal geschrieben ist (und selbstveranstaltet). Es wird Versorgung eines günstigen und starken Bearbeiters, sowohl fähig gezielt, Vermächtnis-Anwendungen zu kompilieren als auch die Mittel zu sein, neue zu entwickeln. Es wird unter dem GNU GPL verteilt, während Pakete und Laufzeitbibliothek unter einem modifizierten GNU LGPL kommen. Abgesondert von Vereinbarkeitsweisen für Turbo Pascal, Delphi und Mac Pascal, hat es auch seine eigenen verfahrensrechtlichen und objektorientierten Syntax-Weisen mit der Unterstützung für verlängerte Eigenschaften wie Maschinenbediener, der überlädt. Es unterstützt viele Plattformen und Betriebssysteme.
  • Lazarus ist eine Delphi ähnliche Sehquer-Plattform IDE für die schnelle Anwendungsentwicklung (RAD). Gestützt auf Freiem Pascal ist Lazarus für zahlreiche Plattformen einschließlich Linux, FreeBSD, Mac OS X und Windows von Microsoft verfügbar.
  • Dev-Pascal ist ein Pascal IDE, der in Borland Delphi entworfen wurde, und der Freies Pascal und GNU Pascal als backends unterstützt.
  • Turbo51 ist ein freier Bearbeiter von Pascal für die 8051 Familie von Mikrokontrolleuren, mit Turbo Pascal 7 Syntax.
  • Oxygene (früher bekannt als Chrom) ist ein Bearbeiter von Object Pascal für den.NET und die Modoplattformen. Es wurde geschaffen und wird durch die Software von RemObjects, und kürzlich von Embarcadero als der backend Bearbeiter des Prismas verkauft.
  • Kylix war ein Nachkomme von Delphi, mit der Unterstützung für Linux Betriebssystem und eine verbesserte Gegenstand-Bibliothek. Es wird nicht mehr unterstützt. Bearbeiter und IDE sind jetzt für den nichtkommerziellen Gebrauch verfügbar.
  • GNU Pascal Compiler (GPC) ist der Bearbeiter von Pascal von GNU Compiler Collection (GCC). Der Bearbeiter selbst wird in C, die Laufzeitbibliothek größtenteils in Pascal geschrieben. Verteilt laut der GNU-Lizenz der Breiten Öffentlichkeit läuft es auf vielen Plattformen und Betriebssystemen. Es unterstützt die ANSI/ISO Standardsprachen und hat teilweise Dialekt-Unterstützung von Turbo Pascal. Eine der schmerzhafteren Weglassungen ist die Abwesenheit 100 % Schnur-Typ von Turbo Pascal-Compatible. Die Unterstützung für Borland Delphi und andere Sprachschwankungen wird ganz beschränkt, außer vielleicht für Mac Pascal, die Unterstützung, für die schnell wächst.
  • DWScript auch bekannt als DelphiWebScript, ist ein Dolmetscher, der von Matthias Ackermann und Hannes Hernler 2000 geschaffen ist. Jetzige Version führt einen Dialekt von Object Pascal, der mit Delphi größtenteils vereinbar ist, sondern auch unterstützt im Prisma eingeführte Sprachkonstruktionselemente.
  • Dr Pascal ist ein Dolmetscher, der Standard Pascal führt. Bemerkenswert sind die "sichtbare Ausführung" Weise, die ein laufendes Programm und seine Variablen und den umfassenden Laufzeitfehler zeigt überprüfend. Lauf-Programme, aber strahlen keine getrennte rechtskräftige Dualzahl aus. Läufe auf DOS, Windows im Fenster DOS und altem Macintosh.
  • Verlängerter Pascal Compiler von Dr Pascal, der auf DOS, Windows 3.1, 95, 98, NT geprüft ist.
  • Virtueller Pascal wurde von Vitaly Miryanov 1995 als ein heimischer OS/2 mit der Syntax von Borland Pascal vereinbarer Bearbeiter geschaffen. Dann war es durch fPrint gewerblich entwickelt worden, Win32 Unterstützung hinzufügend, und 2000 ist es freeware geworden. Heute kann es für Win32, OS/2 und Linux kompilieren, und ist mit Borland Pascal und Delphi größtenteils vereinbar. Entwicklung wurde am 4. April 2005 annulliert.
  • P4 Bearbeiter, die Basis für viele nachfolgendes Pascal, das in Bearbeitern von Pascal einschließlich des UCSD P-Systems durchgeführt ist. Es führt eine Teilmenge des vollen Pascal durch.
  • P5 Bearbeiter, ist ein ISO 7185 (volles Pascal) Anpassung von P4.
  • Turbo Pascal war der dominierende Bearbeiter von Pascal für PCs während der 80er Jahre und Anfang der 90er Jahre, populär sowohl wegen seiner starken Erweiterungen als auch äußerst kurze Kompilationszeiten. Turbo Pascal wurde kompakt geschrieben und konnte kompilieren, führen, und bei allen auswendig die Fehler beseitigen, ohne auf Platte zuzugreifen. Langsame Diskette-Laufwerke waren für Programmierer zurzeit üblich, weiter den Geschwindigkeitsvorteil von Turbo Pascal vergrößernd. Zurzeit ältere Versionen von Turbo Pascal sind (bis zu 5.5) für den kostenlosen Download von der Seite von Borland verfügbar.
  • IP Pascal Implements die Sprache "Pascaline" (genannt nach Pascals Rechenmaschine), der ein hoch verlängerter Pascal ist, der mit ursprünglichem Pascal gemäß ISO 7185 vereinbar ist. Es zeigt Module mit der Namespace-Kontrolle, einschließlich paralleler stark beanspruchender Module mit Semaphoren, Gegenständen, überreitet die dynamische Reihe irgendwelcher Dimensionen, die an der Durchlaufzeit, den Überlastungen zugeteilt werden, und viele andere Erweiterungen. IP Pascal hat eine eingebaute Beweglichkeitsbibliothek, die geschneidert in die Sprache von Pascal kundenspezifisch ist. Zum Beispiel, eine Standardtext-Produktionsanwendung von den 1970er Jahren ursprünglicher Pascal kann wiederkompiliert werden, um in einem Fenster zu arbeiten und sogar grafische Konstruktionen hinzufügen zu lassen.
  • Pascal-XT wurde von Siemens für ihren Großrechner Betriebssysteme BS2000 und SINIX geschaffen.
  • PocketStudio ist ein Teilmenge-Bearbeiter von Pascal und RAD Werkzeug für die Palme OS und MC68xxx Verarbeiter mit einigen eigenen Erweiterungen, um dem Verbinden mit der Palme OS API zu helfen. Es ähnelt Delphi und Lazarus mit einem Sehform-Entwerfer, ein Gegenstand-Inspektor und eine Quelle codieren Redakteur.
  • MIDletPascal - Ein Bearbeiter von Pascal und IDE, der das kleine und schnelle Java bytecode spezifisch erzeugt, haben vorgehabt, Software für Mobiltelefone zu schaffen
  • Vector Pascal Vector Pascal ist eine Sprache für SIMD Befehlssätze wie der MMX und der AMD 3. Jetzt, ganzen Intel und AMD Verarbeiter und PlayStation von Sony 2 Gefühl-Motor unterstützend.
  • Morfik Pascal erlaubt die Entwicklung von Webanwendungen, die völlig in Object Pascal (sowohl Server als auch Browser-Seite) geschrieben sind.
  • WDSibyl - Sehentwicklungsbearbeiter von Umgebung und Pascal für Win32 und OS/2
  • SEITEN-Bearbeiter, ein Bearbeiter für die Palme OS, der direkt auf dem Taschencomputer läuft
  • CDC 6000 Bearbeiter von Pascal Der Quellcode für das erste (CDC 6000) Bearbeiter von Pascal.
  • Pascal-S - "Pascal-S: Eine Teilmenge und Seine Durchführung", N. Wirth in Pascal - Die Sprache und Seine Durchführung, durch D.W. Barron, Wiley 1979.
  • AmigaPascal - AmigaPascal, ein freier Bearbeiter des Pascal für den Amiga-Computer.

Eine sehr umfassende Liste kann auf Pascaland gefunden werden. Die Seite ist in Französisch, aber es ist grundsätzlich eine Liste mit URL-ADRESSEN zu Bearbeitern; es gibt wenig Barriere für non-Francophones. Die Seite, Pascal Zentral, Mac zentrisches Info von Pascal und Befürwortungsseite mit einer reichen Sammlung von Artikel-Archiven, plus Verbindungen zu vielen Bearbeitern und Tutorenkursen, kann auch von Interesse sein.

Standards

1983 wurde die Sprache, im internationalen normalen IEC/ISO 7185, und mehreres lokales Land spezifische Standards, einschließlich des Amerikaners ANSI/IEEE770X3.97-1983 und ISO 7185:1983 standardisiert. Diese zwei Standards haben sich nur darin unterschieden der ISO Standard hat eine Erweiterung "des Niveaus 1" für die Conformant-Reihe eingeschlossen, wo ANSI diese Erweiterung auf das Original (Version von Wirth) Sprache nicht berücksichtigt hat. 1989 wurde ISO 7185 (ISO 7185:1990) revidiert, um verschiedene Fehler und in der Originalurkunde gefundene Zweideutigkeiten zu korrigieren.

1990 wurde ein verlängerter Standard von Pascal als ISO/IEC 10206 geschaffen. 1993 wurde der ANSI Standard von der ANSI Organisation mit einem "Zeigestock" zum ISO 7185:1990 Standard ersetzt, effektiv seinen Status als ein verschiedener Standard beendend.

Der ISO 7185 wurde festgesetzt, um eine Erläuterung der 1974-Sprache von Wirth, wie ausführlich berichtet, durch das Benutzerhandbuch und den Bericht [Jensen und Wirth] zu sein, aber war auch bemerkenswert, um "Conformant Reihe-Rahmen" als ein Niveau 1 zum Standard, Niveau 0 hinzuzufügen, das Pascal ohne Conformant-Reihe ist. Diese Hinzufügung wurde auf Bitte von C. A. R. Hoare, und mit der Billigung von Niklaus Wirth gemacht. Die sich niederschlagende Ursache bestand darin, dass Hoare eine Version von Pascal (NÖRGLER) Numerische Algorithmus-Bibliothek hat schaffen wollen, die in FORTRAN ursprünglich geschrieben worden war und gefunden hat, dass es nicht möglich war, so ohne eine Erweiterung zu tun, die Reihe-Rahmen der unterschiedlichen Größe erlauben würde. Ähnliche Rücksichten haben die Einschließung in ISO 7185 der Möglichkeit motiviert, die Parameter-Typen von verfahrensrechtlichen und funktionellen Rahmen anzugeben.

Bemerken Sie, dass Niklaus Wirth selbst die 1974-Sprache als "der Standard" gekennzeichnet hat, um zum Beispiel es von der Maschine spezifische Eigenschaften des CDC 6000 Bearbeiter zu unterscheiden. Diese Sprache wurde "im Bericht von Pascal", der zweite Teil des "Benutzerhandbuches von Pascal und Berichts" dokumentiert.

Auf den großen Maschinen (Großrechner und Minicomputer) ist Pascal darauf entstanden, den Standards wurde allgemein gefolgt. Auf dem PC IBM waren sie nicht. Auf PCS IBM die Standards von Borland haben Turbo Pascal und Delphi die größte Zahl von Benutzern. So ist es normalerweise wichtig zu verstehen, ob eine besondere Durchführung der ursprünglichen Sprache von Pascal oder einem Dialekt von Borland davon entspricht.

Die Versionen des PCS IBM der Sprache haben begonnen, sich mit dem Advent des UCSD Pascal, einer interpretierten Durchführung zu unterscheiden, die mehrere Erweiterungen auf die Sprache, zusammen mit mehreren Weglassungen und Änderungen gezeigt hat. Viele UCSD Spracheigenschaften überleben heute, einschließlich im Dialekt von Borland.

Abteilungen

Die Züricher Version von Niklaus Wirth des Pascal wurde außerhalb ETH in zwei grundlegenden Formen, der CDC 6000 Bearbeiter-Quelle und ein nach Backbord haltender Bastelsatz genannt das System von Pascal-P ausgegeben. Der Bearbeiter von Pascal-P hat mehrere Eigenschaften der vollen Sprache ausgelassen. Zum Beispiel verfügen Verfahren und Funktionen, die als Rahmen, ununterschiedene verschiedene Aufzeichnungen, Verpackung verwendet sind, zwischenverfahrensrechtlicher gotos und andere Eigenschaften des vollen Bearbeiters wurden weggelassen.

UCSD Pascal, unter Professor Kenneth Bowles, hat auf dem Bastelsatz von Pascal-P2 basiert, und hat folglich mehrere der Sprachbeschränkungen von Pascal-P geteilt. UCSD wurde Pascal später als Apple Pascal angenommen, und hat durch mehrere Versionen dort weitergegangen. Obwohl UCSD Pascal wirklich die Teilmenge Pascal im Bastelsatz von Pascal-P durch das Hinzufügen zurück von Standardkonstruktionen von Pascal ausgebreitet hat, war es noch immer nicht eine ganze Standardinstallation des Pascal.

Turbo Pascal von Borland, der von Anders Hejlsberg geschrieben ist, wurde auf der Zusammenbau-Sprache geschrieben, die von UCSD oder den Züricher Bearbeitern unabhängig ist. Jedoch hat es viel von derselben Teilmenge und Erweiterungen wie der UCSD Bearbeiter angenommen. Das ist wahrscheinlich, weil das UCSD System das allgemeinste System von Pascal war, das passend ist, um Anwendungen auf den quellenbeschränkten Mikroprozessor-Systemen zu entwickeln, verfügbar damals.

Liste von zusammenhängenden Standards

  • ISO 8651-2:1988 Informationsverarbeitungssysteme — Computergrafik — Sprache von Graphical Kernel System (GKS) bindings — Teil 2: Pascal

Empfang

Pascal hat ein großes Angebot an Antworten in der Rechengemeinschaft, sowohl kritisch als auch schmeichelhaft erzeugt.

Kritik

Während sehr populär (obwohl mehr in den 1980er Jahren und Anfang der 1990er Jahre als jetzt) Durchführungen des Pascal, das nah der anfänglichen Definition von Wirth der Sprache gefolgt ist, dafür weit kritisiert wurden, unpassend für den Gebrauch außerhalb des Unterrichtens zu sein. Brian Kernighan, der die c Sprache verbreitet hat, hat seine bemerkenswertesten Kritiken des Pascal schon in 1981 in seiner Zeitung entworfen, Warum Pascal Nicht Meine Lieblingsprogrammiersprache Ist. Das ernsteste Problem, das in diesem Artikel beschrieben ist, scheint, dass Reihe-Größen und Schnur-Längen ein Teil des Typs waren, so war es nicht möglich, eine Funktion zu schreiben, die Reihe der variablen Länge akzeptieren würde oder sogar als Rahmen (wie eine Sortieren-Bibliothek, zum Beispiel) spannt. Der Autor hat auch die unvorhersehbare Ordnung der Einschätzung von boolean Ausdrücken, schlechter Bibliotheksunterstützung kritisiert, fehlen Sie statischer Variablen und mehrerer kleinerer Probleme. Außerdem hat er festgestellt, dass die Sprache keine einfachen Konstruktionen zur Verfügung gestellt hat um (bewusst und gewaltsam "zu flüchten", zu ignorieren) Beschränkungen und Beschränkungen, wo das wirklich notwendig ist. (Jedoch gibt es eine Eigenschaft von "Rekordvarianten", die wirklich solch eine "Flucht," erlaubt, obwohl es entschieden beschwerlich ist.) Haben allgemeinere Beschwerden von anderen Quellen bemerkt, dass das Spielraum von Behauptungen in der ursprünglichen Sprachdefinition nicht klar definiert wurde, die manchmal ernste Folgen hatte, als sie Vorwärtsbehauptungen verwendet hat, um Zeigestock-Typen zu definieren, oder wenn Rekordbehauptungen zu gegenseitigem recursion führen, oder wenn ein Bezeichner kann oder in einer Enumerationsliste nicht verwendet worden sein darf. Eine andere Schwierigkeit bestand darin, dass, wie Algol 60, die Sprache Verfahren nicht erlaubt hat oder Funktionen als Rahmen gegangen sind, um vorherzubestimmen, was ihre Rahmen sein sollen.

Andererseits hat vieler Hauptentwicklungsaufwand in den 1980er Jahren, solcher bezüglich des Apple Lisa und Macintoshes, schwer von Pascal abgehangen (zum Punkt, wo sich die C-Schnittstelle für den Macintosh Betriebssystem-API in Datentypen von Pascal befassen musste).

Reaktionen

Pascal hat fortgesetzt sich zu entwickeln, und die meisten Punkte von Kernighan gelten für Versionen der Sprache nicht, die erhöht wurden, um für die kommerzielle Produktentwicklung, wie der Turbo von Borland Pascal passend zu sein. Leider, wie Kernighan in seinem Artikel vorausgesagt hat, waren die meisten Erweiterungen, um diese Probleme zu befestigen, vom Bearbeiter bis Bearbeiter unvereinbar. Seit dem Anfang der 1990er Jahre, jedoch, scheinen die Varianten, sich in zwei Kategorien, ISO und Borland ähnlich, ein besseres schließliches Ergebnis verdichtet zu haben, als Kernighan vorausgesehen hat.

Obwohl Kernighan den Mangel des Pascal an Typ-Flüchten heruntergemacht hat ("es gibt keine Flucht" von, "Warum Pascal nicht meine Lieblingsprogrammiersprache" ist), sind der nicht kontrollierte Gebrauch von Zeigestöcken und die Typ-Flüchte hoch kritisierte Eigenschaften in ihrem eigenen Recht und die Sprachen Java, C# geworden, und andere zeigen einen scharfen Wendeplatz zum Gesichtspunkt von Pascal. Was diese Sprachen Anruf "geführte Zeigestöcke" tatsächlich von Wirth mit der Entwicklung des Pascal vorausgesehen wurden.

Gestützt auf seiner Erfahrung mit Pascal (und früher mit dem Algol) hat Niklaus Wirth noch mehrere Programmiersprachen entwickelt: Modula, Modula-2, Oberon und Oberon-2. Diese Sprachen richten einige Kritiken des Pascal, sind für verschiedene Benutzerbevölkerungen und so weiter beabsichtigt, aber niemand hat den weit verbreiteten Einfluss auf Informatik und Computerbenutzer gehabt, wie Pascal hat, noch sich irgendwelcher noch mit dem ähnlichen kommerziellen Erfolg getroffen hat.

Siehe auch

Weiterführende Literatur

  • Niklaus Wirth: Die Programmiersprache Pascal. 35-63, Acta Informatica, Band 1, 1971.
  • C A R Hoare: Zeichen auf der Datenstrukturierung. In O-J Dahl, E W Dijkstra und C A R Hoare, Redakteuren, Strukturierte Programmierung, Seiten 83-174. Akademische Presse, 1972.
  • C. A. R. Hoare, Niklaus Wirth: Eine Axiomatische Definition der Programmiersprache Pascal. 335-355, Acta Informatica, Band 2, 1973.
  • Kathleen Jensen und Niklaus Wirth: PASCAL - Benutzerhandbuch und Bericht. Springer-Verlag, 1974, 1985, 1991, internationale Standardbuchnummer 0-387-97649-3 und internationale Standardbuchnummer 3-540-97649-3
  • Niklaus Wirth: Algorithmen %2B Programm-Prentice-Saal von Data_Structures %3D, 1975, internationale Standardbuchnummer 0-13-022418-9
  • Niklaus Wirth: Eine Bewertung der Programmiersprache PASCAL 23-30 Benachrichtigungsband 10 von ACM SIGPLAN, Ausgabe 6, Juni 1975.
  • N. Wirth, und A. I. Wasserman, Hrsg.: Programmiersprache-Design. IEEE Computergesellschaftspresse, 1980
  • D. W. Barron (Hrsg.).: Pascal - Die Sprache und seine Durchführung. John Wiley 1981, internationale Standardbuchnummer 0-471-27835-1
  • Peter Grogono: In Pascal, Verbesserter Auflage, Addison-Wesley, 1980 programmierend
  • Richard S. Forsyth: Pascal in Arbeit und Spiel, Hausierer und Saal, 1982
  • N. Wirth, M. Broy, Hrsg., und E. Denert, Hrsg.: Pascal und seine Nachfolger in Softwarepionieren: Beiträge zur Softwaretechnik. Springer-Verlag, 2002, internationale Standardbuchnummer 3-540-43081-4
  • N. Wirth: Erinnerungen über die Entwicklung des Pascal. Benachrichtigungen von ACM SIGPLAN, Band 28, Nr. 3, März 1993.

Links


Source is a modification of the Wikipedia article Pascal (programming language), licensed under CC-BY-SA. Full list of contributors here.
Pluot / Farbe
Impressum & Datenschutz