Automatisierte Compilergenerierung mit VCC aus AtoCC

Slides:



Advertisements
Ähnliche Präsentationen
Anzahl der ausgefüllten und eingesandten Fragebögen: 211
Advertisements

Handelskalkulation Inhaltsverzeichnis
Die Schulkonsole für Lehrerinnen und Lehrer
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Einführung in die Informatik: Programmierung und Software-Entwicklung
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Telefonnummer.
Trimino zum Kopf- oder halbschriftlichen Rechnen
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
= = = = 47 = 47 = 48 = =
Statistiken und Tabellen
Parser generieren Yet Another Compiler – Compiler YACC.
IMS Universität Stuttgart 1 Einführung in XML Hannah Kermes HS: Elektronische Wörterbücher Do,
Rechneraufbau & Rechnerstrukturen, Folie 2.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 2.
Internet facts 2006-I Graphiken zu dem Berichtsband AGOF e.V. September 2006.
Internet facts 2008-II Graphiken zu dem Berichtsband AGOF e.V. September 2008.
Internet facts 2006-II Graphiken zu dem Berichtsband AGOF e.V. November 2006.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Differentielles Paar UIN rds gm UIN
Prof. Dr. Bernhard Wasmayr
Studienverlauf im Ausländerstudium
Prof. Dr. Bernhard Wasmayr VWL 2. Semester
Heute: Scherenzange zeichnen
AWA 2007 Natur und Umwelt Natürlich Leben
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
1. 2 Schreibprojekt Zeitung 3 Überblick 1. Vorstellung ComputerLernWerkstatt 2. Schreibprojekt: Zeitung 2.1 Konzeption des Kurses 2.2 Projektverlauf.
Prof. Dr. Günter Gerhardinger Soziale Arbeit mit Einzelnen und Familien Übersicht über die Lehrveranstaltung Grundlegende Bestimmungsfaktoren der Praxis.
20:00.
„Küsse deine Freunde“ – FlexKom-App teilen
Zusatzfolien zu B-Bäumen
AGOF facts & figures: Branchenpotenziale im Internet Q4 2013: Entertainment Basis: internet facts / mobile facts 2013-II.
WARUM IST DAS NEUE ADR PROGRAMM BESSER? 153%Mehrwert 228%Mehrwert Es ist einfach noch RENTABLER für Sie! Wenn Sie derzeit einen ADP Rabatt von 10% erhalten,
Eine Einführung in die CD-ROM
GBI Genios Wiso wiso bietet Ihnen das umfassendste Angebot deutsch- und englischsprachiger Literatur für die Wirtschafts- und Sozialwissenschaften. Wir.
Dokumentation der Umfrage
für Weihnachten oder als Tischdekoration für das ganze Jahr
Wir üben die Malsätzchen
Syntaxanalyse Bottom-Up und LR(0)
Addieren und Subtrahieren von Dezimalzahlen
HORIZONT 1 XINFO ® Das IT - Informationssystem HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Der Ablauf eines Clear Rex Klärzyklus
PROCAM Score Alter (Jahre)
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Geometrische Aufgaben
Das ist die Geschichte eines kleinen Jungen aus der Schweiz.
Symmetrische Blockchiffren DES – der Data Encryption Standard
PARTENARIAT ÉDUCATIF GRUNDTVIG PARTENARIAT ÉDUCATIF GRUNDTVIG REPERES KULTURELLER ZUSAMMENHALT UND AUSDEHNUNG DER IDEEN AUF EUROPÄISCHEM.
Zahlentheorie und Zahlenspiele Hartmut Menzer, Ingo Althöfer ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Sachbezugswerte 2007 (SV-Entgeltverordnung) Sachbezugswerte für freie Verpflegung FrühstückMittagessenAbendessen 1,50 2,67 Monatlicher Wert Verpflegung.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Zusammengestellt von OE3DSB
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Technische Frage Technische Frage Bitte löse die folgende Gleichung:
Unternehmensbewertung Thomas Hering ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List of Figures Tabellenübersicht.
Forschungsprojekt Statistik 2013 „Jugend zählt“ – Folie 1 Statistik 2013 „Jugend zählt“: Daten zur Arbeit mit Kindern und Jugendlichen.
Bildergalerie PRESEASON CAMP Juni 2014 Romanshorn Get ready for the Season!
Es war einmal ein Haus
Folie Einzelauswertung der Gemeindedaten
Berechenbarkeit Klaus Becker Berechenbarkeit.
Datum:17. Dezember 2014 Thema:IFRS Update zum Jahresende – die Neuerungen im Überblick Referent:Eberhard Grötzner, EMA ® Anlass:12. Arbeitskreis Internationale.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Wie.
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
 Präsentation transkript:

