[go: up one dir, main page]

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

Verfahren und System zum Erzeugen eines Computerprogramms

Info

Publication number
DE10008632A1
DE10008632A1 DE10008632A DE10008632A DE10008632A1 DE 10008632 A1 DE10008632 A1 DE 10008632A1 DE 10008632 A DE10008632 A DE 10008632A DE 10008632 A DE10008632 A DE 10008632A DE 10008632 A1 DE10008632 A1 DE 10008632A1
Authority
DE
Germany
Prior art keywords
flowchart
source code
program
symbol
chart
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.)
Granted
Application number
DE10008632A
Other languages
English (en)
Other versions
DE10008632B4 (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 OR CALCULATING; 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

Die Erfindung betrifft ein Verfahren und ein System zum Erzeugen eines Quellcodes (96) in einer höheren Programmiersprache (Pascal, Turbo Pascal, C/C++, Basic), wobei folgende Schritte durchgeführt werden: DOLLAR A (a) Programmablaufs-Symbole (100) werden an einem Anzeigegerät (2) grafisch derart miteinander verbunden, dass ein Flussdiagramm (95) erzeugt wird, DOLLAR A (b) die grafischen Informationen (3b) des Flussdiagramms (95) werden gespeichert, DOLLAR A (c) es werden logische Datensätze (3a) erzeugt, die dem Flussdiagramm (95) entsprechen, und DOLLAR A (d) ein Quellcode-Erzeugungsmittel (Gungem Chart 1) erzeugt anhand der logischen Datensätze (3a) einen dem definierten Flussdiagramm (95) entsprechenden Quellcode (96). DOLLAR A Mit der Erfindung wird das Erstellen von Computerprogrammen in höheren Programmiersprachen wesentlich erleichtert. Sie ist insbesondere zur Anwendung in Schulungssystemen geeignet, um Programmieranfängern den Einstieg in Syntax und Befehle höherer Programmiersprachen zu erleichtern.

Description

Die Erfindung betrifft ein Verfahren und ein System zum Erzeugen eines Compu­ terprogramms, insbesondere eines Programms in einer höheren Programmier­ sprache wie Turbo Pascal oder C. Derartige Programmiersprachen werden viel­ fach als Einstiegsprogramme für Programmieranfänger ausgewählt. Vielfach sind Anfänger jedoch bereits beim Erstellen einfachster Programme in diesen Spra­ chen 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 Um­ setzten und Lösen einer Problemstellung erforderlich sind, können dadurch viel­ fach nicht mehr vermittelt werden.
Andererseits werden immer mehr Menschen mit Computern und Programmier­ sprachen 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 größeren Zeitaufwand zum Erlernen einer Pro­ grammiersprache zumuten zu müssen.
Es besteht demzufolge ein erhebliches Bedürfnis, eine Methode zu finden, be­ troffenen Schülern und sowie aus- und weiterzubildenden Personen die Grundbe­ griffe der Informatik zu vermitteln ohne den Umweg über eine ungewohnte Programmiersprache 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 Pro­ grammierbefehlen der vierten Generation direkt einen SourceCode in einer Spra­ che 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 di­ rekt 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 entsprechen angepaßter Com­ puter direkt einen Source Code erzeugt.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren und ein System zu schaffen, mit dem Computerprogramme einfach, schnell und weitgehend automa­ tisiert 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.
Erfindungsgemäß ist ein Steuerungsprogramm vorgesehen, welches insbesonde­ re auf einem Computer ablaufen kann. Das Steuerungsprogramm ermöglicht es, Programmablaufsanweisungen an einem Ausgabegerät anzuzeigen und zur Aus­ wahl anzubieten. Die Programmablaufsanweisungen (Symbole) können über ein Eingabegerät ausgewählt und über graphische Verbindungssymbole zu einem Flussdiagramm kombiniert werden. Das Steuerungsprogramm bewirkt, dass die dem Flussdiagramm entsprechenden Informationen einerseits als graphische In­ formationen und andererseits als logische Informationen gespeichert 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 ver­ ketteten Liste aufeinanderfolgende Instanzen der Symbolklassen aufeinander verweisen. Im weiteren Verlauf bewirkt dann das Steuerungsprogramm, dass aus den logischen Informationen (verkettete Liste) eine Abfolge von Pro­ grammablaufsanweisungen, d. h. ein Computerprogramm als Quellcode einer hö­ heren Programmiersprache erstellt wird. Zum Erzeugen des Quellcodes ist insbe­ sondere vorgesehen, die logischen Daten (verkettete Liste) anhand eines Skript- Syntaxes zu verarbeiten, in welchem die Symbole individuell codiert und mit ent­ sprechenden 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 einer höheren Programmiersprache. Die Verwendung einer verketteten (dynamischen) Liste erlaubt es insbesondere, Veränderungen an dem zugrundeliegenden Flussdiagramm relativ einfach in die logischen Daten (verkettet Liste) zu übernehmen, indem die entsprechenden Ver­ weise innerhalb der verketteten Liste an die neuen Gegebenheiten des Flussdia­ gramms angepasst werden.
Die Erfindung beruht dabei auf der Erkenntnis, dass es für einen Programmieran­ fänger eine erhebliche Erleichterung darstellt, wenn er zum Erlernen und Erzeu­ gen von Computerprogrammen in für ihn neuen Programmiersprachen zwei Ar­ beitsebenen 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 an­ spruchsvollere Programmierebene, in der von dem Steuerungsprogramm automatisch 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 Programmablaufssymbo­ len entsprechenden Parametern wie Variablennamen, Variablentyp usw. erfolgen können.
In einem weiteren bevorzugten Ausführungsbeispiel bewirkt das Steuerungspro­ gramm eine Anzeige auf dem Ausgabegerät derart, dass in einem ersten Teilbe­ reich 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 ins­ besondere 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 Pro­ grammierung des Quellcodes leichter verständlich wird und das selbständige Pro­ grammieren 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üh­ rungsbeispielen anhand der Figuren näher erläutert. Es zeigen:
Fig. 1: eine erfindungsgemäße Systemstruktur
Fig. 2: symbolisch zwei Methoden des Erlernens einer Programmiersprache
Fig. 3: Details der erfindungsgemäßen Methode
Fig. 4: ein Flussdiagramm mit dem entsprechenden Quellcode
Fig. 5: ein Flussdiagramm, das erfindungsgemäße Verfahrensschritte zeigt
Fig. 6: Die Struktur eines Programmaufrufs
Fig. 7: ein erfindungsgemäßes Auswahlmenü
Fig. 8: ein Ablaufdiagramm und
die Fig. 9 bis 13: Bildschirmausdrucke.
Anhand der Fig. 2 soll zunächst nochmals erläutert werden, wie Computerpro­ gramme in höheren Programmiersprachen wie Turbo Pascal oder dergleichen bisher meist erstellt werden. Eine gestellte Aufgabe 20 wird dabei über einen rela­ tiv 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.
Fig. 3 zeigt bereits einige wesentliche Bestandteile des erfindungsgemäßen Verfahrens bzw. des das Verfahren in einem Computer bewirkenden Computer­ programms Gungem Chart 1. Es wirkt mit Befehls-Sammlungen 5a, 5b zusam­ men, 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. 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 akti­ vierten höheren Programmiersprache ein Flussdiagramm mit vorgegebenen Ab­ laufsymbolen, die unabhängig von der Programmiersprache sind, erstellen kann.
In den Befehlssammlungen 5a, 5b usw. können auf einfache Weise neue Sym­ bole mit weiteren Befehlen oder auch neue Variablentypen definiert und hinzuge­ fü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 (Pro­ grammiersache) für sich aus. Von diesem Moment an, stehen ihm alle Symbole, Variablen und sonstigen Eigenschaften der ausgewählten Befehlsdatei zur Verfü­ gung.
In Fig. 1 sind die Befehlssammlungen 5a, 5b in einer Skript-Bibliothek 5 enthal­ ten, mit denen eine Ablaufsteuerung 1, welche hier durch das Computerprogramm Gungem Chart realisiert ist, zusammenwirkt. Die Ablaufsteuerung 1 kommuniziert dabei in einer erfindungsgemäß geschaffenen Skript-Sprache mit der Skript- Bibliothek 5. Einige Inhalte (Syntax, Codes) der Skript-Sprache werden im folgen­ den genauer erläutert:
Ein Grundbaustein der Skript-Sprache ist ein neuer Datentyp "flow", welcher ei­ nerseits einem graphischen Symbol zur Erstellung des Flussdiagramms entspricht (z. B. einem Abfragesymbol für eine Variable) und andererseits einem bzw. mehre­ ren dem Symbol entsprechenden programmiersprachenspezifischen Be­ fehlscodes, die in der Skript-Bibliothek 5 enthalten sind.
Durch den Datentyp "flow" lassen sich graphische Ablaufssymbole mit dem ent­ sprechenden 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 In­ formationen 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 Tasta­ tur), einen Mikroprozessor 11, einen flüchtigen Arbeitsspeicher (RAM) und einen Permanentspeicher (Festplatte) sowie ein die Grundabläufe des Computers steu­ erndes Betriebsystem aufweist.
Die Ablaufsteuerung 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 Fluss­ diagramm 3 entsprechenden logischen Zusammenhänge zwischen den Elemen­ ten 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 Pro­ grammiersprache (Turbo Pascal, C/C++) den Quellcode 10. Dieser Code 10 wird einerseits als Textinformation (Datei) gespeichert und andererseits auf dem Bildschirm 2 in einem ausgewählten Teilbereich neben den graphischen Informatio­ nen des Flussdiagramms 3 dargestellt.
Mit dem Ablaufssteuerungsprogramm 1 (Gungem Chart) ist es ausserdem mög­ lich, 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 Compilermeldun­ gen in einfachere, syntaxbezogene oder flussdiagrammbezogene Informationen umwandelt oder interaktive Fehlermeldungen und -korrekturhilfen anbietet.
In Fig. 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 ab­ gefragt, 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 "Tasten­ druck" hinterlegt ist. Von dem Wartesymbol 48 wird zum Programmende - Symbol 49 verwiesen.
In Fig. 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 Eigen­ schaften der Symbole festgelegt werden. Mit einem gewohnten Bedienungsele­ ment 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 ver­ knüpft. Während der Erzeugung des Flussdiagramms werden entsprechende gra­ fische Informationen des Flussdiagramms in einem Arbeitsspeicher oder auch in einem Permanentspeicher des Computers abgespeichert (Schritt 51). Die An­ fangseinstellungen 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 Sym­ bol 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 die­ ser 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 Be­ zeichnungen - beispielsweise Ganzzahl, Gleitkommawert oder Zeichenkette an­ statt 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 (Fig. 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 Ro­ bert 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 Abb. 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 Verbin­ dungen Änderungen wie Einfügungen innerhalb des Flussdiagramms durchzufüh­ ren. Das Bearbeiten (Editieren) des Flussdiagramms, d. h. die individuelle Anpas­ sung, Änderung und Weiterbearbeitung eines Flussdiagramms kann dadurch sehr effizient erfolgen.
Aus der verketteten Liste wird schließlich der Quellcode der höheren Program­ miersprache in der zuvor ausgewählten Programmiersprache erzeugt (Schritt 54). Der erzeugte Quellcode wird in einem zusätzlichen Fenster (vorgegebener Teilbe­ reich 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 einfa­ che Weise aufrecht erhalten. Um eine bessere Lesbarkeit des Quellcodes zu er­ reichen, werden vorgegebene Schlüsselwörter (grundlegende Programmierbe­ fehle) fett ausgegeben und zwischen Programmabschnitten werden Leerzeilen freigelassen.
Fig. 6 zeigt die Verwendung von Programmbibliotheken im Steuerungsablauf­ programm 1 (Gungem Chart). Dadurch wird es ermöglicht, Standard-Bibliotheken aus höheren Programmiersprachen, z. B. die Bibliotheken 8 bzw. 9 (Fig. 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 Lini­ enfunktion 63. Die Bibliothek 62 stellt somit eine Basis für die grafische Ausgabe dar.
Fig. 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 (vorausge­ setzt, der Anwender hat eine entsprechende Internet-Verbindung in seinem Computer aktiviert).
  • - Mit dem Schaltsymbol 73 kann eine Email an den Programmhersteller, z. B. für Service-Anfragen und dergleichen versandt werden.
  • - Die im Bereich 74 der Menuezeile 70 angesiedelten Symbole sind zum Erstel­ len des Flussdiagramms sowie zum Erstellen, zum Übersetzen und zum Aus­ fü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 Flussdia­ gramms in einen Quellcode gestartet und mit Schaltfläche 78 lassen sich die Eigenschaften einer Variable festlegen. Schaltfläche 79 dient dazu, einen neu­ en 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 Fig. 8 ist die Vorgehensweise beschrieben, mit der das Ablaufssteuerungs­ programm 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 Fluss­ diagramm von Symbol zu Symbol seriell abgearbeitet wird. Eine zweite Grundlage ist die sogenannte flexible rekursive Prozessdefinition. Sie bedeutet, dass das Flussdiagramm in Prozesshierarchiestufen unterteilt wird, wobei ein Hauptprozess und jeweils darunterliegende Unterprozesse - hierarchisch geordnet und jeweils von einem Entscheidungssymbol des Flussdiagramms ausgehend - ggf. mehr­ stufig ablaufen. An einem Entscheidungs-Symbol (entsprechen der Verzweigung eines aktuellen Prozesses) wird dabei der aktuelle (übergeordnete) Prozess in zwei untergeordnete Prozesse, den sogenannten Wahr-Zweig und den sogenann­ ten Falsch-Zweig, unterteilt.
Die Programmschritte 85, 86 und 88 in Fig. 8 spielen bei der flexiblen rekursiven Prozessdefinition eine zentrale Rolle. In den Schritten 86 und 88 wird dabei je­ weils ü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 be­ endet und letzlich über die Schritte 89 (Quelltexte der Wahr- und Falsch-Zweige kombinieren), 90 (kombinierten Quelltext dem Gesamttext zufügen) und 85 (Über­ gabe 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 übergeord­ neten Funktionsprozess, d. h. es erfolgt ein Prozesswechsel nach oben. Es gilt ferner, dass beim Eintreten in eine Symbolsuche (Schritt 81) aus einem bestimm­ ten 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 Funkti­ onsprozess (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 zwi­ schen der dem Startsymbol entsprechenden Instanz und der dem ersten nachfol­ genden Symbol entsprechenden Instanz besteht, ausgewertet. Im Schritt 82 wird geprüft, ob das erste Symbol (N = 1) ein Entscheidungssymbol ist. Falls das Sym­ bol N keine Entscheidung darstellt, wird aus der Skript-Bibliothek 5 der dem aktu­ ellen Symbol N entsprechende Quelltext in der zuvor vom Bediener ausgewählten Programmiersprache ausgelesen und im Schritt 84 dem Gesamtquelltext hinzu­ gefügt. Von dort wird im Schritt 85 der Quelltext übergeben, ggf. über den Rück­ sprung 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, wel­ che 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 En­ de-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 entsprechen­ den 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 die­ ses Endesymbol dem Entscheidungssymbol N zugeordnet ist.
Nach vollständigem Abarbeiten eines Wahr-Zweiges wird zum Schritt 86 überge­ gangen und der Falsch-Zweig des aktuellen Funktionsprozesses vom Entschei­ dungs-Symbol N bis zum Ende-Symbol EN verfolgt. Im Schritt 89 werden die über­ gebenen Quelltexte des Wahr-Zweiges und des Falsch-Zweiges im aktuellen Funktionsprozess kombiniert und im Schritt 90 der so erzeugte Quelltext dem Ge­ samtquelltext 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.
Fig. 9 zeigt ein Flussdiagramm 95, das auf dem linken Teil 2a des Bildschirms 2 dargestellt wird, sowie den entsprechenden Quellcode 96 in der Programmier­ sprache 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 Varia­ blenname und der Variablentyp. Diese Eigenschaften werden automatisch von Gungem Chart abgefragt. Mit der Schaltfläche 78 "Ω" kann eine Variable neu erzeugt werden und über ein zusätzliches Auswahlmenü (siehe Fenster 97 in Fig. 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 ak­ tualisieren" dazu dient, ein eingefügtes Symbol und die zugehörige logische Ein­ bindung in ein Flussdiagramm unverzüglich als Quellcode umzusetzen, nachdem die logische Verbindungen (per Pfeil) zwischen dem Symbol, dem vorhergehen­ den Symbol und dem nachfolgenden Symbol hergestellt sind. Dadurch können insbesondere Programmieranfänger sofort erkennen, wie das von ihnen ausge­ wählte Symbol und die entsprechende Einbindung als Quellcode zu programmie­ ren ist. Der Lerneffekt ist bei dieser Methode besonders eindrucksvoll und unmit­ telbar. Die Umsetzung des Flussdiagramms kann jedoch alternativ auch auf Knopfdruck erfolgen (siehe Schaltfläche 77 in den Fig. 7, 9 und 12). Dem Pro­ grammierer ist es bei dieser Variante möglich, sein Flussdiagramm zuerst voll­ stä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 ein­ gefü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 Sym­ bole in der verketteten Liste her. In einer weiter verbesserten Ausführungsformen wird eine zusätzliche Schaltfläche vorgesehen, mit der die Pfeilverbindung zwi­ schen 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 automatisieren 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 Fluss­ diagramm jederzeit flexibel umgestaltet werden, ohne dass deren logischen Ver­ bindungen oder die Verbindungen (Variablenverbindungen) der entsprechenden verkettete Liste verloren gehen. Beispielsweise kann ein Feld des Flussdia­ gramms beliebig verschoben werden, wobei dessen Pfeilverbindungen zu dem vorhergehenden und nachfolgenden Symbol mitverschoben, d. h. die Verbindung erhalten bleibt.
In den Fig. 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 Fig. 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 Fig. 10 dargestellte, neu einzufügende Aufruf des Grafik-Modus (Ablauf-Symbol 100 im Flussdia­ gramm 95a) ist dabei im nächsten Schritt der Fig. 11 bereits eingefügt und im Bilschirm-Bereich 2b der Fig. 11 bereits als Quellcode umgesetzt. In Fig. 11 ist des weiteren zu sehen, wie eine Variable "Name" durch Auswahl von Menüpunk­ ten in Gungem Chart zugewiesen werden kann.
Fig. 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 an­ gebotene Art der Zuweisung, bei der im Klartext die Wirkung der Eingabe zu er­ kennen ist, wesentlich anschaulicher als der relativ komplizierte, in vielen Pro­ grammiersprachen 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.
Fig. 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 Fig. 1 gezeigten Komponenten sind in einem Computer mit beliebigem Betriebssystem, beispiels­ weise in einem Personal Computer mit Microsoft Windows® - Betriebssystem ent­ halten. Die Ablaufsteuerung 1 (Gungem Chart) bewirkt, dass über ein Eingabe­ mittel (Tastatur, Maus, Track-Ball etc.) ein Flussdiagramm (siehe Fig. 4) auf dem Bildschirm 2 erstellt werden kann. Dazu sorgt die Ablaufsteuerung 1 für eine An­ zeige auf dem Bildschirm 2, durch die verschiedene Symbole von Flussdiagram­ men 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 An­ zeigevorrichtung angezeigten Flussdiagramm (siehe Fig. 4) erstellt die Ablauf­ steuerung 1 (Gungem Chart) dazu eine dem Flussdiagramm entsprechende logi­ sche Sequenz von Variablen, in der die jeweiligen Ablaufssymbole des grafischen Flussdiagramms und ihre Verknüpfungen durch logische Verbindungen der Va­ rialen abgebildet sind.
Obwohl die Erfindung nur anhand einiger beispielhaft genannter Programmier­ sprachen und möglicher Dateistrukturen beschrieben wurde, ist klar, dass die Er­ findung auch in anderen Programmiersprachen realisierbar ist, beispielsweise in Fortran, Cobol, Basic oder dergleichen. Weiterhin wurde anhand der Fig. 8 ein konkretes Beispiel zum Erzeugen eines Quellcodes aus einer vorliegenden logi­ schen Datei (3a) beschrieben. Statt dieser Ausführungsform könnte auch ein be­ kanntes anderes Verfahren angewandt werden, welches aus einer datentechnisch vorhandenen logischen Abfolge von Informationen, die einem grafischen Fluss­ diagramm 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ützten Training (Computer Ba­ sed Training oder auch CBT genannt) einsetzbar. Dabei wäre es nützlich, die Er­ findung bereits als Bestandteil eines CBT in der Softwaregrundausstattung von Computern, zu integrieren. Dadurch wird von Anfang an ein Hilfsmittel für die Dar­ stellung 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 er­ forderlich 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 Teilbewe­ gungen 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 hin­ terlegt sind.
Die Erfindung kann in Form verschiedenster Ausprägungen auftreten, beispiels­ weise als Computerdatei, als Programm-Modul, als Programmelement, als Pro­ gramm-Bibliothek oder als Ansammlung von einer Vielzahl von Einzeldateien. Diese, insbesondere in Computerprogrammprodukten wie einem Speicherele­ ment, einer Diskette, einem Plattenspeicher, einer CD-ROM, einem programmier­ baren 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 Per­ sonen, die erstmals einen Computer erwerben, könnten dann mit dem frisch er­ standenen Computer ohne weitere Installationsarbeiten in die Grundzüge des Programmierens eingewiesen werden.

Claims (17)

1. Verfahren zum Erstellen eines Quellcodes (96) in einer höheren Program­ miersprache (Pascal, Turbo Pascal, C/C++, Basic), umfassend folgende Schritte:
  • a) Programmablaufs-Symbole (100) werden an einem Anzeigegerät (2) grafisch derart miteinander verbunden, dass ein Flussdiagramm (95) er­ zeugt wird,
  • b) die grafischen Informationen (3b) des Flussdiagramms (95) werden ge­ speichert,
  • c) es werden logische Datensätze (3a) erzeugt, die dem Flussdiagramm (95) entsprechen und
  • d) ein Quellcode-Erzeugungsmittel (Gungem Chart, 1) erzeugt anhand der logischen Datensätze (3a) einen dem definierten Flussdiagramm (95) ent­ sprechenden Quellcode (96).
2. Verfahren nach Anspruch 1, wobei die logischen Datensätze (3a) nach Art einer verketteten Liste gebildet werden.
3. Verfahren nach Anspruch 2, wobei die verkettete Liste (3a) Instanzen einer Symbolklasse (flow) 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 des Ausgabegeräts (2a) das Flussdiagramm (59) und in einem zweiten Teilbereich (2b) des Ausgabegeräts (2) der Quellcode (96) wahrnehmbar ist.
5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Pro­ grammiersprache des Quellcodes (96) aus mehreren Programmierspra­ chen (Pascal, Turbo Pascal, C, C++, Basic) auswählbar ist.
6. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Quellcode-Erzeugungsmittel (Gungem Chart, 1) über einen insbesondere programmspezifisch angepaßten Befehlscode (Skript-Sprache) mit einer Sprachbibliothek (5) zusammenwirkt.
7. Verfahren nach den Ansprüchen 5 und 6, wobei mit der Sprachbibliothek (5) eine Zuordnung zwischen den vom Quellcode-Erzeugungsmittel (Gun­ gem Chart, 1) zur Verfügung gestellten logischen Daten (3a) und den für die jeweils ausgewählte Programmiersprache entsprechenden Programm­ befehlen erfolgt.
8. Verfahren nach einem der vorhergehenden Ansprüche, wobei eine Pro­ grammablaufs-Anweisung zur Auswahl als vollständige Klartext-Anweisung angezeigt wird.
9. Verfahren nach Anspruch 8, wobei die Programmablaufs-Anweisung in mehreren, innerhalb der Auswahl aufeinanderfolgenden Teilabfragen (121) vervollständigt wird.
10. Verfahren nach einem der vorhergehenden Ansprüche, wobei eine Pro­ grammablaufs-Anweisung zur Auswahl als grafisches Symbol angezeigt wird.
11. Verfahren nach einem der vorhergehenden Ansprüche, wobei eine erste Schaltfläche (77, 120) vorgesehen ist, mit der die Erzeugung des Quellcodes (96) gestartet wird.
12. Verfahren nach Anspruch 11, wobei eine zweite Schaltfläche (79a) vorge­ sehen ist, mit der aus dem Quellcode (96) ein auf einem Mikroprozessor di­ rekt ablauffähiges Computerprogramm (object code) erstellt wird.
13. Verfahren nach Anspruch 12, wobei zum Erzeugen des direkt ablauffähigen Computerprogramms (object code) ein Compiler-Programm (6, 7) verwen­ det wird.
14. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Fluss­ diagramm (95) zur Erzeugung des Quellcodes (96), ausgehend von Ent­ scheidungs-Symbolen (45), in Prozesshierarchiestufen eingeteilt wird, die jeweils hierarchisch geordnet abgearbeitet werden (flexible rekursive Pro­ zessdefinition).
15. Computerprogrammprodukt (Datei, Programm, Programmbibliothek, Be­ triebssystem, CD-ROM) zum computergestützten Erstellen eines Compu­ terprogramms, das bei seiner Verwendung auf einem Computer einen Verfahrensablauf nach einem der vorhergehenden Ansprüche ermöglicht.
16. System zum Erstellen eines Computerprogramms mit Mitteln zum Durch­ führen eines Verfahrens nach einem der Ansprüche 1 bis 14.
17. System nach Anspruch 16, umfassend einen Computer.
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 true DE10008632A1 (de) 2001-09-06
DE10008632B4 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 (6)

* 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
WO2004072849A1 (de) * 2003-02-17 2004-08-26 Giesecke & Devrient Gmbh Verfahren zum erstellen von programmcode
WO2009075602A1 (en) * 2007-12-13 2009-06-18 Motorola, Inc. Scenarios creation system for a mobile device
CN112639636A (zh) * 2018-10-05 2021-04-09 欧姆龙株式会社 开发支援程序、开发支援装置以及开发支援方法
CN113986212A (zh) * 2021-09-23 2022-01-28 新华三信息安全技术有限公司 一种生成pad图的方法和终端设备

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1589416A3 (de) 2004-04-23 2007-10-31 jCOM1 AG Verfahren und System zum Erzeugen eines Quellcodes für ein Computerprogramm
DE102011000185A1 (de) 2011-01-17 2012-07-19 Metasonic Ag System und Verfahren zum Erzeugen eines Quellcodes für ein Computerprogramm
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

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

Cited By (7)

* 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
WO2004072849A1 (de) * 2003-02-17 2004-08-26 Giesecke & Devrient Gmbh Verfahren zum erstellen von programmcode
WO2009075602A1 (en) * 2007-12-13 2009-06-18 Motorola, Inc. Scenarios creation system for a mobile device
CN112639636A (zh) * 2018-10-05 2021-04-09 欧姆龙株式会社 开发支援程序、开发支援装置以及开发支援方法
CN112639636B (zh) * 2018-10-05 2023-06-30 欧姆龙株式会社 开发支援装置、开发支援方法以及存储介质
CN113986212A (zh) * 2021-09-23 2022-01-28 新华三信息安全技术有限公司 一种生成pad图的方法和终端设备

Also Published As

Publication number Publication date
DE10008632B4 (de) 2004-02-26

Similar Documents

Publication Publication Date Title
DE69326226T2 (de) Verfahren zum Strukturieren von in einem industriellen Prozess verwendeten Informationen und Anwendung als Flugzeugführungshilfe
DE3750188T2 (de) Verfahren zur In-Linie Implementierung einer Vorstellung in einem Informationsverarbeitungssystem.
DE68919503T2 (de) Methode und System zur Darstellung einer Benutzeroberfläche auf einem Computerbildschirm.
DE3650736T2 (de) Informationswiederauffindungsverfahren
DE69129328T2 (de) Ikonobjektschnittstellesystem und -verfahren
DE69231431T2 (de) Globale Benutzerschnittstelle
DE69410753T2 (de) Vorrichtung und Verfahren zur Analyse eines Verarbeitungsystems
DE69026885T2 (de) Dynamische Selektion von Datenformaten für rekursiv geschachtelte logische Elemente
DE10135445A1 (de) Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage
DE69609130T2 (de) Umblätterapparat zur Anwendung mit einem Rechnersystem
DE2810977A1 (de) Anordnung zum erzeugen und korrigieren eines benutzerprogramms
DE102007058352A1 (de) Programmerstellung durch Ableiten des Prozesssteuerungsablaufes durch Zuordnung von Funktionen dynamischer Grafikobjekte
DE10008632B4 (de) Verfahren und System zum Erzeugen eines Computerprogramms
DE102004043788A1 (de) Programm Generator
EP3032408A1 (de) Verfahren zur erzeugung von lauffähigen applikationen mit dynamischen skalierbaren vektorgrafiken
EP0919896A1 (de) Verfahren zur bildschirmgestützten Definition und Parametrierung von Schnittstellen
DE69121113T2 (de) Verfahren zur bestimmung von benutzerschnittstellen und programmiersystem fur einen rechner mit mehreren benutzerschnittstellen
DE60032403T2 (de) Speziell adaptierte Wiedergabe und Darstellung von Datenbankinformationen
DE102007001773A1 (de) Vorrichtung zum automatisierten Erzeugen von Programmcode
DE69427218T2 (de) Cursor mit vielfachen Anzeigestellen
EP0838054A1 (de) Verfahren und steuereinrichtung für eine graphische steuerung von abläufen in einem netzwerkmanagementsystem
DE3889652T2 (de) Dokumentenverarbeitungsanordnung.
EP2171582A1 (de) Fernbedienung eines browser-programms
EP1610219A1 (de) Programmiersystem
EP1607910A2 (de) Verfahren zur grafischen Darstellung von Gegenständen und technischen Prozessen auf einem Bildschirm

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