eine einleitung in modula-2 nayeb farsijani shiva 0103557 winter 2004
TRANSCRIPT
![Page 1: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/1.jpg)
![Page 2: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/2.jpg)
Eine Einleitung in Modula-2
Nayeb Farsijani Shiva0103557
Winter 2004
![Page 3: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/3.jpg)
Inhalt: Die Geschichte von Modula-2 Die Grundlegende Unterschiede
zwischen Pascal und Modula-2 Programmstruktur und Prozeduren Anweisungen und Kontrollstrokture Datentypen Ausdrücke zusammenfassung
![Page 4: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/4.jpg)
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
![Page 5: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/5.jpg)
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
![Page 6: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/6.jpg)
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,
![Page 7: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/7.jpg)
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,
![Page 8: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/8.jpg)
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
![Page 9: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/9.jpg)
Die Geschichte von Modula-2
Wieso heißt sie modula-2? Ihre Syntax:mehr auf der Linie
von Modula als auf der von Pascal,
![Page 10: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/10.jpg)
Grundlegende Unterschiede:
Seperate compilation Ersetzung I/O Routinen Read und
Write mit dem Standardmodul TTIO
Paralelität (multitasking)
![Page 11: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/11.jpg)
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,
![Page 12: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/12.jpg)
Programmstruktur und Prozedure:
Hauptmodul Funktion und Prozedure Prozedurdeklaration Prozeduranruf Syntax:Prozedurkopf Prozedurrumpf End
![Page 13: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/13.jpg)
Procedure Syntax PROCEDURE name(<fp>) CONST .... TYPE .... VAR .... BEGIN statement-sequence END name;
![Page 14: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/14.jpg)
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,
![Page 15: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/15.jpg)
Offene Feld Parameter:
In Modula-2 kann Feld Größe variable sein,aber in Pascal nicht.
0 und High.
![Page 16: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/16.jpg)
Anweisungen und Kontrollstruktur:
Eine wichtige Änderung von Pascal:Eine ausdrücklichen END Punkt (END Anweisung).
LLDieses verhindert die Mehrdeutigkeit, die in der folgenden Pascalprogrammreihenfolge möglich ist.
![Page 17: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/17.jpg)
Die IF Anweisung: Syntax: IF expression THEN statement sequence ELSIF expression THEN statement sequence ELSE STATEMENT SEQUENCE END
![Page 18: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/18.jpg)
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]) THEN WriteString(use oregano and thyme) END ELSE WriteString(NO oregano)END
![Page 19: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/19.jpg)
Die FOR Anweisung: Syntax:ForStatement ::= FOR ident :=
Expression TO Expression [BY ConstExpr] DO Statement Sequence END
![Page 20: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/20.jpg)
Die WHILE und REPEAT Anweisungen:
WHILE expression DO statement
sequenceEND
REPEAT Statement
sequenceUNTIL expression
![Page 21: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/21.jpg)
Die LOOP Anweisung:
Syntax: LOOP statement sequence END Zwei Aussagen die LOOP beenden
können,EXIT und RETURN.
![Page 22: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/22.jpg)
Datentypen:
Fast identisch zu denen von Pascal,
Zusätzlich zu denen in Pascal: 1.CARDINALS ( Kardinalzahlen) 2.BITSET (Menge von
Kardinalzahlen)
![Page 23: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/23.jpg)
Strukturierte Datentypen:
Array-Typen Set-Typen Record-Typen Pointer-Typen Procedure-Typen
![Page 24: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/24.jpg)
Ausdrücke:
Gebildet aus mehreren Operanden und Operatoren.
Im allgemein geht man von links nach Rechts.
Arithmetische Ausdrücke:Zahlen,numerische variable,arithmetische operatoren.
![Page 25: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/25.jpg)
Elementare Operatoren:
Addition (+) Subtraktion (-) Multiplikation ( * ) Division (/)
![Page 26: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/26.jpg)
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
![Page 27: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/27.jpg)
Zusammenfassung:
Modula-2 im vergleich zum Pascal: Loop End Anweisung Multitasking Einfachere Implementierung Einfacher zu Lernen
![Page 28: Eine Einleitung in Modula-2 Nayeb Farsijani Shiva 0103557 Winter 2004](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7f49795902118d1be5/html5/thumbnails/28.jpg)