lineas informationstechnik brochure1
Post on 22-Mar-2016
224 Views
Preview:
DESCRIPTION
TRANSCRIPT
Ist dieProgrammiersprachen Entwicklung zu Ende?
Wir präsentierenOberon SprachevolutionenJürg Gutknecht, ETH ZürichOktober 2000
Die Pascal SprachenfamilieETH Zürich
1960 ALGOL Prozeduren, Lokalität1970 Pascal Datentypen1980 Modula-2 Module1990 Oberon Typerweiterung2000 Active Oberon Aktive Objekte2000 Lightning Oberon (mit MSR)
Interoperabilität Globale Programmierung
Systembau
Algorithmen & Datenstrukturen
Evolution Active OberonModell der “aktiven” Objekte
Process Q
ProcessP
ObjectX
ObjectY
ObjectZ
X
Y
Z
CCall
Sync
Ferngesteuerte“passive” Objekte
Population kollaborierender“aktiver” Objekte
Call
“The New Computing Model”(Robin Milner, Oxford)
Evolution Active OberonAufgewertete Objekttypen
Y
Z = OBJECTVAR t: T;PROCEDURE p (u: U; VAR v: V);BEGIN { EXCLUSIVE } …END p;PROCEDURE q;BEGIN assertion := TRUEEND q;
BEGIN ...BEGIN { EXCLUSIVE } ...
PASSIVATE assertion; ...END
END Z;
X
Block im gegenseitigen Ausschluss
Passiv bisassertion efüllt ist
Zustand
SeparaterThread
Methoden Call
MonitorObjekt
Evolution Active OberonSynchronisierung mit Assertions
PQR
PQR
PQR
“Signal-And-Pass”
“Signal-And-Continue”
Basiert auf kooperativenPartnerprozessen
Basiert auf systemverwaltetenAssertions
Voll skalierend
Alle Szanarios innerhalb eines Objektscopes
Wait
Signal
Kein KontextSwitch
End
Evolution Active OberonEin BeispielTYPE
Movie = OBJECT
VAR first, cur: Figure; X, Y: REAL; stopped: BOOLEAN;
PROCEDURE NEW (orgx, orgy: REAL; video: Figure);BEGIN X := orgx; Y := orgy; first := videoEND NEW;
PROCEDURE Stop;BEGIN stopped := TRUEEND Stop;
BEGIN { active }stopped := FALSE; cur := first;WHILE ~stopped DOcur.Display(X, Y); cur := cur.next (*cyclic list*)
ENDEND Movie;
NativeOberon
Mouse
TelnetClient
Evolution Active Oberon AosNative auf Intel SMP
Timer
DisplayDriver
FileSystem
lConnection
VNCClient
JavaApplet
TCPFileManager
InteractionManager
Aos Kernel
Intel SMP
ServerAgent
Plug-InKomponenten
MonitorObjekte
ApplikationsObjekte
Evolution Lightning OberonMS .NET Interoperabilitätsplattform!IL Intermediate Language
o Virtuelle Stackmaschineo Objektmodell mit Metadateno CLR Common Language Runtimeo Hochoptimierender JIT Compiler
!Microsoft Research Project7o Research Languages
"Scheme, Haskell, Oberon, Oz, Mercury, ...o Kommerzielle Sprachen
"C#, Eiffel, Cobol, ...
Mit ETHZ
Evolution Lightning OberonOOP im neuen Kleid (1)
! Traditionelle OOPo Klassenhierarchie als Mehrzweck Tool
"Unterklassen• zur Klassifizierung von Objekten• zur Objektbenutzung via Polymorphie
"Vererbung zur Wiederverwendung von Codeo Modifiers und Patterns zur Differenzierung
"virtual, final, abstract, static, ...o Passive Objekte
"Reaktiv und ferngesteuert
Evolution Lightning OberonOOP im neuen Kleid (2)
! Lightning Oberon
o Implementationseinheiteno Einheiten der Benutzungo Wiederverwendung von Code
o Namespaceso Singleton Objekte
o Aktiv und selbststeuernd
Evolution Lightning OberonDefinitionskonzept (1)!DEFINITION
o Schnittstelleo Zustandsvariablen (optional)o Vorimplementierte Methoden (optional)o Perspektivenabhängige Sichtbarkeit
"Privat"Nur für Implementator sichtbar"Für Implementator und Benutzer sichtbar
Implementatorperspektive
Benutzerperspektive
Evolution Lightning OberonDefinitionskonzept (2)
!Relationeno Verfeinerung
"Hinzufügen von Variablen und Methoden"Implementieren abstrakter Methoden
o Implementierung"Adjungieren des Zustandsraumes"Implementieren aller abstrakten Methoden
DEFINITION I; (* pure interface *)VAR s: S; t, u: T;PROCEDURE p (..);PROCEDURE q (..): ..;
END I;
DEFINITION D;VAR x: X; y: Y;
PROCEDURE f (..);VAR u, v: U:
BEGIN ..END f;
PROCEDURE g (..): ..;
PROCEDURE h (..);BEGIN .. f(..); ..END h;
END D;
Evolution Lightning OberonCodemuster
DEFINITION MyD REFINES D;VAR z: Z;
PROCEDURE g (..): ..;BEGIN .. RETURN ..END g;
PROCEDURE k (..);END MyD;
TYPES = OBJECTIMPLEMENTS I, D
END;VAR s: S;
Verfeinerung
Implementation
IF s IMPLEMENTS D THEND(s).f(..)
END
Benutzung
top related