Automatisierte Compilergenerierung mit VCC aus AtoCC Michael Hielscher IIm06

Einführung Compilerbau bedeutet: Herstellung eines Programms (Compiler) zur Übersetzung (ST) einer Quellsprache S in eine Zielsprache T. Automatisierte Compiler-Konstruktion bedeutet: Ein sog. compiler compiler (z.B. VCC) nimmt die Beschreibungen von S und T sowie die jeweiligen Entsprechungen und erzeugt den ST Compiler. Dies soll hier vorgeführt werden am Bsp.: Filtern von Informationen aus dem Börsenumfeld.

Einführung Börsendaten werden im Videotext angezeigt Wir suchen uns die für uns gerade wichtigen Kurse heraus. Könnte dies nicht auch der Rechner für uns tun?

Zielstellung Unser Ziel: Börsendaten aus dem Videotext auslesen, wichtige Informationen herausfiltern und verarbeiten. Ausgabe soll eine Liste der Wertpapiere und ihre Entwicklung in Prozent (z.B.: Siemens +2,5%) sein. Technische Voraussetzungen: TV-Karte im Rechner um Videotext in den Rechner zu bekommen Empfang eines TV-Senders wie etwa ARD, N-TV…

Zielstellung 423 ARD/ZDF So 07.11.99 16:15:49 Frankfurter Börse 1/5 Deutsche Aktien 05.11.99 18:22:00 Kassa Vortag AAA......... 6.75 6.75 6.75 Achterbahn.. 89.00 91.00 92.00 Agfa........ 18.40 18.55 18.62 AGFB........ 11.90 11.92 11.85 Akzo Nobel.. 180.00 180.00 180.00 Albingia VZ. 658.00 658.00 658.00 Alcatel SEL. 155.00 155.00 156.00 Allianz Leb. 505.00 505.00 501.00 Allweiler VZ 200.00 200.00 200.00 Alno........ 8.60 8.60 8.50 Alsen....... 21.51 21.51 21.51 AMB INH..... 80.00 79.50 79.00 AM Leben.... 280.00 280.00 280.00 AM Versich.. 203.00 203.00 203.00 Andreae-N.Z. 28.50 28.50 28.50 Asea Brown.. 259.00 259.00 248.00 ATB Antrieb. 27.20 27.20 27.20 Audi........ 69.00 69.00 68.00 Autania..... 8.05 8.05 8.00 Quelle: vwd >> 423 ARD/ZDF So 07.11.99 16:15:55 Frankfurter Börse 2/5 Deutsche Aktien 05.11.99 18:22:08 Kassa Vortag AXA Col.VZ.. 86.10 86.00 86.20 Babcock-Bors 40.00 39.50 38.50 Babcock-BSH. 3.29 3.29 3.30 Bad.Wuert.Bk 34.50 34.50 34.50 Barmag...... 15.50 15.30 15.40 Balcke-Duerr 10.70 10.70 10.60 BBS......... 20.00 20.00 20.50 Benz, Rolf.. 20.00 20.00 20.00 Berl.Freiver 23.45 23.40 23.60 Berlin Hyp.. 32.00 32.00 32.00 Berl. Kindl. 200.00 200.00 200.00 Bertelsm.Gen 224.60 224.60 224.70 BHS tabletop 8.90 8.90 8.90 Bijou Brig.. 25.60 25.70 25.48 Binding ST.. 202.00 202.00 202.00 Blaue Quel.. 440.00 440.00 440.00 BMW VZ...... 13.95 13.75 13.76 Boss,Hugo ST 106.00 106.00 109.00 Boss,Hugo VZ 128.50 128.40 128.75 Quelle: vwd >> Ergebnis: Videotext in Textdatei speichern Wir wollen die % Differenz berechnen und uns für jede Aktie ausgeben lassen – der Rest interessiert uns nicht (wie Quelle, Seite, Sender…)

