-
Die Erfindung betrifft ein Verfahren
und ein System zum Erzeugen eines Computerprogramms, insbesondere
eines Programms in einer höheren Programmiersprache
wie Turbo Pascal oder C. Derartige Programmiersprachen werden vielfach
als Einstiegsprogramme für
Programmieranfänger
ausgewählt.
Vielfach sind Anfänger
jedoch bereits beim Erstellen einfachster Programme in diesen Sprachen völlig überfordert.
Das anfängliche
Interesse für
die Informatik scheitert dann häufig
an der Komplexität des
Erlernens der Programmiersprache, da zu viel Zeit zum Erlernen der
Details der Programmiersprache (Syntaxregeln, Befehlscodes etc.)
verwendet werden muß.
Die Grundelemente der Informatik, die zum Umsetzten und Lösen einer
Problemstellung erforderlich sind, können dadurch vielfach nicht
mehr vermittelt werden.
-
Andererseits werden immer mehr Menschen mit
Computern und Programmiersprachen konfrontiert und benötigen deshalb
ein gewisses Grundverständnis
für informationstechnische
Vorgänge.
Dies gilt in besonderem Maße
für Menschen,
die bei der Bedienung von computergesteuerten Maschinen wie z.B.
CNC-Fräsmaschinen
gewisse programmiertechnische Kenntnisse benötigen. Es ist deshalb nötig, Interessierten
praxisnahe Informatik näherbringen
zu können,
ohne den Betroffenen hierbei einen gößeren Zeitaufwand zum Erlernen
einer Programmiersprache zumuten zu müssen.
-
Es besteht demzufolge ein erhebliches
Bedürfnis,
eine Methode zu finden, betroffenen Schülern und sowie aus- und weiterzubildenden
Personen die Grundbegriffe der Informatik zu vermitteln ohne den
Umweg über
eine ungewohnte Pro miersprache nehmen zu müssen, um hiermit die Schulung
direkt auf das Wesentliche konzentrieren zu können.
-
In Robert Sedgewick, Algorithmen
in C++, Addison-Wesley Verlag (Deutschland), 1992, ISBN 0-201-51059-6
sind grundlegende Programmtiertechniken höherer Programmiersprache am
Beispiel der Sprache C++ beschrieben.
-
In
US-A-5,875,331 ist ein Source Code Generator
beschrieben, der aus Programmierbefehlen der vierten Generation
direkt einen SourceCode in einer Sprache der dritten Generation
(Pascal, C) erstellt. Dazu enthält
er eine sogenannte "object Code generator engine", die aus objektorientierten
Befehlen der vierten Programmiersprachengeneration Einzelbefehle
der dritten Generation erzeugt.
-
Aus
US-A-5,386,508 ist ein Verfahren bekannt,
bei dem aus vorgegebenen Flussdiagrammen, die von einer Vorlage
optoelektronisch abgetastet werden direkt ein Programm-Code erstellt
wird. Die Flussdiagramm-Vorlagen müssen dabei gewissen Normen
entsprechen um automatisch erkannt zu werden.
-
Aus
US-A-4,546,435 ist ein System bekannt, in
dem auf einem Keyboard Flow-Chart-Symbole
vorgesehen sind, aus denen ein entsprechend angepaßter Computer
direkt einen Source Code erzeugt.
-
In WO-A2-98/39698 ist ein Verfahren
zum Erstellen eines einen betriebswirtschaftlichen Prozess steuerenden
Computerprogramms beschrieben, bei dem zunächst mehrere Diagramme erzeugt werden
und mit Hilfe dieser Diagramme automatisch das Computerprogramm
erzeugt wird.
-
Aus der
US-A-5,487,141 ist Entwicklungstool zum
Erstellen von Computerprogrammen in relationalen Datenbanken bekannt,
mit dem bestimmte Programmfunktionen durch eine grafische Unterstützung schnell
erzeugt werden können.
-
A1) Ersatz für Beschreibung
S. 3. Z. 10–11:
-
Der Erfindung liegt die Aufgabe zugrunde, ein
Verfahren, einen Datenträger,
auf dem ein Computerprogramm gespeichert ist und einen Computer anzugeben,
mit denen Programmablauf-Quellcodes.
-
A2) Ersatz für Beschreibung
S. 3. Z. 20 – S.
3a, Z. 15:
-
Erfindungsgemäß wird die Aufgabe gelöst durch
ein Verfahren zum Erstellen eines Programmablauf-Quellcodes (96)
mit einem Quellcode-Erzeugungsmittel (Gungem Chart, 1) in einer
wählbaren, höheren Programmiersprache,
wobei das Quellcode-Erzeugungsmittel die Erzeugung eines Flussdiagramms
(95) durch graphische Verbindung von Programmablaufs-Symbolen
(100), die Programmbefehlen der wählbaren, höheren Programmiersprache entsprechen,
an einem Anzeigegerät
(2) an hand von Verbindungspfeilen (42a, 44)
erlaubt, und weiter folgende Schritte ausführt:
-
- a) die graphischen Informationen (3b)
des Flussdiagramms (95) werden gespeichert,
- b) die logischen Informationen (3a) des Flussdiagramms
(95) werden gespeichert,
- c) an hand der logischen Informationen (3a) wird ein
dem definierten Flussdiagramm (95) entsprechender Programmablauf-Quellcode
(96) aus Programmfefehlen erzeugt, wobei
- d) die logischen Informationen (3a) mittels einer Skript-Sprache
formuliert werden,
- e) eine Skript-Bibliothek (5) eine Zuordnung zwischen
den Programmablaufs-Symbolen (100), die in Skript-Sprache
in der Skript-Bibliothek (5) gespeichert sind, und den
Programmbefehlen enthält,
und
- f) in der Skript-Bibliothek (5) neue Programmablaufs-Symbole
(100) mit weiteren Befehlen und/oder neue Variablen-Typen
der gewählten Programmiersprache
definierbar und hinzufügbar sind.
-
Erfindungsgemäß ist auch ein Datenträger vorgesehen,
auf dem ein Computerprogramm gespeichert ist, das beim Laden in
einen Computer das erfindungsgemäße Verfahren
ausführt.
Das Computerprogramm ermöglicht
es Aus der Broschüre
Nr. MCL-DS-BES-002 der Firma Wind River Systems, Alameda, CA, USA © 2000 ist
ein Computerprogramm namens BetterState bekannt, das auch im Prospekt
Nr. 045-0157-001, Release Information for BetterState Version 5.1
der Fa. Integrated Systems, Inc., Sunnyvale, CA, USA vom May 1999
sowie in einem PRNewswire-Artikel vom 2.März 1999 mit dem Titel „Integrated
Systems Inc. Releases BetterState Version 5.0" beschrieben ist.
Mit diesem Computerprogramm können
aus flowcharts und statecharts automatisch Computerprogramme in
höheren
Programmiersprachen wie C/C++ und Java erzeugt werden.
-
A1 in einer wählbaren höheren konventionellen Programmiersprache
von Anwendern mit verschiedenem Wissensstand anwenderoptimiert,
einfach, schnell und weitgehend automatisiert erstellbar sind.
-
Diese Aufgabe wird durch die in den
unabhängigen
Ansprüchen
beschriebene Erfindung gelöst.
Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche.
-
A2 die Programmablaufs-Symbole an
dem Ausgabegerät
anzuzeigen und zur Auswahl anzubieten. Die Programmablaufs-Symbole
können über ein Eingabegerät ausgewählt und über graphische
Verbindungssymbole zu einem Flussdiagramm kombiniert werden. Das
Computerprogramm bewirkt, dass die dem Flussdiagramm entsprechenden
Informationen einerseits als graphische Informationen und andererseits
als logische Informationen gespeichet werden. Die logischen Informationen
werden insbesondere als Daten in einer verketteten Liste hinterlegt,
wobei jedes Symbol als Instanz einer Symbolklasse mit mehreren,
dem Symbol zugeordneten Zusatzinformationen versehen ist und innerhalb
der verketteten Liste aufeinanderfolgende Instanzen der Symbolklassen
aufeinander verweisen. Im weiteren Verlauf bewirkt dann das Steuerungsprogramm,
dass aus den logischen Informationen (verkettete Liste) eine Abfolge
von Programmablaufsanweisungen, d. h. ein Computerprogramm als Quellcode
einer höheren
Programmiersprache erstellt wird. Zum Erzeugen des Quellcodes ist
insbesondere vorgesehen, die logischen Informationen (verkettete
Liste) anhand eines Skript-Syntaxes zu verarbeiten, in welchem die Symbole
individuell codiert und mit entsprechenden Einträgen in einer Skript-Bibliothek
verglichen werden. Die Skript-Bibliothek enthält dabei eine Zuordnung zwischen
den Symbolen im Skript-Syntax und den entsprechenden Programmbefehlen
der höheren
Programmiersprache. Die Verwendung einer verketteten (dynamischen)
Liste erlaubt es insbesondere, Veränderungen an dem zugrundeliegenden Flussdiagramm
relativ einfach in die logischen Daten (verkettete Liste) zu übernehmen,
indem die entsprechenden Verweise innerhalb der verketteten Liste
an die neuen Gegebenheiten des Flussdiagramms angepasst werden.
-
Die Erfindung beruht dabei auf der
Erkenntnis, dass es für
einen Programmieranfänger
eine erhebliche Erleichterung darstellt, wenn er zum Erlernen und
Erzeugen von Computerprogrammen in für ihn neuen Programmiersprachen
zwei Arbeitsebenen angeboten bekommt, nämlich einerseits eine leicht
zu bedienende grafische Benutzerebene, in welcher der Benutzer ein
Flussdiagramm auf Basis grafischer Programmablaufssymbole erzeugt
und andererseits eine etwas anspruchsvollere Programmierebene, in
der von dem Computerprogramm auto matisch ein dem Flussdiagramm entsprechender Quellcode
erzeugt und auf dem Bildschirm zur Anzeige gebracht wird.
-
Über
einen erfindungsgemäß speziell
angepassten Befehlscode (Skript-Sprache), durch den das Steuerungsprogramm
mit der Skript-Bibliothek zusammenwirkt, kann relativ einfach und
sehr performant eine Zuordnung zwischen den mit dem Steuerungsprogramm
erstellten graphischen Programmablaufssymbolen und den entsprechenden,
einer jeweils ausgewählten
Programmiersprache zugeordneten Programmbefehlen erfolgen.
-
Die Programmablaufssymbole können im Zuge
der Erstellung des graphischen Flussdiagramms insbesondere in mehreren
Teilschritten erfolgen, wobei innerhalb jedes Teilschrittes Abfragen und/oder
Eingaben zu den Programmablaufssymbolen entsprechenden Parametern
wie Variablennamen, Variablentyp usw. erfolgen können.
-
In einem weiteren bevorzugten Ausführungsbeispiel
bewirkt das Steuerungsprogramm eine Anzeige auf dem Ausgabegerät derart,
dass in einem ersten Teilbereich das Ausgabegerätes die graphischen Informationen
des Flussdiagramms dargestellt werden und in einem zweiten Teilbereich
des Ausgabegerätes
der Quellcode der höheren
Programmiersprache. Durch diese Maßnahme ist es insbesondere
für Personen,
die bereits Kenntnisse der höheren Programmiersprache
haben, möglich,
den automatisch erstellten Quellcode im zweiten Teilbereich zu analysieren
und nachzuvollziehen. Dadurch ergibt sich der Vorteil der Erfindung,
dass beim Erlernen der Programmiersprache der Quellcode und damit
die Programmierung des Quellcodes leichter verständlich wird und das selbständige Programmieren schneller
erfolgen kann als mit herkömmlichen
Lernmethoden. Durch die besondere Hervorhebung (z.B. mit Fettdruck
angezeigte Schlüsselwörter) oder
auch durch Leerzeilen im Quelltext kann die Lesbarkeit und die Erlernbarkeit
für den
Programmieranfänger weiter
erleichtert werden.
-
Die Benutzerfreundlichkeit des Ablaufsteuerungsprogramms,
nachfolgend auch Gungem Chart genannt, kann durch folgende Eigenschaften
des Programms weiter erhöht
werden:
-
- –Logischer
Aufbau der Menuestruktur mit großer Flexibilität
- – Übersichtliche
Menues
- – Selbsterklärende Symbolleisten
- – Ablauffähigkeit
unter Standard-Betriebssystemen wie Microsoft Windows®, Unix
oder Linux
- – Bequeme
Benutzerführung,
angelehnt an bestehende Software-Umgebungen (Fenstertechnik)
- – Soforthilfe
im Programm
-
Zur Umsetzung der graphischen Flussdiagramm-Informationen
in den Quellcode der höheren Programmiersprache
benutzt das Steuerungsablauf-Programm (Gungem Chart) eine eigene Skript-Sprache
sowie eine eigens dafür
geschaffene Skript-Bibliothek. In der Skript-Sprache sind die graphischen
Symbole in einem neuartigen Datentyp (Klasse) wiedergegeben. Dabei
wird jedem graphischen Symbol eine eigene Variable zugewiesen. In dem
Datentyp (Klasse) werden alle nötigen
Informationen zur eindeutigen Klassifizierung des Symbols gespeichert:
-
- – Absolute
Position im Dokument in Pixels bezüglich der linken oberen Ecke.
- – Symbolgröße ebenfalls
in Pixels.
- – Repräsentativer
Name der Symbolart wie beispielsweise „Entscheidung".
- – Hinterlegter
Quelltext.
- – Überschrift,
die im Dokument auf dem Symbol steht.
- – Je
vier Variablen, in denen symbolspezifische Informationen, zum Beispiel
bei einer Schleife die Iterationsanzahl, abgelegt werden können.
-
Weitere Vorteile und Details der
Erfindung werden in nachfolgenden Ausführungsbeispielen anhand der
Figuren näher
erläutert.
Es zeigen:
-
1:
eine erfindungsgemäße Systemstruktur
-
2:
symbolisch zwei Methoden des Erlernens einer Programmiersprache
-
3:
Details der erfindungsgemäßen Methode
-
4:
ein Flussdiagramm mit dem entsprechenden Quellcode
-
5:
ein Flussdiagramm, das erfindungsgemäße Verfahrensschritte zeigt
-
6:
Die Struktur eines Programmaufrufs
-
7:
ein erfindungsgemäßes Auswahlmenü
-
8:
ein Ablaufdiagramm und
-
die 9 bis 13: Bildschirmausdrucke.
-
Anhand der 2 soll zunächst nochmals erläutert werden,
wie Computerprogramme in höheren
Programmiersprachen wie Turbo Pascal oder dergleichen bisher meist
erstellt werden. Eine gestellte Aufgabe 20 wird dabei über einen
relativ aufwendigen Umweg 21, der über die höhere Programmiersprache 22 (z.B.
Turbo Pascal) führt,
gelöst.
Um zur Lösung 23 der
Aufgabe 20 zu gelangen, sind mehr oder weniger detaillierte
Kenntnisse der höheren
Programmiersprache nötig.
-
3 zeigt
bereits einige wesentliche Bestandteile des erfindungsgemäßen Verfahrens
bzw. des das Verfahren in einem Computer bewirkenden Computerprogramms
Gungem Chart 1. Es wirkt mit Befehls-Sammlungen 5a, 5b zusammen,
die jeweils bestimmten höheren
Programmiersprachen zugeordnet sind und die jeweils vom Benutzer
des Gungem Charts 1 ausgewählt, d.h. aktiviert werden
können.
Die Befehlssammlung 5a ist beispielsweise der Programmiersprache
Pascal zugeordnet, die Befehlssammlung 5b der Programmiersprache
C bzw.
-
A3) Ersatz für Beschreibung
Z. 7, Z. 22:
-
A3) dabei in einer Skript-Sprache
mit der Skript- C++.
Weitere Befehlssammlungen 5c für andere Programmiersprachen
können
ebenfalls vorgesehen sein. Gungem Chart 1 sorgt dabei dafür, dass ein
Benutzer, der eine bestimmte Aufgabe 20 lösen möchte, unabhängig von
der aktuell aktivierten höheren
Programmiersprache ein Flussdiagramm mit vorgegebenen Ablaufsymbolen,
die unabhängig
von der Programmiersprache sind, erstellen kann.
-
In den Befehlssammlungen 5a, 5b usw.
können
auf einfache Weise neue Symbole mit weiteren Befehlen oder auch
neue Variablentypen definiert und hinzugefügt hinzugefügt werden. Weiterhin sind dabei
Formatierungen, wie beispielsweise die Schlüsselwort-Hervorhebung im Quelltext
oder das korrekte Einrücken
der Quelltextzeilen, einstellbar.
-
Die Befehlsdateien 5a, 5b binden
sich automatisch in Gungem Chart 1 ein. Der Anwender wählt vor
der Erstellung eines Programms eine Befehlsdatei (Programmiersache)
für sich
aus. Von diesem Moment an, stehen ihm alle Symbole, Variablen und sonstigen
Eigenschaften der ausgewählten
Befehlsdatei zur Verfügung.
-
In 1 sind
die Befehlssammlungen 5a, 5b in einer Skript-Bibliothek 5 enthalten,
mit denen eine Ablaufsteuerung 1, welche hier durch das
Computerprogramm Gungem Chart realisiert ist, zusammenwirkt. Die
Ablaufsteuerung 1 kommuniziert Bibliothek 5. Einige
Inhalte (Syntax, Codes) der Skript-Sprache werden im folgenden genauer
erläutert:
Ein
Grundbaustein der Skript-Sprache ist ein neuer Datentyp „flow",
welcher einerseits einem graphischen Symbol zur Erstellung des Flussdiagramms entspricht
(z.B. einem Abfragesymbol für
eine Variable) und andererseits einem bzw. mehreren dem Symbol entsprechenden
programmiersprachenspezifischen Befehlscodes, die in der Skript-Bibliothek 5 enthalten
sind.
-
Durch den Datentyp „flow"
lassen sich graphische Ablaufssymbole mit dem entsprechenden Befehlscode
innerhalb der Skript-Bibliothek 5 unabhängig von den verschiedenen,
in der Bibliothek 5 enthaltenen Programmiersprachen (Pascal,
C/C++) in Zuordnung bringen. In diesem Datentyp „flow" werden alle nötigen Informationen
zur eindeutigen Umsetzung der Eigenschaften des Flussdiagramms-Symbols in einen
Quellcode-Befehl gespeichert, z.B.:
-
- – Name
der Symbolart (Entscheidung, Abfrage, Ausgabe,...)
- – Zuzuordnender
Quelltext
- – Weitere
Variablen für
symbolspezifische Informationen.
-
Das Computerprogramm Gungem Chart 1 läuft auf
einem Computer ab, der unter anderem einen Bildschirm 2,
eine Eingabeeinrichtung 12 (Maus und/oder Tastatur), einen
Mikroprozessor 11, einen flüchtigen Arbeitsspeicher (RAM)
und einen Permanentspeicher (Festplatte) sowie ein die Grundabläufe des
Computers steuerndes Betriebsystem aufweist.
-
Die Ablaufssteuerung 1 ist
weiterhin mit dem Ausgabegerät
(Bildschirm) 2 und einer Eingabeeinrichtung 12 (Maus,
Tastatur) verbunden und ermöglicht
es, ein Flussdiagramm 3 als graphische Information 3b auf
dem Bildschirm 2 zu erzeugen und darzustellen. Gleichzeitig
ermöglicht
die Ablaufsteuerung 1, die dem Flussdiagramm 3 entsprechenden
logischen Zusammenhänge
zwischen den Elementen des Flussdiagramms als logische Information 3a mit Elementen
der Skript-Sprache
zu erzeugen. Dabei wird datentechnisch eine verkettete Liste erzeugt,
in der alle Flussdiagramm-Symbole, die miteinander in Verbindung
stehen, direkt als Kettenglieder durch Verweise miteinander verbunden.
-
Aus der verkettenden Liste 3a und
der hinterlegten Symbolinformation erzeugt die Programmablaufsteuerung 1 (Gungem
Chart) unter Verwendung der in der Skript-Bibliothek 5 hinterlegten Programmablaufsbefehle
der jeweils ausgewählten
Programmiersprache (Turbo Pascal, C/C++) den Quellcode 10.
Dieser Code 10 wird einerseits als Textinformation (Datei)
gespeichert und andererseits auf dem Bild schirm 2 in einem
ausgewählten
Teilbereich neben den graphischen Informationen des Flussdiagramms 3 dargestellt.
-
Mit dem Ablaufssteuerungsprogramm 1 (Gungem
Chart) ist es ausserdem möglich,
einen geeigneten Compiler aufzurufen, der den automatisch erzeugten
Quellcode 10 in einen Maschinencode übersetzt, wodurch dass Quellcode-Programm auf einem
Mikroprozessor ablauffähig
ist und das Programmergebnis auf dem Bildschirm 2 angezeigt
werden kann. Hierdurch kann der Benutzer sofort das Programmergebnis
und ggf. Fehler des von ihm erstellten Flussdiagramms, die der Compiler
entdeckt, ablesen. Als Compiler sind insbesondere der C++-Compiler 6 mit
zugehöriger
C++ Bibliothek 9 sowie der Turbo Pascal-Compiler 7 mit
Turbo Pascal-Bibliothek 8 vorgesehen. Dabei kann vorgesehen sein,
dass das Programmablauf-Steuerungsprogramm 1 (Gungem Chart)
die Compilermeldungen in einfachere, syntaxbezogene oder flussdiagrammbezogene
Informationen umwandelt oder interaktive Fehlermeldungen und -korrekturhilfen
anbietet.
-
In 4 ist
ein graphisches Flussdiagramm 40 und das dazugehörige Quellcode-Programm 41 in der
Programmiersprache Turbo Pascal dargestellt. Das graphische Startsymbol 42 ist über einen
Verbindungspfeil 42a mit einem Abfragesymbol 43 verbunden,
welches eine Variable a abfrägt.
Mit dem Symbol 43 ist eine Information hinterlegt, derzufolge
die Variable a eine Integer-Variable ist. Vom Symbol 43 verweist
ein weiterer Pfeil auf das Abfragesymbol 44, in dem die
Integer-Variable b abgefragt wird. Mit dem Entscheidungs-Symbol 45 wird
abgefragt, ob der in die Variable a eingesetzte Wert größer oder
gleich dem Wert von b ist. Je nach Ausfall der Entscheidung erfolgt
im Symbol 46 die Ausgabe „a<b" bzw. im Symbol 47 die Ausgabe „a>=b". Nach der Ausgabe
wird mit dem Symbol 48 eine Warteschleife ausgelöst, in der
die Wartebedingung „Tastendruck"
hinterlegt ist. Von dem Wartesymbol 48 wird zum Programmende – Symbol 49 verwiesen.
-
In 5 ist
der Ablauf zur Erstellung des Quellcodes nochmals dargestellt.
-
Symbole und
Pfeile setzten
-
Im Schritt 50 wird das Flussdiagramm
am Bildschirm erstellt, wobei vorgegebene grafische Programmablaufs-Symbole
am Bildschirm angeordnet und sukzessive durch Pfeilverbindungen
grafisch miteinander verbunden werden und die Eigenschaften der
Symbole festgelegt werden. Mit einem gewohnten Bedienungselement 12 (Maus)
ordnet der Anwender dabei am Bildschirm 2 die verschiedenen Symbole
entsprechend der Aufgabenstellung in einem Flussdiagramm an. Durch
ebenfalls gesetzte Pfeile werden die einzelnen Symbole logisch miteinander
verknüpft.
Während
der Erzeugung des Flussdiagramms werden entsprechende grafische
Informationen des Flussdiagramms in einem Arbeitsspeicher oder auch
in einem Permanentspeicher des Computers abgespeichert (Schritt
51 ). Die Anfangseinstellungen für
die Objekte (Flussdiagramm-Symbole) sind wählbar. So ist zum Beispiel
die Farbe oder Form (Rechteck, Quadrat, Raute, Parallelogramm, Trapez,
Kreis, Ellipse,...) des Symbols durch den Anwender beliebig wählbar.
-
Eigenschaften
der Symbole festlegen
-
Wenn der Mauszeiger auf einem Programmablaufs-Symbol
am Bildschirm im Verlaufe der Erstellung des Flussdiagramms (Schritt
50) positioniert worden ist, können
mit einem Druck auf die rechte Maustaste die Eigenschaften für das Symbol
festgelegt werden. Die Einstellmöglichkeiten
reichen dabei von optischen Veränderungen,
wie zum Beispiel Farbe, Position, Schriftart oder Größe, bis
zu ganz spezifischen Eigenschaften des Symbols, beispielsweise wie
oft eine Schleife durchlaufen werden soll.
-
Variablen definieren
-
Für
jede im Flussdiagramm bzw. in dem später zu erzeugenden Quellcode
benötigte
Variable wählt
der Anwender einen beliebigen Namen. Wo auch immer dieser Namen
der Variable auftaucht wird der momentane Wert anstelle des Namens
eingesetzt. Das Hinzufügen
und Entfernen von Variablen geschieht komfortabel über das
Menü. Der
Benutzer wählt
dabei aus einer Liste leichtverständlicher Bezeichnungen – beispielsweise
Ganzzahl, Gleitkommawert oder Zeichenkette anstatt wie im Syntax höherer Programmiersprachen üblich Integer,
Double oder String – den
für ihn
passenden Datentyp aus. Die Ablaufsteuerung 1 (Gungem Chart)
hinterlegt diese Informationen dann automatisch in der entsprechenden,
dem Flussdiagramm entsprechenden Informationsdatei 3a.
-
Lösen der
Problemstellung
-
Das fertige Flussdiagramm wird durch
Betätigen
einer Schaltfläche
(7, Schaltfläche 77)
in eine gewünschte
Programmiersprache umgesetzt. Dazu wird zunächst aus den grafischen Informationen
des Flussdiagramms eine verkettete Liste erstellt, bei der für jedes
grafische Symbol des Flussdiagramms eine eigene Instanz der Symbolklasse
erstellt wird. Die verschiedenen aufeinanderfolgenden, gemäß dem Flussdiagramm
direkt miteinander verbundenen Instanzen werden dann durch Verweise (Pointer
oder Instanz-Adressen) logisch miteinander nach Art einer verketteten
Liste verbunden (Schritt 52). Diese verkettete Liste wird ebenfalls
in einem Arbeitsspeicher und/oder in einem Permanentspeicher des
Computers abgespeichert (Schritt 53).
-
Weitere Details der verketteten Liste
sind dem eingangs genannten Buch von Robert Sedgewick, Algorithmen
in C++, Addison-Wesley Verlag (Deutschland), 1992, ISBN 0-201-51059-6,
auf den Seiten 38-56 beschrieben. Der Inhalt dieser Seiten wird
hiermit durch Bezugnahme in die vorliegende Beschreibung aufgenommen.
Für die
vorliegende Anwendung eignet es sich insbesondere, die verkettete
Liste als Feld aufzubauen, wie dies insbesondere in 3.5 des zitierten Buches auf Seite 44
dargestellt ist. Dadurch ist es leicht möglich, zum Aufbauen eines Flussdiagramms
und bei der entsprechenden Erzeugung der logischen Verbindungen Änderungen
wie Einfügungen
innerhalb des Flussdiagramms durchzuführen. Das Bearbeiten (Editieren) des
Flussdiagramms, d.h. die individuelle Anpassung, Änderung
und Weiterbearbeitung eines Flussdiagramms kann dadurch sehr effizient
erfolgen.
-
Aus der verketteten Liste wird schließlich der Quellcode
der höheren
Programmiersprache in der zuvor ausgewählten Programmiersprache erzeugt (Schritt
54). Der erzeugte Quellcode wird in einem zusätzlichen Fenster (vorgegebener
Teilbereich 2b) am Bildschirm 2 dargestellt. Sollte
das erstellte Flussdiagramm fehlerhaft sein, so wird dies bei der Übersetzung
in die höhere
Programmiersprache erkannt und es wird eine Fehlermeldung ausgegeben.
-
Kontrolle durch
Quelltext
-
Der bereits Programmiersprachenerfahrene kann
den im Textfenster 2b an der rechten Bildschirmseite ausgegebenen
Quelltext 96 überprüfen, nachvollziehen
und ggf. hinterfragen. Dadurch wird der Bezug zur Programmiersprache
auf einfache Weise aufrecht erhalten. Um eine bessere Lesbarkeit des
Quellcodes zu erreichen, werden vorgegebene Schlüsselwörter (grundlegende Programmierbefehle)
fett ausgegeben und zwischen Programmabschnitten werden Leerzeilen
freigelassen.
-
6 zeigt
die Verwendung von Programmbibliotheken im Steuerungsablaufprogramm 1 (Gungem
Chart). Dadurch wird es ermöglicht,
Standard-Bibliotheken aus höheren
Programmiersprachen, z. B. die Bibliotheken 8 bzw. 9 (1) zu verwenden und die
darin angebotenen Funktionen zu nutzen. In der Sprache 61 (Turbo
Pascal) existiert z. B. eine Bibliothek 62 (Graph), die
alle Prozeduren, Funktionen und Konstanten zur Darstellung von Grafiken
beinhaltet, z. B. die Linienfunktion 63. Die Bibliothek 62 stellt
somit eine Basis für
die grafische Ausgabe dar.
-
7 zeigt
die Menuezeile 70 des Ablaufsteuerungsprogramms, wie sie
am Bildschirm 2 erscheint. Die Symbolleiste 71 ist
selbsterklärend.
Neben den aus Windows-Systemen an sich bekannten Funktionen wie
Datei neu, Datei öffnen
etc. sind folgende Schaltsymbole neu vorgesehen:
-
- – Mit
dem Schaltsymbol 72 (Homepage) kann eine direkte Verbindung
mit der Internet-Homepage des Programmherstellers hergestellt werden (vorausgesetzt,
der Anwender hat eine entsprechende Internet-Verbindung in seinem
Computer aktiviert).
- – Mit
dem Schaltsymbol 73 kann eine E-mail an den Programmhersteller,
z.B. für
Service-Anfragen und dergleichen versandt werden.
- – Die
im Bereich 74 der Menuezeile 70 angesiedelten
Symbole sind zum Erstellen des Flussdiagramms sowie zum Erstellen,
zum Übersetzen und
zum Ausführen
des Quellcodes vorgesehen:
- Mit der Schaltfläche 75 lassen
sich die Eigenschaften eines aktuell markierten Flussdiagramm-Symbols
ausgeben, die Schaltfläche 76 dient
zum Löschen
Eigenschaften eines aktuell markierten Flussdiagramm-Symbols, mit
der Schaltfläche 77 wird
die Umsetzung eines aktuell angezeigten Flussdiagramms in einen
Quellcode gestartet und mit Schaltfläche 78 lassen sich
die Eigenschaften einer Variable festlegen. Schaltfläche 79 dient
dazu, einen neuen Verbindungspfeil für das Flussdiagramm zur Verfügung zu
stellen und mit Schaltfläche 79a läßt sich
der Compiler sowie das von ihm erzeugte ablauffähige Programm zur Kontrolle
des Programmiererfolgs aufrufen.
-
In 8 ist
die Vorgehensweise beschrieben, mit der das Ablaufssteuerungsprogramm 1 (Gungem
Chart 1) aus einem graphischen Flussdiagramm einen Quellcode
in einer höheren
Programmiersprache erstellt.
-
Eine erste Grundlage zur Erzeugung
des Quellcodes ist dabei, dass das Flussdiagramm von Symbol zu Symbol
seriell abgearbeitet wird. Eine zweite Grundlage ist die sogenannte
flexible rekursive Prozessdefinition. Sie bedeutet, dass das Flussdiagramm
in Prozesshirarchiestufen unterteilt wird, wobei ein Hauptprozess
und jeweils darunterliegende Unterprozesse – hierarchisch geordnet und
jeweils von einem Entscheidungssymbol des Flussdiagramms ausgehend – ggf. mehrstufig
ablaufen. An einem Entscheidungs-Symbol (entsprechen der Verzweigung
eines aktuellen Prozesses) wird dabei der aktuelle (übergeordnete)
Prozess in zwei untergeordete Prozesse, den sogenannten Wahr-Zweig
und den sogenannten Falsch-Zweig, unterteilt.
-
Die Programmschritte 85, 86 und 88 in 8 spielen bei der flexiblen
rekursiven Prozessdefinition eine zentrale Rolle. In den Schritten
86 und 88 wird dabei jeweils überprüft, ob das
Ende eines Unterprozesses erreicht ist und je nach der Entscheidung über den
Rücksprung 91 (aus
dem Wahr-Zweig 88) zur Suche des nächsten Symbols (Schritt 81)
innerhalb des untergeordneten Funktionsprozesses übergegangen
oder die Abarbeitung des Unterprozesses im jeweiligen Zweig beendet
und letzlich über
die Schritte 89 (Quelltexte der Wahr- und Falsch-Zweige kombinieren),
90 (kombinierten Quelltext dem Gesamttext zufügen) und 85 (Übergabe
des untergeordneten Quelltextes) in die Rücksprünge 93 bzw. 94 gelangt. Durch
diese Rücksprünge 93 bzw. 94 gelangt
der Ablauf wieder zum übergeordneten
Funktionsprozess, d.h. es erfolgt ein Prozesswechsel nach oben.
Es gilt ferner, dass beim Eintreten in eine Symbolsuche (Schritt
81) aus einem bestimmten Funktionsprozess (d.h. aus einem Wahr-Zweig über Rücksprung 91 bzw.
aus einem Falsch-Zweig über
Rücksprung 92) auch
das Austreten aus diesem Funktionsprozess (Wahr bzw. Falsch) erfolgen
muss, solange dieser Funktionsprozess nicht vollständig bearbeitet,
d.h. beendet ist.
-
Konkret erfolgt die Abarbeitung des
Flussdiagramms wie folgt: Vom Startsymbol 80 ausgehend wird
im Schritt 81 das dem Startsymbol nachfolgende erste Symbol gesucht.
Bei der Suche wird der Verweis, welcher in der verketteten Liste 3a zwischen der
dem Startsymbol entsprechenden Instanz und der dem ersten nachfolgenden
Symbol entsprechenden Instanz besteht, ausgewertet. Im Schritt 82
wird geprüft,
ob das erste Symbol (N = 1) ein Entscheidungssymbol ist. Falls das
Symbol N keine Entscheidung darstellt, wird aus der Skript-Bibliothek 5 der dem
aktuellen Symbol N entsprechende Quelltext in der zuvor vom Bediener
ausgewählten
Programmiersprache ausgelesen und im Schritt 84 dem Gesamtquelltext
hinzugefügt.
Von dort wird im Schritt 85 der Quelltext übergeben, ggf. über den
Rücksprung 93, den
Schritt 86 und den Rücksprung 91 zur
Suche 81 des nächsten
Symbols N + 1 in den Schritt 81 zurückgekehrt.
-
Ergibt sich im Schritt 82, dass das
aktuelle Symbol N eine Entscheidung ist, welche einen Wahr-Zweig
(„Ja")
und einen Falsch-Zweig („Nein") aufweist,
so wird im Schritt 87 geprüft,
wo das Ende-Symbol E dieser Verzweigung liegt. Der aktuelle Wahr-Funktionsprozess
wird dann bis zum Erreichen des ihm zugeordneten Ende-Symbols E über den Schritt
88, Rücksprünge 91 und
Symbolsuch-Schritte 81 abgearbeitet, bis dieses Symbols
E erreicht wird. Dabei können über Schritt
82 durch entsprechende Entscheidungssymbole wiederum Unterprozesse
in dem vorher gestarteten Wahr-Funktionsprozess eingeleitet werden.
Die entsprechenden Rücksprünge 91 und 93 deuten
dabei jeweils einen Prozesswechsel an. Letztlich wird somit jeder
Funktionsprozess (mit seinen Wahr-Zweigen und Falsch-Zeigen) von seinem
entsprechenden Symbol N (Start) bis zu seinem Symbol EN verfolgt.
Der tiefgestellte Index N des Endesymbols EN deutet
dabei an, das dieses Endesymbol dem Entscheidungssymbol N zugeordnet ist.
-
Nach vollständigem Abarbeiten eines Wahr-Zweiges
wird zum Schritt 86 übergegangen und
der Falsch-Zweig des aktuellen Funktionsprozesses vom Entscheidungs-Symbol
N bis zum Ende-Symbol EN verfolgt. Im Schritt
89 werden die übergebenenen
Quelltexte des Wahr-Zweiges und des Falsch-Zweiges im aktuellen
Funktionsprozess kombiniert und im Schritt 90 der so erzeugte Quelltext dem
Gesamtquelltext hinzugefügt.
Dann wird zum Schritt 85 übergegangen
und geprüft,
ob das Programmende (Ende des Hauptprozesses) erreicht ist oder
ob zum nächsthöheren Funktionsprozess über einen
der Rücksprünge 93 (für den Wahr-Zweig) bzw. 94 (für den Falsch-Zweig)
zurückgekehrt
werden muss.
-
9 zeigt
ein Flussdiagramm 95, das auf dem linken Teil 2a des
Bildschirms 2 dargestellt wird, sowie den entsprechenden
Quellcode 96 in der Programmiersprache Turbo Pascal im
rechten Teil 2b auf dem Bildschirm 2. Im Auswahlfeld 97 („Variable hinzufügen") können zwei
Eigenschaften einer neuen Variable, die in das Flussdiagramm eingefügt werden soll,
angegeben werden, nämlich
der Variablenname und der Variablentyp. Diese Eigenschaften werden automatisch
von Gungem Chart abgefragt. Mit der Schaltfläche 78 „Ω" kann eine
Variable neu er zeugt werden und über
ein zusätzliches
Auswahlmenü (siehe
Fenster 97 in 9)
können
die Eigenschaften der Variable festgelegt werden.
-
In dem Auswahlfenster 98 sind
allgemeine Systemeinstellungen von Gungem Chart 1 einstellbar,
wobei insbesondere die Funktion „Quelltext automatisch aktualisieren"
dazu dient, ein eingefügtes Symbol
und die zugehörige
logische Einbindung in ein Flussdiagramm unverzüglich als Quellcode umzusetzen,
nachdem die logische Verbindungen (per Pfeil) zwischen dem Symbol,
dem vorhergehenden Symbol und dem nachfolgenden Symbol hergestellt sind.
Dadurch können
insbesondere Programmieranfänger
sofort erkennen, wie das von ihnen ausgewählte Symbol und die entsprechende
Einbindung als Quellcode zu programmieren ist. Der Lerneffekt ist
bei dieser Methode besonders eindrucksvoll und unmittelbar. Die
Umsetzung des Flussdiagramms kann jedoch alternativ auch auf Knopfdruck
erfolgen (siehe Schaltfläche 77 in
den 7, 9 und 12).
Dem Programmierer ist es bei dieser Variante möglich, sein Flussdiagramm zuerst
vollständig
aufzubauen, bevor er durch Gungem Chart 1 den Quellcode
erstellen läßt.
-
Das Pfeilsymbol als Verbindung zwischen Startsymbol
und Endesymbol wird beim neuen Erstellen eines Flussdiagramms automatisch
durch Gungem Chart 1 eingefügt. Zum Einfügen eines
neuen Ablaufsymbols in das Flussdiagramm 95 ist dann zunächst das
Folgesymbol auszuwählen,
dann ein zusätzlicher
Pfeil über
die „Verbindungs-Schaltfläche" 79 auszuwählen und
dessen Pfeilanfang und Pfeilende an die jeweiligen Ablaufsymbole
des Flussdiagramms per Mausklick zu ziehen. Gungem Chart 1 verbindet
die grafischen Symbole durch den Pfeil fest miteinander und stellt
auch die entsprechende logische Verbindung dieser Symbole in der
verketteten Liste her. In einer weiter verbesserten Ausführungsformen
wird eine zusätzliche
Schaltfäche
vorgesehen, mit der die Pfeilverbindung zwischen den beiden zuletzt
bearbeiteten Symbolen automatisch erstellt wird, sofern eine solche
Pfeilverbindung noch nicht besteht. Die Erstellung des grafischen
Flussdiagramms kann durch derartige Bearbeitungshilfen, durch Makro-Schaltflächen, die
Standard-Arbeitsabläufe
durch einen einzigen Knopfdruck au tomatisieren sowie durch andere
Editier-Tools wie z.B. die in der Auswahl-Box 99 gezeigten
beliebig komfortabel gestaltet werden.
-
Durch die fixierte Verbindung der
grafischen Symbole kann das gesamte Flussdiagramm jederzeit flexibel
umgestaltet werden, ohne dass deren logischen Verbindungen oder
die Verbindungen (Variablenverbindungen) der entsprechenden verkettete
Liste verloren gehen. Beispielsweise kann ein Feld des Flussdiagramms
beliebig verschoben werden, wobei dessen Pfeilverbindungen zu dem
vorhergehenden und nachfolgenden Symbol mitverschoben, d.h. die Verbindung
erhalten bleibt.
-
In den 10 und 11 sind die beiden Teilbereiche 2, 2b des
Bildschirms 2 gezeigt, in denen das Flussdiagramm 95 bzw.
das entsprechende Quellprogramm 96 dargestellt werden.
Die Bereiche 2a und 2b sind der Übersichtlichkeit
halber durch eine Trennlinie 2c voneinander getrennt. Die 10 und 11 zeigen den Arbeitsablauf beim Erstellen
eines Flussdiagramms, das Grafik-Aufrufe enthält, anhand von online Bildschirm-Ausdrucken
(screen shots) dargestellt, die zwei aufeinanderfolgende Bearbeitungsschritte
zeigen. Der in 10 dargestellte,
neu einzufügende
Aufruf des Grafik-Modus (Ablauf-Symbol 100 im Flussdiagramm 95a)
ist dabei im nächsten Schritt
der 11 bereits eingefügt und im
Bilschirm-Bereich 2b der 11 bereits
als Quellcode umgesetzt. In 11 ist
des weiteren zu sehen, wie eine Variable „Name" durch Auswahl von Menüpunkten
in Gungem Chart zugewiesen werden kann.
-
12 zeigt
das Auswahlfenster 121 und die Möglichkeiten von Gungem Chart 1,
die Eigenschaften einer im Symbol 122 in das Flussdiagramm 95b einzubinden
Zufallszahl festzulegen. Für
den Programmieranfänger
ist die im Fenster 121 angebotene Art der Zuweisung, bei
der im Klartext die Wirkung der Eingabe zu erkennen ist, wesentlich
anschaulicher als der relativ komplizierte, in vielen Programmierprachen
hinterlegte Syntax zur Erstellung von Zufallszahlen, bei dem positive
bzw. negative Integer-Werte einzugeben sind. Mit der komfortablen
und einfachen Einstellmöglichkeit
in Gungem Chart 1 und der unverzüglichen, durch Gungem Chart 1 automatisch
vorgenommenen Umsetzung in einen Quellcode ist es auch hier dem
Programmieranfänger leicht
und flexibel möglich,
den Syntax der Programmiersprache zu erlernen. Der Bediener hat
dabei insbesondere die Möglichkeit,
selbst erdachte Übungsaufgaben
zu erstellen, eine eigene Variante des Quellcodes – unabhängig von
Gungem Chart 1 – zu erstellen
und die eigene Variante dann sogleich mit dem von Gungem Chart 1 erzeugten
Quellcode-Ergebnis
zu vergleichen.
-
13 zeigt
nochmals ein Flussdiagramm, in dem Grafik-Funktionen genutzt sind,
wobei ein Kreis und eine Linie gezeichnet werden sollen.
-
Die Ablaufsteuerung 1 (Gungem
Chart) sowie die übrigen,
in 1 gezeigten Komponenten sind
in einem Computer mit beliebigem Betriebssystem, beispielsweise
in einem Personal Computer mit Microsoft Windows® – Betriebssystem
enthalten. Die Ablaufsteuerung 1 (Gungem Chart) bewirkt;
dass über
ein Eingabemittel (Tastatur, Maus, Track-Ball etc.) ein Flussdiagramm
(siehe 4) auf dem Bildschirm 2 erstellt
werden kann. Dazu sorgt die Ablaufsteuerung 1 für eine Anzeige
auf dem Bildschirm 2, durch die verschiedene Symbole von
Flussdiagrammen ausgewählt
werden können.
Auf dem Bildschirm 2 wird das derart erstellte Flussdiagramm
in einer Flussdiagramm-Zone dargestellt und kann vom Benutzer mittels
der Ablaufsteuerung 1 bearbeitet (editiert) werden. Dazu
werden neben den Ablaufsymbolen auch Verbindungsglieder (Pfeile)
zur Auswahl angeboten, mit denen die Ablaufsymbole zu einem Flussdiagramm
verbunden werden.
-
Zur Erstellung eines Programmiersprachen-Quellcodes 10 aus
einem auf der Anzeigevorrichtung angezeigten Flussdiagramm (siehe 4) erstellt die Ablaufsteuerung 1 (Gungem
Chart) dazu eine dem Flussdiagramm entsprechende logische Sequenz
von Variablen, in der die jeweiligen Ablaufssymbole des grafischen
Flussdiagramms und ihre Verknüpfungen
durch logische Verbindungen der Varialen abgebildet sind.
-
Obwohl die Erfindung nur anhand einiger beispielhaft
genannter Programmiersprachen und möglicher Dateistrukturen beschrieben
wurde, ist klar, dass die Erfindung auch in anderen Programmiersprachen
realsierbar ist, beispielsweise in Fortran, Cobol, Basic oder dergleichen.
Weiterhin wurde anhand der 8 ein
konkretes Beispiel zum Erzeugen eines Quellcodes aus einer vorliegenden logischen
Datei (3a) beschrieben. Statt dieser Ausführungsform
könnte
auch ein bekanntes anderes Verfahren angewandt werden, welches aus
einer datentechnisch vorhandenen logischen Abfolge von Informationen,
die einem grafischen Flussdiagramm entsprechen, einen Quellcode
erzeugt.
-
Die Erfindung besitzt ein weites
Spektrum von Einsatzgebieten. Es kann immer dann verwendet werden,
wenn es darum geht, Computeranwendern den Einstieg in die Computerwelt
zu vereinfachen.
-
Die Erfindung ist beispielsweise
beim computergestützen
Training (Computer Based Training oder auch CBT genannt) einsetzbar.
Dabei wäre
es nützlich,
die Erfindung bereits als Bestandteil eines CBT in der Softwaregrundausstattung
von Computern, zu integrieren. Dadurch wird von Anfang an ein Hilfsmittel
für die
Darstellung der logischen Zusammenhänge von informationstechnischen
Vorgängen bereitgestellt.
-
Die Erfindung ermöglicht aber auch das einfache
Steuern von Maschinen, wobei keine Kenntnisse zur detaillierten
Programmierung von Maschinensteuerung erforderlich sind. Dies kann
an einem konkreten Beispiel veranschaulicht werden: Ein Roboterarm,
wie er in der Autoindustrie Verwendung findet, führt durch seine Steuerung verschiedenste
Rotationsbewegungen aus. Eine Bewegung, wird dabei im Stand der
Technik häufig
als eine Aneinanderreihung von mehreren Teilbewegungen zusammengesetzt und
ausgeführt.
Möchte
man im Gegensatz dazu eine Rotation unter Verwendung der vorliegenden
Erfindung bewerkstelligen, setzt man die entsprechenden Teilbewegungssymbole
als (Fluß-)Diagramm
zusammen und beschreibt somit die gewünschte Rotationsbewegung als
Gesamtablauf. Das Programm, welches die Maschine letztendlich steuert,
wird daraufhin automatisch generiert aus den Programmschritten erzeugt,
die durch die Zeichensymbole hinterlegt sind.
-
Die Erfindung kann in Form verschiedenster Ausprägungen auftreten,
beispielsweise als Computerdatei, als Programm-Modul, als Programmelement,
als Programm-Bibliothek oder als Ansammlung von einer Vielzahl von
Einzeldateien. Diese, insbesondere in Computerprogrammprodukten
wie einem Speicherelement, einer Diskette, einem Plattenspeicher,
einer CD-ROM, einem programmierbaren elektronischen Baustein (ROM,
PROM, EPROM) enthaltene Ausdrucksform der Erfindung kann auch über neue
Medien wie als Datei-Anhang einer e-mail sowie über das Internet verbreitet
werden.
-
Weiterhin wäre es günstig, wenn die Erfindung direkt
in Betriebssysteme wie z.B. Microsoft Windows®, Unix® oder
Linux® eingebunden
würde. Insbesondere
Personen, die erstmals einen Computer erwerben, könnten dann
mit dem frisch erstandenen Computer ohne weitere Installationsarbeiten
in die Grundzüge
des Programmierens eingewiesen werden.