Automatisierte Compilergenerierung mit VCC aus AtoCC Michael Hielscher IIm06
Einführung Compilerbau bedeutet: Herstellung eines Programms (Compiler) zur Übersetzung (ST) 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 ST 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 ST - 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 ST Compilers in eine ausführbare Datei Videotext Datei Ausgabe Datei/Console
Ergebnis Test des ST 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