13.07.2015 Aufrufe

ein generischer Ansatz zur Layout-Spezifikation - Lehr- und ...

ein generischer Ansatz zur Layout-Spezifikation - Lehr- und ...

ein generischer Ansatz zur Layout-Spezifikation - Lehr- und ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

5. Prototypische Implementierung PEPAllerdings ist offensichtlich, daß diese Formulierung durch die mehrfachen Ausgabeanweisungenrecht unübersichtlich <strong>und</strong> somit auch leicht fehleranfällig ist: All<strong>ein</strong> in dem kl<strong>ein</strong>en Beispiel stecktbereits <strong>ein</strong> Fehler, der leicht zu übersehen ist.Jedoch bietet printf auch die Möglichkeit, über Formatanweisungen <strong>und</strong> weitere Argumente <strong>ein</strong>egesamte Zeichenkette formatiert auszugeben. Das vorangegangenene Beispiel sähe dann so aus:printf(”Die nächste Veranstaltung findet am %s statt.”, tag());Die Zeichenfolge %s fungiert dabei als Platzhalter für die durch die Funktion tag() gelieferte Zeichenfolge.Die Ausgabe wird nicht zerrissen, was die Formulierung viel übersichtlicher ersch<strong>ein</strong>enläßt.Ganz ähnlich verhält es sich auch mit dem Backquote in LISP, nur daß sich das Backquote nicht aufAusgabefunktionen, sondern auf Listen bezieht. Die Anweisung(list (quote Die) (quote naechste) (quote Veranstaltung)(quote findet) (quote am) (tag) (quote statt))kann mit Hilfe des Backquote folgendermaßen formuliert werden:‘(Die naechste Veranstaltung findet am ,(tag) statt)Bei der Implementierung von PEP wurde diese Technik für die Templates verwendet.PEP© ¡ ¢¡© Es wäre nicht sinnvoll, bei der Formulierung der Templates die jeweiligen Zielsprachen-Dokument<strong>ein</strong> <strong>ein</strong>zelne Textblöcke zu zerteilen <strong>und</strong> in <strong>ein</strong>e in XML formulierte Regelsprache<strong>ein</strong>zufügen. Stattdessen werden in die Dokumente Platzhalter in Gestalt der bereits vorgestellten generischenAusdrücke <strong>ein</strong>gefügt, die auf <strong>ein</strong>zufügende Inhalte verweisen.Ein solches Template sieht z.B. so aus wie das in Abbildung 5.11Die Sprache besteht aus folgenden Komponenten:Text Beliebiger Text, kann generische Ausdrücke enthalten.Generischer Ausdruck Entspricht den in dieser Arbeit <strong>ein</strong>geführten generischen Ausdrücken<strong>und</strong> hat die Form @[OBJECT(””)].Die Referenz verweist auf den Wert <strong>ein</strong>es ID-Attributes im <strong>Layout</strong>baum.5.3.2. Prozessoren mit mehreren AusprägungenFür manche Aufgabenstellungen reicht es nicht aus, wenn es nur <strong>ein</strong>en <strong>ein</strong>zigen Prozessor dafür gibt.Betrachtet man zum Beispiel die Übersetzung der generischen Ausdrücke in Zielsprachen-Äquivalente,so fällt auf, daß es nicht nur <strong>ein</strong>e <strong>ein</strong>zige mögliche Übersetzung gibt, sondern für jede Zielsprache68

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!