Umsetzung Anhand des vorliegenden Formats (automatisch erstellte Video-Text-Datei) müssen wir eine formale Grammatik entwickeln. Was war gleich noch mal eine Grammatik? Ein Beispiel: Artikel Subjekt Verb Adjektiv Satzzeichen Der Hund bellt laut.  ein gültiger Satz Hund laut der . bellt  kein gültiger Satz  Eine Grammatik ist ein Regelwerk und beschreibt systematisch den Aufbau einer bestimmten Sprache.

Formale Grammatik für S 423 ARD/ZDF So 07.11.99 16:15:49 Frankfurter Börse 1/5 Deutsche Aktien 05.11.99 18:22:00 Kassa Vortag AAA......... 6.75 6.75 6.75 Achterbahn.. 89.00 91.00 92.00 Agfa........ 18.40 18.55 18.62 AGFB........ 11.90 11.92 11.85 Akzo Nobel.. 180.00 180.00 180.00 Albingia VZ. 658.00 658.00 658.00 Alcatel SEL. 155.00 155.00 156.00 Allianz Leb. 505.00 505.00 501.00 Allweiler VZ 200.00 200.00 200.00 Alno........ 8.60 8.60 8.50 Alsen....... 21.51 21.51 21.51 AMB INH..... 80.00 79.50 79.00 AM Leben.... 280.00 280.00 280.00 AM Versich.. 203.00 203.00 203.00 Andreae-N.Z. 28.50 28.50 28.50 Asea Brown.. 259.00 259.00 248.00 ATB Antrieb. 27.20 27.20 27.20 Audi........ 69.00 69.00 68.00 Autania..... 8.05 8.05 8.00 Quelle: vwd >> Wir wollen eine Grammatik für unsere Quellsprache S (VideoText-Daten in Form einer Textdatei) herstellen. Hierfür müssen wir die Struktur des Dokuments analysieren. Dies kann mitunter sehr schwierig sein! Versuchen wir es mal 

Formale Grammatik für S 423 ARD/ZDF So 07.11.99 16:15:49 Frankfurter Börse 1/5 Deutsche Aktien 05.11.99 18:22:00 Kassa Vortag AAA......... 6.75 6.75 6.75 Achterbahn.. 89.00 91.00 92.00 Agfa........ 18.40 18.55 18.62 AGFB........ 11.90 11.92 11.85 Akzo Nobel.. 180.00 180.00 180.00 Albingia VZ. 658.00 658.00 658.00 Alcatel SEL. 155.00 155.00 156.00 Allianz Leb. 505.00 505.00 501.00 Allweiler VZ 200.00 200.00 200.00 Alno........ 8.60 8.60 8.50 Alsen....... 21.51 21.51 21.51 AMB INH..... 80.00 79.50 79.00 AM Leben.... 280.00 280.00 280.00 AM Versich.. 203.00 203.00 203.00 Andreae-N.Z. 28.50 28.50 28.50 Asea Brown.. 259.00 259.00 248.00 ATB Antrieb. 27.20 27.20 27.20 Audi........ 69.00 69.00 68.00 Autania..... 8.05 8.05 8.00 Quelle: vwd >> Wir wollen eine Grammatik für unsere Quellsprache S (VideoText-Daten in Form einer Textdatei) herstellen. Hierfür müssen wir die Struktur des Dokuments analysieren. Dies kann mitunter sehr schwierig sein! Versuchen wir es mal  Seitennummer

