Visuelle Programmiersprachen


Prof. Dr. Andy Schürr

email: schuerr@informatik.unibw-muenchen.de

Institut für Softwaretechnologie
Fakultät für Informatik
Universität der Bundeswehr München
D-85577 Neubiberg


Vorlesung im Wintertrimester 2000 an der Universität der Bundeswehr München


Visuelle Sprachen (VLs) nehmen einen immer breiteren Raum bei Entwurf und Realisierung von Software ein. Ihre Anwendungsbereiche reichen von der Formulierung von "ad hoc" Anfragen an Datenbanken über die Programmierung von Simulationen bis hin zur Steuerung verfahrenstechnischer Prozesse. In der Vorlesung werden typische Vertreter verschiedener Klassen von VLs sowohl theoretisch als auch praktisch (durch Systemvorführungen und Videos) vorgestellt. Zudem werden verschiedene Ansätze zur Definition von Syntax und Semantik von VLs und zum Bau der entsprechenden Programmierumgebungen diskutiert. In den begleitenden Übungen wird der Vorlesungsstoff durch den Umgang mit verschiedenen VL-Programmierumgebungen und den schrittweisen Bau eigener VL-Werkzeuge vertieft.

 


Unterlagen zur Vorlesung

Diese Materialien findet man auf der Seite der aktuellen Systempräsentationen WT1999

<a data-cke-saved-href="http://www.unibw.de/inf2/Lehre/WT01/VL/" href="http://www.unibw.de/inf2/Lehre/WT01/VL/" "="" target="_top">Die Vorlesung wurde bereits im letzten Jahr gehalten. Die Folien zu den damals mit großem Erfolg durchgeführten Systempräsentationen und die zugehörigen (zum großen Teil hervorragenden) Ausarbeitungen finden Sie hier.


Systempräsentationen WT2000

Legobasierte Programmiersprachen für Kinder:

    • ToonTalk: eine kommerzielle Programmierumgebung für Kinder, die auf dem Metaphor der Legowelten aufbaut. Programme werden mit Hilfe von Marty (einem Marsianer), Dusty (einem Staubsauger) und einigen weiteren Figuren durch "Programming-by-Example" erstellt. Die Umgebung steht für Macs und Windows zur Verfügung.


    • LEGO Mindstorms: ein Gemeinschaftsprodukt von Lego und dem Massachusetts Institute of Technology (MIT). Das Mindstorms System dient dem Design, Bau und der Programmierung eines Roboters, welcher aus Lego-Standardteilen sowie Sensoren und Motoren zusammengesetzt wird. Kern des Systems bildet ein programmierbarer Microkontroller, der RCX, welcher von einem PC aus über eine Infrarotschnittstelle programmiert wird. Mittels einer visuellen Programmiersprache, dem RCX.Code, kann der Roboter auf seine Verhaltensweise gegenüber Signalen aus der Umwelt programmiert werden.

Datenflußprogrammierung:

    • LabVIEW: die erfolgreichste kommerzielle Datenflußprogrammiersprache, die zur Datenauswertung und zur Programmierierung von Meßständen, aber auch zur Realisierung eingebetteter Realzeitsysteme eingesetzt wird. Die LabVIEW-Umgebung wird kurz in der Vorlesung (mit einem Video) vorgestellt. LabVIEW steht für alle gängigen Plattformen zur Verfügung (Windows, Mac, Unix).


    • Regis (Darwin): es handelt sich um keine echte visuelle Programmierumgebung, sondern "nur" um einen grafischen Editor, der die Verteilung bereits erstellter C++ Unterprogramme unterstützt (Uni-Produkt). Diese Unterprogramme kommunizieren über Datenflußkanäle miteinander. Das Kernstück von Regis steht als C++ Quelle zur Verfügung, der grafische Editor ist in Java geschrieben.

  • Bearbeiter: noch keine; Termin: 9.3. 2000

