Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

A SHORT INTRODUCTION TO CONCURRENT EUCLID. 1976 Entwicklung von Euclid 1976 Entwicklung von Euclid 1977 Entwicklung des „TORONTO Euclid“ 1977 Entwicklung.

Ähnliche Präsentationen


Präsentation zum Thema: "A SHORT INTRODUCTION TO CONCURRENT EUCLID. 1976 Entwicklung von Euclid 1976 Entwicklung von Euclid 1977 Entwicklung des „TORONTO Euclid“ 1977 Entwicklung."—  Präsentation transkript:

1 A SHORT INTRODUCTION TO CONCURRENT EUCLID

2 1976 Entwicklung von Euclid 1976 Entwicklung von Euclid 1977 Entwicklung des „TORONTO Euclid“ 1977 Entwicklung des „TORONTO Euclid“ TUNIS TUNIS I.P. SHARP Associates I.P. SHARP Associates USA Department of Defense USA Department of Defense Kanadisches Department of National Defense Kanadisches Department of National Defense 1980/81  „Concurrent Euclid“ 1980/81  „Concurrent Euclid“

3 PDP-11VAX Motorola 68000 Motorola 6809 „bare machines“ „simulated modus“

4 Philosophie: Philosophie: Soviele Fehler wie möglich finden! Soviele Fehler wie möglich finden! Durch Missbilligung gefährlicher oder unwahrscheinlichen Konstrukten Durch Missbilligung gefährlicher oder unwahrscheinlichen Konstrukten

5 Vergleich mit Pascal CE basiert auf Pascal CE basiert auf Pascal Borgt sich Datenstrukturen von Pascal Borgt sich Datenstrukturen von Pascal Eigenschaften werden von CE „gereinigt“ Eigenschaften werden von CE „gereinigt“ zB.:Funktionen mit Seiteneffekten werden missbilligt zB.:Funktionen mit Seiteneffekten werden missbilligt

6 Die Haupteigenschaften,welche Concurrent Euclid Pascal hinzufügt,sind: Die Haupteigenschaften,welche Concurrent Euclid Pascal hinzufügt,sind:

7 Getrennte Kompilation; Prozeduren Funktionen und Module können seperat kompiliert und später zusammengelinkt werden. Unter Unix nützen sie die standart Linker „ld“ und können einfach mit Programmen, welche z.B.: in C geschrieben wurden, zusammengeschlossen werden. Getrennte Kompilation; Prozeduren Funktionen und Module können seperat kompiliert und später zusammengelinkt werden. Unter Unix nützen sie die standart Linker „ld“ und können einfach mit Programmen, welche z.B.: in C geschrieben wurden, zusammengeschlossen werden.

8 Module ; Ein Modul ist ein syntaktisches Packet von Daten zusammen mit Prozeduren/ Funktionen welche auf Daten zugreifen. Module ; Ein Modul ist ein syntaktisches Packet von Daten zusammen mit Prozeduren/ Funktionen welche auf Daten zugreifen.

9 Concurrency/ Parallelität; Monitore und Prozesse werden unterstützt. Es gibt ein „signal“ Statement und ein „wait“ Statement. Das „busy“ Statement erlaubt Concurrent Euclid wie eine Simulationssprache verwendet zu werden. Concurrency/ Parallelität; Monitore und Prozesse werden unterstützt. Es gibt ein „signal“ Statement und ein „wait“ Statement. Das „busy“ Statement erlaubt Concurrent Euclid wie eine Simulationssprache verwendet zu werden.

10 Kontrollbereich ; Namen von Variablen, Typen etc. sind nicht automatisch von Bereichen übernommen worden.Import und Export Listen werden verwendet um Namensbereich zu definieren Kontrollbereich ; Namen von Variablen, Typen etc. sind nicht automatisch von Bereichen übernommen worden.Import und Export Listen werden verwendet um Namensbereich zu definieren

11 Systemprogrammierende Konstrukte ; Diese beinhalten Variablen mit absoluten Adressen. Solche können Variablen Vorrichtungsregister in Computern mit Gedächtnisspeicher für „Input/Output“ sein. Systemprogrammierende Konstrukte ; Diese beinhalten Variablen mit absoluten Adressen. Solche können Variablen Vorrichtungsregister in Computern mit Gedächtnisspeicher für „Input/Output“ sein.

12 Grunddatentypen Name Values Allocation Name Values Allocation ShortInt0...255(byte) ShortInt0...255(byte) SignedInt-32768...32767(16-bit) SignedInt-32768...32767(16-bit) UnsignedInt0...65535(16-bit) UnsignedInt0...65535(16-bit) LongIntsigned integer(32-bit) LongIntsigned integer(32-bit) Booleanfalse...true(byte) Booleanfalse...true(byte) Chara character(byte) Chara character(byte) AddressTypeinteger(address size) AddressTypeinteger(address size) Pointeraddress(address size) Pointeraddress(address size)

13 Strukturierte Datentypen Arrays Arrays Records Records Sets Sets

14 Beispiel Array: Beispiel Array: Var a : array 1...1 of SignedInt Var a : array 1...1 of SignedInt Var str : packed array 1..5 of Char :=‚Hello‘ Var str : packed array 1..5 of Char :=‚Hello‘ Var matrix : array 1...5 of array1...5LongInt Var matrix : array 1...5 of array1...5LongInt

15 Beispiel record: Beispiel record: Var r : Var r : record record var status : boolean var status : boolean var count : SignedInt var count : SignedInt end record end record

16 Beispiel Set : Beispiel Set : var s : set of 0..2 var s : set of 0..2

17 Re-entrant/einspringend ? Re-entrant/einspringend ? Input/output nicht definiert? Input/output nicht definiert? Monitors? Monitors? Unter Unix verlinken? Unter Unix verlinken?

18 Ein Beispiel zum Abschluss var Example: var Example: module module include ‘%IO1’ include ‘%IO1’ { Print characters up to a period } { Print characters up to a period } initially initially imports( var IO ) imports( var IO ) begin begin var ch : Char var ch : Char IO.PutString( ‘Test starts$N$E’ ) IO.PutString( ‘Test starts$N$E’ ) loop loop IO.GetChar( ch ) IO.GetChar( ch ) IO.PutChar( ch ) IO.PutChar( ch ) exit when ch = $. exit when ch = $. end loop end loop end { of initially } end { of initially } end module end module


Herunterladen ppt "A SHORT INTRODUCTION TO CONCURRENT EUCLID. 1976 Entwicklung von Euclid 1976 Entwicklung von Euclid 1977 Entwicklung des „TORONTO Euclid“ 1977 Entwicklung."

Ähnliche Präsentationen


Google-Anzeigen