Formale Grammatik für S 423 ARD/ZDF So 07.11.99 16:15:49 Frankfurter Börse 1/5 Deutsche Aktien 05.11.99 18:22:00 Kassa Vortag AAA......... 6.75 6.75 6.75 Achterbahn.. 89.00 91.00 92.00 Agfa........ 18.40 18.55 18.62 AGFB........ 11.90 11.92 11.85 Akzo Nobel.. 180.00 180.00 180.00 Albingia VZ. 658.00 658.00 658.00 Alcatel SEL. 155.00 155.00 156.00 Allianz Leb. 505.00 505.00 501.00 Allweiler VZ 200.00 200.00 200.00 Alno........ 8.60 8.60 8.50 Alsen....... 21.51 21.51 21.51 AMB INH..... 80.00 79.50 79.00 AM Leben.... 280.00 280.00 280.00 AM Versich.. 203.00 203.00 203.00 Andreae-N.Z. 28.50 28.50 28.50 Asea Brown.. 259.00 259.00 248.00 ATB Antrieb. 27.20 27.20 27.20 Audi........ 69.00 69.00 68.00 Autania..... 8.05 8.05 8.00 Quelle: vwd >> Wir wollen eine Grammatik für unsere Quellsprache S (VideoText-Daten in Form einer Textdatei) herstellen. Hierfür müssen wir die Struktur des Dokuments analysieren. Dies kann mitunter sehr schwierig sein! Versuchen wir es mal  Sender

Formale Grammatik für S 423 ARD/ZDF So 07.11.99 16:15:49 Frankfurter Börse 1/5 Deutsche Aktien 05.11.99 18:22:00 Kassa Vortag AAA......... 6.75 6.75 6.75 Achterbahn.. 89.00 91.00 92.00 Agfa........ 18.40 18.55 18.62 AGFB........ 11.90 11.92 11.85 Akzo Nobel.. 180.00 180.00 180.00 Albingia VZ. 658.00 658.00 658.00 Alcatel SEL. 155.00 155.00 156.00 Allianz Leb. 505.00 505.00 501.00 Allweiler VZ 200.00 200.00 200.00 Alno........ 8.60 8.60 8.50 Alsen....... 21.51 21.51 21.51 AMB INH..... 80.00 79.50 79.00 AM Leben.... 280.00 280.00 280.00 AM Versich.. 203.00 203.00 203.00 Andreae-N.Z. 28.50 28.50 28.50 Asea Brown.. 259.00 259.00 248.00 ATB Antrieb. 27.20 27.20 27.20 Audi........ 69.00 69.00 68.00 Autania..... 8.05 8.05 8.00 Quelle: vwd >> Wir wollen eine Grammatik für unsere Quellsprache S (VideoText-Daten in Form einer Textdatei) herstellen. Hierfür müssen wir die Struktur des Dokuments analysieren. Dies kann mitunter sehr schwierig sein! Versuchen wir es mal  Wochentag

Formale Grammatik für S 423 ARD/ZDF So 07.11.99 16:15:49 Frankfurter Börse 1/5 Deutsche Aktien 05.11.99 18:22:00 Kassa Vortag AAA......... 6.75 6.75 6.75 Achterbahn.. 89.00 91.00 92.00 Agfa........ 18.40 18.55 18.62 AGFB........ 11.90 11.92 11.85 Akzo Nobel.. 180.00 180.00 180.00 Albingia VZ. 658.00 658.00 658.00 Alcatel SEL. 155.00 155.00 156.00 Allianz Leb. 505.00 505.00 501.00 Allweiler VZ 200.00 200.00 200.00 Alno........ 8.60 8.60 8.50 Alsen....... 21.51 21.51 21.51 AMB INH..... 80.00 79.50 79.00 AM Leben.... 280.00 280.00 280.00 AM Versich.. 203.00 203.00 203.00 Andreae-N.Z. 28.50 28.50 28.50 Asea Brown.. 259.00 259.00 248.00 ATB Antrieb. 27.20 27.20 27.20 Audi........ 69.00 69.00 68.00 Autania..... 8.05 8.05 8.00 Quelle: vwd >> Wir wollen eine Grammatik für unsere Quellsprache S (VideoText-Daten in Form einer Textdatei) herstellen. Hierfür müssen wir die Struktur des Dokuments analysieren. Dies kann mitunter sehr schwierig sein! Versuchen wir es mal  Datum Uhrzeit

