Kapitel 3 : Visuelle Programmiersprache
Eine visuelle Programmiersprache (Visual Programming System, VPL oder VPS) oder Blockcodierung ist eine Programmiersprache, die es Benutzern ermöglicht, Programme zu entwickeln, indem Programmteile grafisch und nicht textuell bearbeitet werden. basieren auf dem Konzept von "Quadern und Pfeilen", bei denen Boxen oder andere Bildschirmelemente als Elemente betrachtet und durch Pfeile, Linien oder Bögen verbunden sind, die Beziehungen darstellen.
Je nach Art und Ebene des verwendeten visuellen Ausdrucks können VPLs weiter unterteilt werden in symbolbasierte Sprachen, formularbasierte Sprachen und Diagrammsprachen. Visuelle Programmierumgebungen stellen grafische oder ikonografische Elemente zur Verfügung, die Benutzer in Übereinstimmung mit einer bestimmten räumlichen Grammatik interaktiv für die Programmerstellung bearbeiten können.
VPLs wurden entwickelt, um Anfängern den Zugang zum Programmieren zu erleichtern und Programmierer auf drei verschiedenen Ebenen zu unterstützen.
Syntax: VPLs verwenden Symbole/Blöcke, Formulare und Diagramme, um die Möglichkeit syntaktischer Fehler zu verringern oder zu eliminieren und so die Anordnung von Programmierprimitiven in wohlgeformten Programmen zu erleichtern.
VPLs können Mechanismen enthalten, um die Bedeutung von Programmierprimitiven zu enthüllen. Dazu könnten Dokumentationsfunktionen gehören, die in die Hilferoutinen der Programmiersprachen integriert sind.
VPLs erleichtern die Untersuchung, was Programme in bestimmten Umgebungen bedeuten. Diese Unterstützungsstufe ermöglicht es Benutzern, von VPL erstellte Artefakte in einen bestimmten Zustand zu versetzen, um die Reaktion des Programms auf diesen Zustand zu untersuchen. In AgentSheets oder AgentCubes können Benutzer Spiele oder Simulationen in einen bestimmten Zustand versetzen, um zu beobachten, wie ein Programm reagieren könnte. Benutzer der Programmiersprache Thymio können den Zustand eines Roboters manipulieren, um seine Reaktion zu sehen, d. h. welche Sensoren aktiviert werden.
Gegenwärtig wird versucht, die visuelle Programmiertechnik mit Datenfluss-Programmiersprachen zu verknüpfen, um entweder sofortigen Zugriff auf den Programmstatus zu haben, was zu Online-Debugging führt, oder um Programme automatisch zu generieren und zu beschreiben. Dataflow-Sprachen erlauben auch die automatische Parallelisierung, die in Zukunft zu einer der schwierigsten Programmieraufgaben werden dürfte.
Die Sprachen Visual Basic, Visual C#, Visual J# usw. der Microsoft Visual Studio IDE sind keine visuellen Programmiersprachen: Die Darstellung von Algorithmen usw. ist textuell, trotz der ausgeklügelten Benutzeroberfläche der IDE zum Bearbeiten und Debuggen. Ähnliche Überlegungen gelten für die meisten anderen Plattformen für die schnelle Anwendungsentwicklung, die normalerweise einen Formulardesigner bereitstellen und zusätzlich grafische Werkzeuge bereitstellen können, um den Kontrollfluss und die Datenabhängigkeiten darzustellen (aber nicht anzugeben).
Graphgrammatiken können verwendet werden, um Parser für visuelle Programmiersprachen zu erstellen.
Die folgende Liste enthält prominente visuelle Programmiersprachen.
AgentCubes, Computational Thinking Instrumente für 3D- und 2D-Spiel- und Simulationsdesign.
AgentSheets, eine Plattform für die Entwicklung von Spielen und Computational Science.
Alice ist eine objektorientierte Programmiersprache für 3D-Umgebungen.
Analytica, für den Aufbau und die Bewertung quantitativer Modelle zur Entscheidungs- und Risikoanalyse.
App Inventor for Android basiert auf Blockly und Kawa und ist ein Tool zum Entwerfen von Android-Anwendungen.
Blockly ist eine clientseitige JavaScript-Bibliothek zur Erstellung von blockbasierten visuellen Programmiersprachen (VPLs) und Editoren. Blockly wird häufig auf Scratch verwendet.
Bubble, für die Entwicklung von Web-Apps, die für die Produktion bereit sind.
Catrobat ist eine blockbasierte Programmiersprache für Animationen, Anwendungen und Spiele.
Etoys wurde von Alan Kay bei Disney entwickelt, um konstruktivistisches Lernen zu unterstützen, wobei Seymour Papert und die Programmiersprache Logo als Einflüsse dienten.
Flowcode ist eine Windows-kompatible visuelle Programmierumgebung für eingebettete Mikrocontroller.
Flowgorithm generiert ausführbare Flussdiagramme, die in mehrere Sprachen übersetzt werden können.
Hopscotch ist eine iPad-Anwendung und grafische Programmiersprache für die Entwicklung von Touchscreen-zentrierten mobilen Anwendungen.
Kodu, eine grafische Programmierumgebung für Logo.
Kojo ist eine Programmiersprache, eine integrierte Entwicklungsumgebung (IDE) und eine Lernumgebung.
mBlock, eine Scratch-Erweiterung für Arduino-Hardware-Schnittstellen. Erstellt von Makeblock.
Open Roberta, die Online-Programmierumgebung des Fraunhofer IAIS für Jugendliche.
Die visuelle Programmiersprache Pencil Code konzentriert sich auf das Skizzieren mit einem Bleistift.
Raptor ist ein USAF-Tool zum Entwerfen von ausführbaren Flussdiagrammen.
Scratch des MIT ist eine Programmiersprache, die für K-12-Schüler und außerschulische Aktivitäten entwickelt wurde.
ScratchJr ist eine Version von Scratch, die sich hauptsächlich an ein jüngeres Publikum (5-7-jährige Kinder) richtet.
Schnappen! ist eine browserbasierte Neuimplementierung der BYOB- und Scratch-Erweiterung, die erstklassige Prozeduren und Listen bietet. Wird für den Unterricht an der UC Berkeley verwendet.
Stagecast Creator ist eine Java-basierte Bildungsplattform.
StarLogo ist eine agentenbasierte Simulationssprache, die am MIT Media Lab von Mitchel Resnick, Eric Klopfer und anderen entwickelt wurde. Eine Modifikation der Programmiersprache Logo (ein Dialekt von Lisp).
ToonTalk, eine Methode zum Programmieren von Kindern.
Visual Logic, ein Programm zur Erstellung von ausführbaren Flussdiagrammen.
VIPLE ist die Visual IoT/Robotics Programmierumgebung
AudioMulch ist eine auf Audiosignalfluss basierende Umgebung für die Klang- und Musikkomposition.
Bidule ist eine Umgebung aus modularen Knoten und Patchkabeln für die Erstellung von interaktiver Computermusik und Multimedia (Windows, MacOS).
Blender (Software), ein Open-Source-3D-Grafikprogramm, enthält Knotendiagramme zum Erstellen von Shadern, Die grafische Funktionssprache Cameleon
Die von Clickteam entwickelten Games Factory/Multimedia-Fusionsumgebungen für die grafische Entwicklung von Spielen.
Dynamo, eine Autodesk Revit-Schnittstelle für die generative Modellierung
Filter Forge Node-basierte Filtergenerierung für die Bildverarbeitung.
Houdini ist eine Software für visuelle Effekte, Modellierung und Animation.
Bentley Systems hat das parametrische CAD-Programm GenerativeComponents entwickelt.
Grasshopper 3D ist eine Schnittstelle für die generative Modellierung in Rhinoceros 3D.
Isadora ist eine proprietäre grafische Programmierumgebung für Mac OS X und Microsoft Windows, die sich auf die digitale Videomodifikation in Echtzeit konzentriert.
Kyma (Sound Design Language) ist eine visuelle Programmiersprache, die von Musikern, Forschern und Sounddesignern für das Sounddesign verwendet wird.
Mama (Software) ist eine Programmiersprache und integrierte Entwicklungsumgebung (IDE) zum Erstellen von 3D-Animationen und Spielen.
Max (Software), Umgebung für die visuelle Programmierung von interaktiven Echtzeit-Musik- und Multimedia-Anwendungen
Max/MSP
Reine Daten
NATO.0+55+3D
Nodal ist eine Anwendung zum Komponieren von Musik, die auf knotenbasierter generativer Programmierung basiert.
The Foundry's Nuke ist ein objektorientiertes visuelles Programmierwerkzeug für das Compositing visueller Effekte, das auf Tcl, Python und Blink-Skript basiert.
OpenMusic ist eine visuelle Programmiersprache für Anwendungen zur Musikproduktion (basierend auf dem Common Lisp Object System (CLOS)) und mobile Anwendungen.
Pure Data (Pd) ist eine grafische Programmiersprache, die für die Erstellung von interaktiver Computermusik und Multimedia-Kompositionen entwickelt wurde.
Quartz Composer ist eine grafische Datenverarbeitungs- und Rendering-Sprache (macOS)
Reaktor von Native Instruments ist eine DSP- und MIDI-Verarbeitungsprogrammiersprache.
Scala Multimedia Authoring Suite und umfassendes Multimedia-System für Windows und AmigaOS
Softimage mit interaktiver Kreativumgebung (ICE).
SynthEdit ist ein VPL-basiertes Synthesizer-Building-Tool.
TouchDesigner, eine visuelle Programmiersprache für Multimedia-Inhalte in Echtzeit
Die Middleware Virtools wird verwendet, um interaktive 3D-Erlebnisse zu generieren.
VVVV ist ein Allzweck-Toolkit mit besonderem Schwerpunkt auf Echtzeit-Videosynthese und der Entwicklung massiver Medienumgebungen mit physischen Schnittstellen, Echtzeit-Motion-Grafiken, Audio und Video.
Visuelle Programmierumgebung WireFusion für die Entwicklung interaktiver 3D-Webpräsentationen
In Babylon.js steht ein Knotenmaterial-Editor zum Erstellen von Shadern, prozeduralen Texturen, Partikelsystemen und Nachbearbeitungseffekten zur Verfügung.
Blender Engine für die Spieleentwicklung (Grafischer Logikeditor)
Clickteam SARL hat Clickteam Fusion entwickelt, eine 2D-Spieleproduktionssoftware mit einem Event-Editor-System, das früher als Klik n' Play, The Games Factory und Multimedia Fusion 2 bekannt war.
Construct 2-3 von Scirra Ltd. sind HTML5-basierte 2D-Spieleeditoren.
Construct Classic ist die...