Pascal ist eine Programmiersprache, die speziell für die Lehre entworfen wurde. Darum muss auch jede Variable usw. vorher deklariert werden - man soll zum strukturierten und ordentlichen Programmieren gezwungen werden. Außerdem ist Pascal weniger kryptisch als C, da es weniger Symbole und mehr englische Worte gibt. Dieses macht den Code in der Regel auch sehr lesbar. Zwischen Groß- und Kleinschreibung wird nicht unterschieden.

Moderne Pascal-Dialekte (GnuPascal, Delphi/Kylix, FreePascal, Virtual Pascal, ja selbst das alte Turbo-Pascal seit Version 5.0) sind objektorientiert. Das alte Objektmodell von Turbo Pascal (das spannenderweise urprünglich von Apple entwickelt wurde) wurde mit Delphi um Interfaces u.ä. erweitert. Damit ist Pascal eigentlich von den Features her eine sehr moderne Sprache. Pascal ist allerdings nicht "hip" und ist es m.E. auch nie gewesen.

(Ueber letzteres kann man sich streiten, Turbo Pascal war zu seiner Zeit sehr weit verbreitet und beliebt -- twm)

Pascal-Liebhaber schätzen die Klarheit und Übersichtlichkeit der Programme und Frameworks (z.B. der ObjectWindows-Bibliothek von Borland) sowie die gute IDE von Delphi oder Kylix. Pascal-Hasser ärgern sich über den mitunter etwas starren Programmierstil. Eine Sprache, die diese "Ordnung" beim Programmieren auf die Spitze treibt, ist Ada.

Hello World-Programme

Klassisch

 1 program HelloWorld(output);
 2 
 3 begin
 4  WriteLn('Hello World!');
 5 end.

Anmerkung: Das Semikolon hinter Writeln könnte in diesem Fall entfallen. Das Semikolon wird im Gegensatz zu C nicht als Befehls-Abschluss interpretiert, sondern als Trenn-Zeichen zwischen Befehlen. Vor einem END kann es somit entfallen, in einer IF-THEN-ELSE Anweisung darf es vor dem ELSE noch nicht mal stehen, da der IF-Ausdruck dadurch als abgeschlossen interpretiert werden würde.

Objektorientiert (Turbo Pascal)

So auch in GnuPascal und FreePascal anwendbar.

 1 PROGRAM ObjectHelloWorld;
 2 
 3 TYPE
 4  PHelloWorld = ^THelloWorld;
 5  THelloWorld = OBJECT
 6  CONSTRUCTOR Init;
 7  PROCEDURE SayHello; VIRTUAL;
 8  DESTRUCTOR Done; VIRTUAL;
 9  END;
 10 
 11 CONSTRUCTOR THelloWorld.Init;
 12 BEGIN
 13 END;
 14 
 15 PROCEDURE THelloWorld.SayHello;
 16 BEGIN
 17  WriteLn('Hello World');
 18 END;
 19 
 20 DESTRUCTOR THelloWorld.Done;
 21 BEGIN
 22 END;
 23 
 24 (* Hauptprogramm *)
 25 VAR myobj : PHelloWorld;
 26 
 27 BEGIN
 28  New(myobj, Init);
 29  myobj^.SayHello;
 30  Dispose(myobj);
 31 END.

Objektorientiert mit Interface (Delphi/Kylix)

So auch in FreePascal anwendbar

 1 PROGRAM ObjectHelloWorld;
 2 
 3 TYPE
 4  IHelloWorld = INTERFACE
 5  PROCEDURE SayHello;
 6  END;
 7 
 8 TYPE
 9  THelloWorld = CLASS(TInterfacedObject, IHelloWorld)
 10  // CONSTRUCTOR Create; // brauchen wir nicht, es gibt ja nichts zu initialisieren
 11  // DESTRUCTOR Destroy; override; // dito
 12  PROCEDURE SayHello; VIRTUAL;
 13  END;
 14 
 15 PROCEDURE THelloWorld.SayHello;
 16 BEGIN
 17  WriteLn('Hello World');
 18 END;
 19 
 20 (* Hauptprogramm *)
 21 VAR
 22  myobj : IHelloWorld;
 23 
 24 BEGIN
 25  myobj := THelloWorld.Create; // ruft standard constructor von TInterfacedObject auf
 26  myobj.SayHello;
 27  // interfaces werden automatisch freigegeben, also kein expliziter destructor-Aufruf mehr
 28 END.


Siehe auch SprachePascal, ObjectPascal, ObjectPascalResourcen.


KategorieProgrammiersprachen

Pascal (zuletzt geändert am 2007年12月26日 20:37:53 durch AndreasFoerster )

AltStyle によって変換されたページ (->オリジナル) /