Formale Grammatik für S 423 ARD/ZDF So 07.11.99 16:15:49 Frankfurter Börse 1/5 Deutsche Aktien 05.11.99 18:22:00 Kassa Vortag AAA......... 6.75 6.75 6.75 Achterbahn.. 89.00 91.00 92.00 Agfa........ 18.40 18.55 18.62 AGFB........ 11.90 11.92 11.85 Akzo Nobel.. 180.00 180.00 180.00 Albingia VZ. 658.00 658.00 658.00 Alcatel SEL. 155.00 155.00 156.00 Allianz Leb. 505.00 505.00 501.00 Allweiler VZ 200.00 200.00 200.00 Alno........ 8.60 8.60 8.50 Alsen....... 21.51 21.51 21.51 AMB INH..... 80.00 79.50 79.00 AM Leben.... 280.00 280.00 280.00 AM Versich.. 203.00 203.00 203.00 Andreae-N.Z. 28.50 28.50 28.50 Asea Brown.. 259.00 259.00 248.00 ATB Antrieb. 27.20 27.20 27.20 Audi........ 69.00 69.00 68.00 Autania..... 8.05 8.05 8.00 Quelle: vwd >> Wir wollen eine Grammatik für unsere Quellsprache S (VideoText-Daten in Form einer Textdatei) herstellen. Hierfür müssen wir die Struktur des Dokuments analysieren. Dies kann mitunter sehr schwierig sein! Versuchen wir es mal  Datum Uhrzeit

Formale Grammatik für S 423 ARD/ZDF So 07.11.99 16:15:49 Frankfurter Börse 1/5 Deutsche Aktien 05.11.99 18:22:00 Kassa Vortag AAA......... 6.75 6.75 6.75 Achterbahn.. 89.00 91.00 92.00 Agfa........ 18.40 18.55 18.62 AGFB........ 11.90 11.92 11.85 Akzo Nobel.. 180.00 180.00 180.00 Albingia VZ. 658.00 658.00 658.00 Alcatel SEL. 155.00 155.00 156.00 Allianz Leb. 505.00 505.00 501.00 Allweiler VZ 200.00 200.00 200.00 Alno........ 8.60 8.60 8.50 Alsen....... 21.51 21.51 21.51 AMB INH..... 80.00 79.50 79.00 AM Leben.... 280.00 280.00 280.00 AM Versich.. 203.00 203.00 203.00 Andreae-N.Z. 28.50 28.50 28.50 Asea Brown.. 259.00 259.00 248.00 ATB Antrieb. 27.20 27.20 27.20 Audi........ 69.00 69.00 68.00 Autania..... 8.05 8.05 8.00 Quelle: vwd >> Nach der Analyse aller Bestandteile können wir die Struktur durch eine Grammatik abbilden: Seite  Titelzeile Ort Seitenzahl Art Tabellenkopf Werte Ende Titelzeile  Zahl Sender Tag Datum Uhrzeit …

Formale Grammatik für S 423 ARD/ZDF So 07.11.99 16:15:49 Frankfurter Börse 1/5 Deutsche Aktien 05.11.99 18:22:00 Kassa Vortag AAA......... 6.75 6.75 6.75 … Quelle: vwd >> Da wir keine Informationen aus der Titelzeile, Ort, Seite … benötigen können wir die Grammatik stark vereinfachen: Seite Text Text Text Text Datum Uhrzeit Kassa Vortag Werte Text Text Werte Werte Zeile Zeile Zeile Text Kommazahl Kommazahl Kommazahl

