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)