DE10008632B4 - Verfahren und System zum Erzeugen eines Computerprogramms - Google Patents

Verfahren und System zum Erzeugen eines Computerprogramms Download PDF

Info

Publication number
DE10008632B4
DE10008632B4 DE10008632A DE10008632A DE10008632B4 DE 10008632 B4 DE10008632 B4 DE 10008632B4 DE 10008632 A DE10008632 A DE 10008632A DE 10008632 A DE10008632 A DE 10008632A DE 10008632 B4 DE10008632 B4 DE 10008632B4
Authority
DE
Germany
Prior art keywords
program
source code
symbol
flowchart
symbols
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE10008632A
Other languages
English (en)
Other versions
DE10008632A1 (de
Inventor
Gunter Gemmel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to DE10008632A priority Critical patent/DE10008632B4/de
Publication of DE10008632A1 publication Critical patent/DE10008632A1/de
Application granted granted Critical
Publication of DE10008632B4 publication Critical patent/DE10008632B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13044Display as flow chart, SFC, FUP
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13123C language
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13138High level language HLL, structured text ST, resembles pascal

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)

Abstract

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
a) 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:
b) die graphischen Informationen (3b) des Flussdiagramms (95) werden gespeichert,
c) die logischen Informationen (3a) des Flussdiagramms (95) werden gespeichert,
d) an hand der logischen Informationen (3a) wird ein dem definierten Flussdiagramm (95) entsprechender Programmablauf-Quellcode (96) aus Programmbefehlen erzeugt, wobei
e) die logischen Informationen (3a) mittels einer Skript-Sprache formuliert werden,
f) 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
g) 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.

Description

  • 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.

Claims (14)

  1. 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 a) 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: b) die graphischen Informationen (3b) des Flussdiagramms (95) werden gespeichert, c) die logischen Informationen (3a) des Flussdiagramms (95) werden gespeichert, d) an hand der logischen Informationen (3a) wird ein dem definierten Flussdiagramm (95) entsprechender Programmablauf-Quellcode (96) aus Programmbefehlen erzeugt, wobei e) die logischen Informationen (3a) mittels einer Skript-Sprache formuliert werden, f) 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 g) 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.
  2. Verfahren nach Anspruch 1, wobei die logischen Informationen (3a) als Datensätze nach Art einer verketteten Liste gespeichert werden.
  3. Verfahren nach Anspruch 2, wobei die verkettete Liste (3a) Instanzen einer Symbolklasse enthält.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei das Quellcode-Erzeugungsmittel (Gungem Chart, 1) eine Anzeige auf dem Ausgabegerät (2) derart bewirkt, dass in einem ersten Teilbereich (2a) des Ausgabegeräts (2) das Flussdiagramm (95) und in einem zweiten Teilbereich (2b) des Ausgabegeräts (2) der Quellcode (96) wahrnehmbar ist.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei mit der Skript-Bibliothek (5) eine Zuordnung zwischen den logischen Informationen (3a) und den für die jeweils ausgewählte Programmiersprache entsprechenden Programmbefehlen erfolgt.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei eine Programmablaufs-Anweisung zur Auswahl als vollständige Klartext-Anweisung angezeigt wird.
  7. Verfahren nach Anspruch 6, wobei die Programmablaufs-Anweisung in mehreren, innerhalb der Auswahl aufeinanderfolgenden Teilabfragen (121) vervollständigt wird.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei eine Programmablaufs-Anweisung zur Auswahl als grafisches Symbol angezeigt wird.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei mit einer ersten Schaltfläche (77, 120) die Erzeugung des Quellcodes (96) gestartet wird.
  10. Verfahren nach Anspruch 9, wobei mit einer zweiten Schaltfläche (79a) aus dem Quellcode (96) ein auf einem Mikroprozessor direkt ablauffähiges Computerprogramm erstellt wird.
  11. Verfahren nach Anspruch 10, wobei zum Erzeugen des direkt ablauffähigen Computerprogramms ein Compiler-Programm (6, 7) verwendet wird.
  12. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Flussdiagramm (95) zur Erzeugung des Programmablauf-Quellcodes (96), ausgehend von Entscheidungs-Symbolen (45), in Prozesshierarchiestufen eingeteilt wird, die jeweils hierarchisch geordnet abgearbeitet werden.
  13. Datenträger auf dem ein Computerprogramm gespeichert ist, das beim Laden in einen Computer ein Verfahren nach einem der vorhergehenden Ansprüche ausführt.
  14. Computer mit Mitteln zum Erstellen eines Programmablauf-Quellcodes (96) nach einem Verfahren nach einem der Ansprüche 1 bis 12.
DE10008632A 2000-02-24 2000-02-24 Verfahren und System zum Erzeugen eines Computerprogramms Expired - Fee Related DE10008632B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10008632A DE10008632B4 (de) 2000-02-24 2000-02-24 Verfahren und System zum Erzeugen eines Computerprogramms

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10008632A DE10008632B4 (de) 2000-02-24 2000-02-24 Verfahren und System zum Erzeugen eines Computerprogramms

Publications (2)

Publication Number Publication Date
DE10008632A1 DE10008632A1 (de) 2001-09-06
DE10008632B4 true DE10008632B4 (de) 2004-02-26

Family

ID=7632226

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10008632A Expired - Fee Related DE10008632B4 (de) 2000-02-24 2000-02-24 Verfahren und System zum Erzeugen eines Computerprogramms

Country Status (1)