Simulationswerkzeuge:

    • Simul8: eine icon-basierte Simulationssprache, mit der Produktionsabläufe nachgebildet, getestet und optimiert werden

  • können. Für die Simulation stehen Verteilungen verschiedenster Art zur Verfügung, um Zufälligkeiten zu generieren.
    Bearbeiter: Sven Matznick, Alexander Bouillon; Termin: 9.3. 2000
    Vortragsfolien: Simul8.ppt; Ausarbeitung: Simul8.pdf; Programm: Simul8-Beispiel.s8

Tabellenkalkulation (Spreadsheets):

    • Forms/3: eine auf dem Prinzip der Spreadsheets basierende Programmiersprache (Uni-Produkt). Sie eignet sich nicht nur für die Erstellung von Tabellenkalkulationen, sondern auch für die Programmierung von Grafiken. Die Umgebung steht für HP und Sun Rechner zur Verfügung.

Visualisierungswerkzeuge:

    • CarCAD: eine semikommerzielle CAD- (Computer Added Design) Entwicklungsumgebung zum Erstellen von Automodellen auf Polygonbasis, im speziellen zur Integration in Electronic Arts "Need for Speed" Teil 3/4. Des weiteren wird ein kurzer Überblick über den (offiziellen)Nfs Wizard gegeben, der die Teildaten (Texturen, Polygone, Sound, technische Daten ..) des entsprechenden Autos verwaltet.

    • CollageSystem: eine Programmfamilie zur Bildgenerierung und -animation. Im Gegensatz zu L-studio werden hier nicht L-Systeme, sondern sogenannte Collagegrammatiken - eine Spielart der in der Vorlesung vorgestellten Graphgrammatiken - eingesetzt. Das System steht für Solaris (Sun Unix) und Linux zur Verfügung.


    • L-studio: eine mächtige Umgebung zur regelbasierten Modellierung von Pflanzen mit Schwerpunkt auf Visualisierung (ihres Wachstums) und Bildgenerierung. Der zugrundeliegende Formalismus sind sogenannte Lindenmeyer-Systeme (L-Systeme), eine Art kontextfreier Grammatiken, deren generierte Sätze als Vorschriften zur Erzeugung von Bildern interpretiert werden. Die Umgebung steht für Windows zur Verfügung.


    • TREEBAG: ein weiteres Bildgenerierungswerkzeug, das baumerzeugende kontextfreie Grammatiken und Baumtransformationen als Formalismus einsetzt. Das Werkzeug ist in Java für JDK 1.1 geschrieben und sollte deshalb sowohl auf Unix- als auch auf Windows-Plattformen laufen.

  • Bearbeiter: noch keine; Termin: 29.3. 2000;

Regelbasierte Programmierung:

    • Stagecast: eine kommerzielle regelbasierte Programmierumgebung für Kinder, die die einfache Programmierung interaktiver Computerspiele und Simulationen unterstützt. Einfache Regeln können durch "Programming-by-Example" erstellt werden. Das System steht für Windows (und Mac) zur Verfügung.


    • FUJABA: eine Programmierumgebung, die den grafischen Entwurf von Klassenhierarchien mit UML, die Programmierung mit Kontrollflußgraphen (Aktivitätsdiagramme von UML) mit der Erstellung von Graphersetzungsregeln kombiniert (Uni-Produkt). Die Umgebung besteht aus einem grafischen Editor, einem "Reverse Engineering Tool" und einem Übersetzer nach Java und ist selbst in Java geschrieben.

    • Bearbeiter: Haidalla Aflwatt, Angelo Beck; Termin: 30.3. 2000;
      Vortragsfolien: Fujaba.ppt; Ausarbeitung: Fujaba.pdf; Programm: NichtVerfügbar.xxx

    • AGG: eine Programmierumgebung, die das Programmieren mit Graphersetzungsregeln und Java unterstützt (Uni-Produkt). Die Umgebung besteht aus einem grafischen Editor und einem Interpreter und ist in Java geschrieben.