MODULA-2
Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004
Inhalt: Die Geschichte von Modula-2 Die Grundlegende Unterschiede zwischen Pascal und Modula-2 Programmstruktur und Prozeduren Anweisungen und Kontrollstrokture Datentypen Ausdrücke zusammenfassung
Die Geschichte von Modula-2 Modula-2:eine universale Programmsprache Modula:eine Abkürzung für modular language Niklaus Wirth:Schweizer Informatiker Die dritte in einer Reihe von Sprachen
Programmsprache 1.Pascal:als Ausbildungsprache 2.Modula:eine spezielsprache um kleine Echtzeitsysteme zu programmieren Modula-2:vereinigt 1.die möglichkeiten zur system Implementierung von Modula 2.die allgemeine Anwendbarkeit von Pascal
Die Geschichte von Modula-2 1977, Institut für Informatik der ETH, > ein Rechnersystem in einem einheitlichen Ansatz zu entwerfen, > es sollte in einer hohere Programmiersprache programmiert werden,
Die Geschichte von Modula-2 Die Sprache musste zugleich: 1.den Anforderung des Systementwurfs auf hoher Ebene, 2.den Anforderung der Programmierung auf niederer,maschinennaher Ebene,
Die Geschichte von Modula-2 Modula-2: entstand aus sorgfältigen Entwurfsüberlegungen als eine Sprache die enthält: -alle möglichkeiten von Pascal -die wichtigen Konzepte des moduls -Multiprogrammierung
Die Geschichte von Modula-2 Wieso heißt sie modula-2? Ihre Syntax:mehr auf der Linie von Modula als auf der von Pascal,
Grundlegende Unterschiede: Seperate compilation Ersetzung I/O Routinen Read und Write mit dem Standardmodul TTIO Paralelität (multitasking)
Ersetzung I/O Routinen mit TTIO Read and Write:one character at a time InOut: >Read-Int:to read an integer in a character form, > WriteInt and WriteCard:to write integers and cardinals in decimal notation, >WriteOct and WriteHex:to write integers or cardinals in octal and hexadecimal notation, >WriteString:to write character strings,
Programmstruktur und Prozedure: Hauptmodul Funktion und Prozedure Prozedurdeklaration Prozeduranruf Syntax:Prozedurkopf Prozedurrumpf End
Procedure Syntax PROCEDURE name(<fp>) CONST .... TYPE VAR BEGIN statement-sequence END name;
Anruf von Unterprogramme: Wertaufruf (call by value) eine kopie des parameterinhalts zu den Unterprogramm geschickt wird, der Wert der Parameter bleibt gleich, Variableanruf (call by reference) die adresse des parameterinhalts zu den Unterprogramms geschickt wird, der Wert der Parameter ändert,
Offene Feld Parameter: In Modula-2 kann Feld Größe variable sein,aber in Pascal nicht. 0 und High.
Anweisungen und Kontrollstruktur: Eine wichtige Änderung von Pascal:Eine ausdrücklichen END Punkt (END Anweisung). ِِDieses verhindert die Mehrdeutigkeit, die in der folgenden Pascalprogrammreihenfolge möglich ist.
Die IF Anweisung: Syntax: IF expression THEN statement sequence ELSIF expression ELSE STATEMENT SEQUENCE END
Beispiele In Pascal: IF (oregano IN recipe[1]) THEN IF (thyme IN recipe[1]) THEN writeIn(Use oregano andthyme) ELSE writeIn(NO oregano); In Modula-2: IF (oregano IN recipe[1]) THEN IF (thyme IN recipe[1]) WriteString(use oregano and thyme) END ELSE WriteString(NO oregano)
Die FOR Anweisung: Syntax: ForStatement ::= FOR ident := Expression TO Expression [BY ConstExpr] DO Statement Sequence END
Die WHILE und REPEAT Anweisungen: WHILE expression DO statement sequence END REPEAT Statement sequence UNTIL expression
Die LOOP Anweisung: Syntax: LOOP statement sequence END Zwei Aussagen die LOOP beenden können,EXIT und RETURN.
Datentypen: Fast identisch zu denen von Pascal, Zusätzlich zu denen in Pascal: 1.CARDINALS ( Kardinalzahlen) 2.BITSET (Menge von Kardinalzahlen)
Strukturierte Datentypen: Array-Typen Set-Typen Record-Typen Pointer-Typen Procedure-Typen
Ausdrücke: Gebildet aus mehreren Operanden und Operatoren. Im allgemein geht man von links nach Rechts. Arithmetische Ausdrücke:Zahlen,numerische variable,arithmetische operatoren.
Elementare Operatoren: Addition (+) Subtraktion (-) Multiplikation ( * ) Division (/)
Relationale Operatoren: Alle sind dyadische Operatoren Sie verlangen zwei Operanden ,die beide den selben Typ haben müssen. Operator / bedeutung = ist gleich <> ist ungleich < ist kleiner als <= ist kleiner/gleich > ist größer >= ist größer/gleich
Zusammenfassung: Modula-2 im vergleich zum Pascal: Loop End Anweisung Multitasking Einfachere Implementierung Einfacher zu Lernen
VIELEN DANK