• Keine Ergebnisse gefunden

5 Wie war noch der Typ?

N/A
N/A
Protected

Academic year: 2022

Aktie "5 Wie war noch der Typ?"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Bedeutung und Eigenschaften von C-Programmen SS 08

2. ¨ Ubungsblatt

Ausgabe: 24.06.08 Abgabe: 25.07.08

Christoph L¨uth <cxl>

Lutz Schr¨oder<lschrode>

Dieses ¨Ubungsblatt besch¨aftigt sich mit der statischen Analyse der Sprache C. Lernziele hier- bei sind die verschiedenen Typkonversionen in C (explizit und implizit), und die Feinheiten der Typ¨uberpr¨ufung in C.

4 Konversionen hier und da

Ausgehend von der in Aufgabe 2 ( ¨Ubungsblatt 1) entwickelten Repr¨asentation von Typen ent- wickeln Sie zwei Funktionen, welche zum einen integer promotion (C-Standard,§6.3.1.1(2)) und zum anderen die usual arithmetic conversions (C-Standard, §6.3.1.8) implementieren. Die erste Funktion ist einstellig, die zweite zweistellig.

Hinweis: Sie werden Hilfsfunktionen wie beispielsweise f¨ur den conversion rank ben¨otigen.

5 Wie war noch der Typ?

Entwickeln Sie einen Datentypensymtabf¨ur Symboltabellen, welcher es erlaubt, Bezeichner (Sym- bole) mit ihrer Typinformation abzulegen, nach einem Symbol zu suchen, und ein Symbol wieder zu l¨oschen.

6 Personalwechsel, bitte den Typ vorzeigen.

Unter Nutzung der beiden letzten Aufgaben und des vorherigen ¨Ubungsblattes (bzw. dessen L¨osung) entwickeln Sie jetzt eine Funktion, welche innerhalb eines Kontextes (gegeben durch eine Symboltabelle), der Bezeichnern (Variablen) Typen zuorden

• zum einen Deklarationen parsiert, und diese in die Symboltabelle eintr¨agt,

• und zum anderen Ausdr¨ucke parsiert, und die Typkorrektheit dieser Ausdr¨ucke nach dem C-Standard pr¨uft.

Hinweise: Auch hier k¨onnen Sie annehmen, dass alle Pr¨aprozessor-Anweisunge aufgel¨ost worden sind, und brauchen Typdefininitionen (typedef) nicht zu behandeln. Funktionsaufrufe k¨onnen behandelt werden, als wenn kein Prototyp vorliegt. Sie brauchen keine Anweisungen zu behandeln, aber Fragmente der Sprache wie diese, d.h. Deklaration gefolgt von einem Ausdruck:

int x;

char *y:

*(&x+ 5)- *y;

7 Prototypisch Funktional (Zusatzaufgabe)

Erweitern Sie Symboltabelle und Typ¨uberpr¨ufung so, dass zum einen Funktionsprototypen ge- parst und in die Symboltabelle eingetragen werden, und zum anderen beim Funktionsaufruf auf Typkorrektheit ¨uberpr¨uft werden. Ellipsen (...) brauchen nicht behandelt zu werden.

Referenzen

ÄHNLICHE DOKUMENTE

Bei der kardialen Toxizität systemi- scher Krebstherapien ist es wichtig, zwischen einer asymptoma tischen kardialen Dysfunktion mit Reduktion der

Untersucht wurde es im Frühjahr 1999, im Herbst 1999 und im Sommer 2000 im FIT(3.3) auf eine spezifische Sensibilisierung gegen Culicoides nubeculosus (3.2.4) und eine

Wurde ein Bezeichner erkannt, so soll in der Symboltabelle nachgeschlagen (find or insert symbol (”symbolstring”)) werden welchem Token-Typ er entspricht (symbol−&gt;id). Dazu muss

verkettetes Hashen: Aufwand: Hashfunktion + Kettenl¨ ange Suchbaum: Aufwand Pfadl¨ ange im Baum (O(log(|Eintr¨ age|))) in formatiertem FORTRAN sind Leerzeichen erlaubt,. st¨

• Wird das XML-Dokument in einem Schritt vollständig geparst oder Schritt für Schritt. • Beachte: Kategorien unabhängig voneinander, können

Kann der angestrebte HbA 1c -Wert nicht mit Thiazolidin- dion/Sulfonylharnstoff oder Metformin/Sulfonylharnstoff erreicht werden, und ist es nicht möglich, der Medikation eine

Pioglitazon [Actos®], Rosigliatzon [Avandia®], die die Insulin-Resistenz senken, sollte jedoch fortgesetzt werden, da durch die kombinierte An- wendung mit Insulin nicht nur

Die auf diese Weise auf das Bessel-Ellipsoid übertragenen ED 79-Koordinaten wurden dann durch eine Anfelderung in eine Minimallage in Bezug auf das Gebrauchsnetz gebracht..