LINEAS Informationstechnik brochure1

17
Ist die Programmiersprachen Entwicklung zu Ende? Wir präsentieren Oberon Sprachevolutionen Jürg Gutknecht, ETH Zürich Oktober 2000

description

 

Transcript of LINEAS Informationstechnik brochure1

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 OberonLaufzeitszenarium

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 OberonModulkonzept

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

Evolution Lightning OberonDefinitionskonzept (3)

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

Evolution Lightning OberonBlockanweisung

BEGIN…

ENDBEGIN { options }

…END

BEGIN { options }…

ON EXCEPTION DO…

END

ACTIVEEXCLUSIVE

CONCURRENT