• Keine Ergebnisse gefunden

Hinweise und Bemerkungen zum 4. Übungsblatt der Vorlesung

N/A
N/A
Protected

Academic year: 2022

Aktie "Hinweise und Bemerkungen zum 4. Übungsblatt der Vorlesung"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. Dr. A. Poetzsch-Heffter Dipl.-Inform. Markus Reitz

Technische Universität Kaiserslautern Fachbereich Informatik AG Softwaretechnik

Hinweise und Bemerkungen zum 4. Übungsblatt der Vorlesung

„Fortgeschrittene Aspekte objektorientierter Programmierung (SS 2008)“

Aufgabe 1 StooJas Extension

a) In der Syntax muß die Definition vonMethodDeclundStatementerweitert werden.

MethodDecl= ...

| static TypeId MethodId(TypeId p) { Statement } Statement= ...

| VarId = ClassId@MethodId( Exp );

In der dynamischen Semantik muß folgende Regel hinzugefügt werden.

S[p:=S(e),res:=init(rtyp(C@m))]:body(C@m)→S Q S:x=C@m(e);→S[x:=S Q(res),$:=S Q($)]

b) In der Syntax muß die Definition vonFieldDeclundStatement, in der statischen Semantik die Definition von Valueerweitert werden.

FieldDecl= ...

| static TypeId FieldId;

Statement= ...

| VarId = ClassId.FieldId;

| ClassId.FieldId = Exp;

Value = ...

| C’σ

Dabei bezeichnet C’ die Meta-Klasse von C undσdie Singleton-Instanz von C’. Die Attribute vonσrepräsentieren die statischen Variablen der Klasse C. Die MengeClassIdenthält nun neben den „normalen“ IDs auch die IDs der zugehörigen Meta-Klassen. Die Einführung von statischen Attributen muß bei der Definition vonS berücksichtigt werden.

S tate=(VarId→Value)×({$} →S tore)×(ClassId→Value) Dies bedeutet

C7→(C0, σ) C07→?

In der dynamischen Semantik muß keine Änderung durchgeführt werden.

Statt mit Hilfe von Meta-Klassen lassen sich statische Variablen auch durch Einführung vonClassVar:={<c,f>

| f ist ein Attribut der Klasse c}und geeigneter Erweiterung des „.“-Operators erreichen.

v.f = if v=(c,o) und f ist ein Attribut von c then <c,o,f>

else if v=class(c) und f ist ein Attribut von v then <c,f>

else undefiniert

(2)

Value = ...

| class(ClassId)

Wobeiclass:ClassId7→Value.

Die vorher angesprochenen Erweiterungen in der Syntax sowie die Erweiterung von State müssen ebenfalls durchgeführt werden.

Aufgabe 2 Typing

a) Das angegebene Codefragment istsyntaktisch korrektesJava. Es ist jedoch nichttypkorrekt, da sich der Variablen akein eindeutiger Typ zuordnen läßt. Je nach Belegung der Variableconditionistaeinmal vom Typ „Ganzzahl“

(primitiver Datentypint) und einmal vom Typ „Liste von ganzen Zahlen“ (Objektdatentyp).

b) Da es sich um ein nicht-typkorrektes Java-Fragment handelt, ist die Anpassung auf rein additive Weise nicht möglich. Wenn auch die Änderung der bestehenden Statements möglich ist, kann durch entsprechende Casts das gewünschte Ergebnis erreicht werden.

i m p o r t j a v a . u t i l .∗;

i m p o r t s t a t i c j a v a . u t i l . A r r a y s .; p u b l i c c l a s s E x a m p l e 1 A d a p t e d {

p u b l i c s t a t i c v o i d main ( S t r i n g . . . a r g s ) {

b o o l e a n c o n d i t i o n=f a l s e; O b j e c t a ;

i f ( c o n d i t i o n ) a=( I n t e g e r ) 7 ; e l s e

a=new L i n k e d L i s t<I n t e g e r>( a s L i s t ( 1 7 0 1 , 4 7 1 1 ) ) ; / /a s L i s t r e t u r n s an i m m u t a b l e L i s t i f ( c o n d i t i o n )

a=( I n t e g e r ) a+7 ; e l s e

( ( L i s t<I n t e g e r>) a ) . add ( 4 2 ) ; S y s t e m . o u t . p r i n t l n ( a ) ; }

}

c) Da JavaScriptdynamic typingverwendet, läßt sich das angegebene Codefragment in ein gültiges JavaScrip Frag- ment transformieren.

c o n d i t i o n=f a l s e; i f ( c o n d i t i o n )

a=7 ; e l s e

a=new A r r a y ( 1 7 0 1 , 4 7 1 1 ) ; i f ( c o n d i t i o n )

a=a+7 ; e l s e

a . p u s h ( 4 2 ) ; p r i n t ( a ) ;

Das angegebene Fragment liefert die in der Teilaufgabe geforderte Ausgabe.

2

Referenzen

ÄHNLICHE DOKUMENTE

Aufgabe 2: Der Aharonov–Bohm Effekt 10 Punkte In dieser Aufgabe wird der Effekt einer langen Spule, welche sich zwischen einem Doppelspalt und einem Schirm befinde, auf ein Teilchen

Wie lässt sich das aus obiger Formel berechnen? Wie groß ist die mittlere Leistung, die am Erdäquator ohne Berücksichtigung der Atmosphäre pro

c) Zeige, dass die Besetzungswahrscheinlichkeit der Zustände im Leitungsband eines nicht entarteten, intrinsichen Halbleiters mit E G &gt;&gt; kT näherungsweise durch die

a) Betrachte zunächst nur den Elektronenstrom im p-Halbleiter außerhalb der Raumladungszone. Der Stromfluß erfolgt hier ausschließlich durch Diffusion. Die

Eine Konzentrator-Solarzelle besteht aus einer Linse, die das Licht auf die Solarzelle fokussiert. In guter Näherung verhält sich die Kurzschlussstromdichte j proportional

1 ist die Strom-Spannungs-Kennlinie einer Tunneldiode (p ++ /n ++ -Kontakt) gegeben. Skizziere für die drei Fälle jeweils das reduzierte Bandschema und zeichne darin den Pfad

[r]

Fachbereich Mathematik Prof.. Thomas