Formale Grammatik für S 423 ARD/ZDF So 07.11.99 16:15:49 Frankfurter Börse 1/5 Deutsche Aktien 05.11.99 18:22:00 Kassa Vortag AAA......... 6.75 6.75 6.75 … Quelle: vwd >> Da wir keine Informationen aus der Titelzeile, Ort, Seite … benötigen können wir die Grammatik stark vereinfachen: Seite Text Text Text Text Die mehrfachen Leerzeichen interessieren uns nicht! Datum Uhrzeit Kassa Vortag Werte Text Text Werte Werte Zeile Zeile Zeile Text Kommazahl Kommazahl Kommazahl

Formale Grammatik für S 423 ARD/ZDF So 07.11.99 16:15:49 Frankfurter Börse 1/5 Deutsche Aktien 05.11.99 18:22:00 Kassa Vortag AAA......... 6.75 6.75 6.75 … Quelle: vwd >> Da wir keine Informationen aus der Titelzeile, Ort, Seite … benötigen können wir die Grammatik stark vereinfachen: Seite Text Text Text Text Die mehrfachen Leerzeichen interessieren uns nicht! Datum Uhrzeit Kassa Vortag Werte Text Text Werte Werte Zeile Zeile Zeile Text Kommazahl Kommazahl Kommazahl

Formale Grammatik für S 423 ARD/ZDF So 07.11.99 16:15:49 Frankfurter Börse 1/5 Deutsche Aktien 05.11.99 18:22:00 Kassa Vortag AAA......... 6.75 6.75 6.75 … Quelle: vwd >> Da wir keine Informationen aus der Titelzeile, Ort, Seite … benötigen können wir die Grammatik stark vereinfachen: Seite Text Text Text Was ist „Text“ ?: Beliebige Zeichenketten die nicht mehr als ein Leerzeichen hintereinander besitzen. Text Datum Uhrzeit Kassa Vortag Werte Text Text Werte Werte Zeile Zeile Zeile Text Kommazahl Kommazahl Kommazahl

Entwicklung eines Compilers Wir haben jetzt eine Grammatik GS für unsere Quellsprache S (VT-Daten)  Nun soll ein Compiler erstellt werden da dies recht aufwendig ist, soll das doch bitte der Rechner selbst tun Wir müssen aber „beschreiben“ wie unsere Sprachen S und T nun genau aussehen und wie die Übersetzung erfolgen soll. Hierfür müssen wir zunächst die Arbeitsweise eines Compilers verstehen 

Der Scanner Zunächst muss der Rechner alle Bausteintypen (Kommazahl, Datum, Text,…) zuordnen. Man spricht von lexikalischer Analyse bei der die Eingabedatei in sogenannte Token zerlegt wird. Verantwortlich für diese Aufgabe ist der Scanner. VideoText Datei Scanner Tokenliste

Die Tokenliste Als Ergebnis liefert der Scanner eine Tokenliste die etwa wie folgt aussehen könnte: ( ("420 ARD/ZDF Mo 08.11.99 15:32:19" , Text) ("Frankfurter Börse", Text) ("6/6", Text) ("Neuer Markt", Text) ("08.11.99", Datum) ("15:15:00", Uhrzeit) ("Kassa", Kassa) ("Vortag", Vortag) ("Teleplan.... ", Text) ("137.10", Kommazahl) ("137.50", Kommazahl) … ) 420 ARD/ZDF Mo 08.11.99 15:32:19 Frankfurter Börse 6/6 Neuer Markt 08.11.99 15:15:00 Kassa Vortag Teleplan.... 137.10 137.10 137.50 Teles....... 32.50 31.90 34.00 TePla....... 12.65 12.90 12.85 ...