Country Link
DE (1) DE10008632B4 (de)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7861221B2 (en) 2004-04-23 2010-12-28 Metasonic Ag Method and system for generating a source code for a computer program
EP2631794A1 (de) 2012-02-27 2013-08-28 Deutsche Telekom AG Verfahren und Netzwerksystem zum Bereitstellen eines Anwendungsprozesses auf einem Netzwerkprozessserver einer Netzwerkinfrastruktur
US8874093B2 (en) 2007-12-13 2014-10-28 Motorola Mobility Llc Scenarios creation system for a mobile device
US8875119B2 (en) 2011-01-17 2014-10-28 Metasonic Gmbh System and method for generating a source code for a computer program
US10296305B2 (en) 2013-09-27 2019-05-21 Rudolf Markus PETRI Method and device for the automated production and provision of at least one software application

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10150141A1 (de) * 2001-10-11 2003-04-24 Siemens Ag Bedienen einer Anordnung durch Aufsuchen von Objekten in einem Bedienraum
DE10248621A1 (de) * 2002-10-18 2004-04-29 Giesecke & Devrient Gmbh Verfahren und System zur Bearbeitung von Banknoten
DE10306717A1 (de) * 2003-02-17 2004-09-16 Giesecke & Devrient Gmbh Verfahren zum Erstellen von Programmcode
JP7024679B2 (ja) * 2018-10-05 2022-02-24 オムロン株式会社 開発支援プログラム、開発支援装置、および開発支援方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5487141A (en) * 1994-01-21 1996-01-23 Borland International, Inc. Development system with methods for visual inheritance and improved object reusability
WO1998039698A2 (en) * 1997-03-07 1998-09-11 Dynamics Research Corporation Software development tool with object modeling language

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5487141A (en) * 1994-01-21 1996-01-23 Borland International, Inc. Development system with methods for visual inheritance and improved object reusability
WO1998039698A2 (en) * 1997-03-07 1998-09-11 Dynamics Research Corporation Software development tool with object modeling language

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Integrated System, Inc. Releases BetterState Version 5.0, PR Newswire, March 2, 1999, http://www.findarticles.com/cf_0/m4PRN/1999_ March_2/53993370/print.jhtml *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7861221B2 (en) 2004-04-23 2010-12-28 Metasonic Ag Method and system for generating a source code for a computer program
US8429611B2 (en) 2004-04-23 2013-04-23 Metasonic Ag Method and system for generating a source code for a computer program
US8874093B2 (en) 2007-12-13 2014-10-28 Motorola Mobility Llc Scenarios creation system for a mobile device
US8875119B2 (en) 2011-01-17 2014-10-28 Metasonic Gmbh System and method for generating a source code for a computer program
EP2631794A1 (de) 2012-02-27 2013-08-28 Deutsche Telekom AG Verfahren und Netzwerksystem zum Bereitstellen eines Anwendungsprozesses auf einem Netzwerkprozessserver einer Netzwerkinfrastruktur
US10296305B2 (en) 2013-09-27 2019-05-21 Rudolf Markus PETRI Method and device for the automated production and provision of at least one software application

Also Published As

Publication number Publication date
DE10008632A1 (de) 2001-09-06

Similar Documents

Publication Publication Date Title
DE68919503T2 (de) Methode und System zur Darstellung einer Benutzeroberfläche auf einem Computerbildschirm.
DE10135445B4 (de) Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage
DE3855475T2 (de) Software-Verwaltungsstruktur
DE69909614T2 (de) Sich selbst manipulierende bäume verwendende rechenarchitektur
DE10392790T5 (de) Verfahren zur Navigation und Orientierung in einer hierarchischen Informationsstruktur mit mehreren Elementen
DE3530585A1 (de) Verfahren und system zum verbessern der optischen anzeige eines cnc-bearbeitungssystems durch hinzufuegen von farbe
DE19741358A1 (de) Verallgemeinertes Verfahren zum Trennen von charakteristischen Multimediamerkmalen von einem Multimediatitel unter Verwendung einer Multimedia-Softwaremaschine
DE19959765B4 (de) Datei-Editor für mehrere Datenuntermengen
DE10008632B4 (de) Verfahren und System zum Erzeugen eines Computerprogramms
DE102004043788A1 (de) Programm Generator
DE60019996T2 (de) System zum Koordinieren von Dokumenten und Aufgaben für einen Rechner
DE10252797B4 (de) Verfahren und System zum Erstellen von Dokumentenvorlagen mit Ressourcenverwaltung
WO1999028799A1 (de) Verfahren zur bildschirmgestützten definition und parametrierung von schnittstellen
DE60032403T2 (de) Speziell adaptierte Wiedergabe und Darstellung von Datenbankinformationen
DE10041072A1 (de) Verfahren zur automatischen Erzeugung von Programmcode
DE60225464T2 (de) Robotersystem und verfahren und software für das robotersystem
EP1610219A1 (de) Programmiersystem
DE3588067T2 (de) Hierarchische Auswahl.
DE4310615C2 (de) Entwurf elektrischer Vorrichtungen mit mehreren Entwurfswerkzeugen, die zumindest teilweise untereinander inkompatibel sind
DE102006044800A1 (de) Fahrzeugkommunikationssystem für einen Kraftwagen mit einem graphischen Benutzermenü und Verfahren zum Erweitern eines in einer hierarchischen Baumstruktur organisierten graphischen Benutzermenüs
DE102015209715A1 (de) Verfahren und System zur rechnergestützten Überführung eines Architektur-Konzepts eines technischen Systems in eine Architekturspezifikation
DE3613740C2 (de)
DE3788890T2 (de) Desk-Top-Publishing Gerät.
DE2613703C2 (de) Schaltungsanordnung zum Übersetzen von Programmtexten
DE102010012307B4 (de) Verfahren und Vorrichtung zum Erstellen eines Verfahrensablaufs für eine speicherprogrammierbare Steuerung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee
8170 Reinstatement of the former position
8120 Willingness to grant licences paragraph 23
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20130903