Extended Pascal Erweiterung von Pascal shadi Behzadipour Pascal
Extended Pascal Erweiterung von Pascal shadi Behzadipour
Pascal - Sprachstandards ¡ Zu unterscheiden sind die Standards Standard Pascal (ISO 7185: 1983 & ANSI/IEEE 770 X 3. 97 -1983 ) ISO 7185: 1990 Extended Pascal (ISO 10206: 1991& ANSI/IEEE 770 X 3. 160 -1989) ¡ In Verbindung mit Programmiersprachen ist der folgende Standard Wichtig. standard IEEE 754 IEEE Standard for Binary Floating-Point Arithmetic
I Datentypen nteger (Ganze zahlen ) ¡ Real (Reelle zahlen ) ¡ Boolean (wahrheitswerte ) ¡ Char (Zeichen ) ¡ Complex (komolexe zahlen ) ¡ String ( zeichen ketten ) ¡
Beispiel ¡ Komplexe zahlen werden wie üblich als paar reeller zahlen aufgefasst: ( realteil, imaginärteil) VAR z 1, z 2 : Complex; z 1: = complex (3, 2 , -2, 6 ) ; z 2: = polar ( 1, 0 , 90, 0 );
Datentyp String ¡ Eine Zeichenkettenvariable der Länge n kann alternativ zur Standard Pascal Variante vereinbart werden als VAR str : STRING(n); Zeichenketten sind intern folgendermaßen aufgebaut: STRING = RECORD capacity : INTEGER; length : INTEGER; string : PACKED ARRAY[1. . capacity] OF char; END; Syntaktisch kann eine Zeichenkette jedoch nicht wie ein Record behandelt werden !
Strukturierte Datentypen ¡ ¡ ¡ Felder (Arrays ) array [Indextypliste] of komponententyp Dateien (Files ) file of Komponententyp Verbunde (records ) record Datensatzliste end Mengen (sets ) set of Grundbereichstyp Typdeklaration (Type) Geschützte Typen (Restricted ) Type name=Restricted bezugsdatentyp
Beispiel ¡ Felder (Arrays ) array [1… 10] of array [`a`…`z`] of boolean array [(rot, gelb, blau, schwarz)] ¡ Dateien (Files) Reset, rewrite, put, get ¡ Verbunde (Records ) record monat: (jan…dez ); tag: 1… 31 jahr: integer; END; ¡ Mengen (sets ) type menge = set of 1… 3; Vereinbarte Mengentyp enthält als werte die Teilmenge [], [1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]
Konstanten, Typen , Variablen ¡ ¡ ¡ In einer Konstantendefinition können Namen für konstanten (benamte konstanten) festgelegt werden. const Name=konstante; …{nicht leer } In einer Typdefinition können Namen für Typen festgelegt werden. type Name = Typ; …{ nicht leer } In einer Variablenvereinbarung können Namen für Variablen festgelegt werden. var Namensliste: Typ; … { nicht leer }
Bedingte Anweisungen ¡ if-Anweisung Die if-Anweisung ermöglicht die wahlweise Ausführung vonzwei Anweisungen : if logischer Ausdruck ¡ then Anweisung else Anweisung {kann entfallen } Case-Anweisung Im Unterschied zur if-Anweisung erlaubt die case-anweisung oder Auswahl-anweisung die Ausführung einer Anweisung, welche aus beliebig vielen Alternatinen ausgewählt wird: case end Auswahlausdruck of Auswahlkonstantenliste: Anweisung; …. { nicht leer}
Beispiel ¡ If- Anweisung if x<=y ¡ then else z: =y-x z: =x-y; {positive Differenz von x und y} Case-Anweisung CASE a OF `0`…`9`: `A`, `E`, `I`, `O`, `U`: OTHERWISE END {case }. digit; vowel; other;
Mengen Operatoren + * >< Vereinigung Durchschnitt Differenz Symmetrische Differenz
Beispiel m: =m 1+m 2 m: =m 1*m 2 m: =m 1 -m 2 m: =m 1><m 2
Module ¡ Im Extended Pascal kann ein Modul (ähnlich wie in Modula) aus zwei Teilen bestehen: 1. Interface-Teil Beschreibt die Import/Export Schnittstelle 2. Implementationsteil realisiert die Ressourcen, die der Modul zur Nutzung bereitstellt verfügt wahlweise über einen Initialisierungteil.
Interface-Teil MODULE name EXPORT name = ( liste ); IMPORT … ; Deklarationen END. INTERFACE;
Implementationsteil MODULE name IMPLEMENTATION DEKLARATIONEN TO BEGIN DO BEGIN ausführbare Anweisungen END; TO END DO BEGIN ausführbare Anweisungen END.
Beispiel MODULE ONE; EXPORT i 1 = (lower, upper) ; CONST VAR lower=0; upper=11; {must be prime } dummy: Booolean; END {of module-heading}; END {of module-block}.
Zusammenfassung ¡ ¡ Pascal war ursprünglich als reine Lernsprache gedacht und ist dafür sehr gut geeignet. Inzwischen in vielen Verschiedenen Erweiterungen (Turbo. Pascal, Prospero-Pascal, UCSP-Pascal) Verbreitet. Die Erweiterung sind meist sehr fähig, aber die dadurch entstehenden Dialekte zu unterschiedlich, um Programme übertragen zu können. Der Übertragbare, genormte Teil von Pascal ist dagegen von der Funktion so stark eingeschränkt, daß man nicht vernünftig damit Arberten kann. Es gibt auch eine genormte Erweiterung von Pascal, nämlich Extended Pascal , die aber nicht sehr verbreitet ist.
¡ Danke für ihre Aufmerksamkeit
- Slides: 18