Die Tokenliste Als Ergebnis liefert der Scanner eine Tokenliste die etwa wie folgt aussehen könnte: ( ("420 ARD/ZDF Mo 08.11.99 15:32:19" , Text) ("Frankfurter Börse", Text) ("6/6", Text) ("Neuer Markt", Text) ("08.11.99", Datum) ("15:15:00", Uhrzeit) ("Kassa", Kassa) ("Vortag", Vortag) ("Teleplan.... ", Text) ("137.10", Kommazahl) ("137.50", Kommazahl) … ) 420 ARD/ZDF Mo 08.11.99 15:32:19 Frankfurter Börse 6/6 Neuer Markt 08.11.99 15:15:00 Kassa Vortag Teleplan.... 137.10 137.10 137.50 Teles....... 32.50 31.90 34.00 TePla....... 12.65 12.90 12.85 ... Betrachtet man nur die Tokenklassen (die blauen Teile) und reiht diese aneinander, entsteht die hier gezeigte Bausteinkette. Bezieht man dies wieder auf die unsere Sprache könnte man eine solche Kette auch für einen beliebigen deutschen Satz aufstellen (Artikel Subjektiv Verb usw.) Die Überprüfung ob die Bausteine in der richtigen Reihenfolge gemäß unserer Grammatik vorliegen ist also unser nächster Schritt. Bausteinkette: Text Text Text Text Datum Uhrzeit Kassa Vortag …

Der Parser Nachdem die Bausteine erkannt wurden, muss entschieden werden, ob sie auch in der richtigen Reihenfolge vorliegen  dies steht in unser Grammatik für S  Der Parser verwendet die Grammatik und prüft, ob die Elemente der Tokenliste wirklich auf unsere Sprache passen. Der Parser selbst liefert als Ausgabe: true (w  S) / false (w  S). Wird durch einen Kellerautomaten beschrieben und weist das typische Akzeptorverhalten auf! W ist dabei ein Wort der Sprache s – in unserem Fall der Inhalt einer konkreten VT-Datei.

Der Compiler Der ST - Compiler ist das Gesamtprodukt aus Scanner, Parser und Zielcodegenerierung: VideoText Datei Scanner Tokenliste Parser Ausgabe

Der Compilergenerator GS Nichtterminale Produktionsregeln Terminale Scanner Generator Parser Generator Die Terminale der Grammatik werden im Scannergenerator verwendet um die Token zu definieren. Die Nichtterminale und Produktionsregeln werden im Parsergenerator verwendet und werden praktisch 1:1 übertragen. Sehr einfache Produktionsregeln: Zahl  Ziffer Zahl | Ziffer werden teilweise bereits im Scanner abgebildet (RegExp) Die Terminale der Grammatik werden im Scanner verwendet um die wie besprochen Token zu bestimmen. Die Nichtterminale und Produktionsregeln werden im Parser verwendet und werden praktisch 1:1 übertragen. Zur Vereinfachung und aus Performancegründen, werden typischerweise sehr primitive Produktionsregeln und Nichtterminale die sich bereits mit den Schablonen (Regulären Ausdrücken) beschreiben lassen, im Scanner umgesetzt. Die Ausgabesprache T werden wir hier nicht formal durch eine Grammatik beschreiben. Während der Abarbeitung des Parsers (des Automatens) kann bei jeder erfolgreich angewendeten Produktionsregel ein Teilergebnis für die Ausgabe synthetisiert werden.

Der Compilergenerator Der Scannergenerator benötigt „Schablonen“ wie eine bestimmter Bausteintyp aussehen soll. Beispiel Kommazahl mit zwei Nachkommastellen (regulärer Ausdruck): [0-9]+\.[0-9][0-9] 121.34  0815  0.00  54.0 

Der Compilergenerator GS Nichtterminale Produktionsregeln Terminale GT Scanner Generator Parser Generator Während der Abarbeitung des Parsers (des Automatens) kann bei jeder erfolgreich angewendeten Produktionsregel ein Teilergebnis für die Ausgabe synthetisiert werden. Die „Übersetzungsaktionen“ im Parsergenerator: Die Terminale der Grammatik werden im Scanner verwendet um die wie besprochen Token zu bestimmen. Die Nichtterminale und Produktionsregeln werden im Parser verwendet und werden praktisch 1:1 übertragen. Zur Vereinfachung und aus Performancegründen, werden typischerweise sehr primitive Produktionsregeln und Nichtterminale die sich bereits mit den Schablonen (Regulären Ausdrücken) beschreiben lassen, im Scanner umgesetzt. Die Ausgabesprache T werden wir hier nicht formal durch eine Grammatik beschreiben. Während der Abarbeitung des Parsers (des Automatens) kann bei jeder erfolgreich angewendeten Produktionsregel ein Teilergebnis für die Ausgabe synthetisiert werden. Zeile Text Kommazahl Kommazahl Kommazahl Output.WriteLine ("Aktienname: " + $1);

Automatisierte Compilergenerierung mit VCC Nachdem wir nun wissen wie ein Compiler arbeitet, können wir einen „Compilergenerator“ verwenden. Ein solches Werkzeug erstellt einen Compiler aus der Grammatik GS und den Übersetzungsaktionen. Beispiele für Scanner-/Parsergeneratoren: LEX & YACC ANTLR JavaCC VCC (Visual Compiler Compiler)

Automatisierte Compilergenerierung mit VCC Warum gerade VCC? VCC wurde speziell für didaktische Zwecke entwickelt. Verlang wenig technisches Hintergrundwissen um das Werkzeug einzusetzen. Erlaubt die Generierung von Compilern in mehreren Sprachen (Java, C# .NET, Scheme) Eine Compilerdefinition wird in einer einzigen XML Datei abgelegt – einfach zu verwalten.

Automatisierte Compilergenerierung mit VCC Übertragen unserer: Bausteinnamen und Schablonen (Scanner) Grammatik (Parser)

Automatisierte Compilergenerierung mit VCC Übertragen unserer: Bausteinnamen und Schablonen (Scanner) Grammatik (Parser)

Automatisierte Compilergenerierung mit VCC Ausgabe: Zielstellung war: Eine Liste der Wertpapiere und ihre Entwicklung in Prozent (z.B.: Siemens +2,5%). Wir fügen eine „Übersetzungsaktion“ als kleines Stück Quelltext in unseren Parser ein:

Automatisierte Compilergenerierung mit VCC Berechnung über Dreisatz: Differenz in %

Ergebnis Fertiger Compiler nach einem Mausklick S  T Compiler als Programmtext in der gewählten Sprache Übersetzen des ST Compilers in eine ausführbare Datei Videotext Datei Ausgabe Datei/Console

Ergebnis Test des ST Compilers mit einer VT-Datei:

Andere Anwendungsbeispiele // Setting Variables x and y x = 200; y = 200; // some pattern illustrating // parameters, loops and other features Procedure kr(w,l) { [x,y] Kreis; [x,y] in rgb(1,1,0) Sector w/2; For i=w Step w To 359 Do [x,y] <i in blau Sector w/2; [150+x,y-100] %200 Quadrat; [200+x,y-50] { For i=1 Step 1 To l Do %100/i <i*-20 [0, 50] in rgb(1, i*1/l,0) Quadrat ; } KLX: eine durch Studenten entwickelte Programmiersprache die in PDF übersetzt werden kann

Andere Anwendungsbeispiele PL/0  Scheme Compiler DTD  VCC Compiler … Das Entwickeln einer eigener kleinern Programmiersprache ist für Studenten immer eine motivierende und spannende Aufgabe 

Vielen Dank für Ihre Aufmerksamkeit AtoCC besteht aus 5 Komponenten: AutoEdit, AutoEdit Workbook, TDiag, VCC und SchemeEdit. Weitere Informationen erhalten Sie unter: www.atocc.de Vielen Dank für Ihre Aufmerksamkeit