StructorizerHandbuch DE

Exportoptionen

Über das Menü „Preferences" können Sie den Dialog „Export Options" (Exportoptionen) öffnen, in dem allgemeine oder zielsprachenspezifische Präferenzen für den Code-Export konfiguriert werden können:

Dialog „Export options
Dialog „Export options"

Was bedeuten die Optionen:

  • Character Set (Zeichensatz)
    Sie können steuern, welche Zeichenkodierung beim Export verwendet wird. In der Regel wäre ISO-8859-1 oder UTF-8 am geeignetsten (zumindest in West- oder Mitteleuropa). Während „List all?" nicht aktiviert ist, bietet die Auswahlliste nur etwa sechs der gebräuchlichsten Zeichensätze an. Durch Aktivieren von „List all?" werden Ihnen hingegen mehrere Dutzend Kodierungen angeboten, d. h. alle, die Ihre Java-Version kennt.
  • Favorite Code Export (Bevorzugter Code-Export)
    Wenn Sie häufig Code in eine bevorzugte Programmiersprache exportieren, kann es umständlich sein, immer durch das Menü „File › Export › Code › Java" (zum Beispiel) zu klicken. Es gibt eine konfigurierbare Abkürzung für eine bevorzugte oder häufig benötigte Zielsprache. Sie ist direkt im Menü „File" und über die Tastenkombination <Ctrl><Shift><X> vorhanden.
    Menü „File
    Menü „File" mit markiertem Menüpunkt für den bevorzugten Export

    Mit der Exportoption Favorite Code Export können Sie die Zielsprache für diesen Menüeintrag und die Tastenkombination auswählen.

    Seit Version 3.29-03 gibt es neben der Kombinationsliste für die bevorzugte Zielsprache einen konfigurierbaren Zählerwert: Er legt die Anzahl aufeinanderfolgender erfolgreicher Exporte in dieselbe andere Zielsprache fest, nach der ein Vorschlag zur Übernahme dieser Sprache als neue Lieblingssprache gemacht wird. Wenn Sie bestätigen (Schaltfläche „Yes"), hat dies denselben Effekt, als hätten Sie die neue Favorite Code Export-Sprache hier im Exportoptionen-Dialog gewählt. Sobald Sie einmal in eine andere Sprache exportieren oder die Lieblingssprache wechseln, beginnt die Zählung erneut bei 1. Sie können diesen Vorschlagsmechanismus deaktivieren, indem Sie den Wert im Spinner auf 0 verringern (siehe auch den Tooltip des Spinners).
    Vorschlag für bevorzugten Export nach der definierten Anzahl
    Vorschlag für bevorzugten Export nach der definierten Anzahl

    Seit Version 3.30 können Sie die bevorzugte Code-Export-Sprache auch einfach über das Kontextmenü der Code-Vorschau ändern.
  • No conversion of the expression/instruction contents (Keine Konvertierung des Ausdrucks-/Anweisungsinhalts) (für alle Zielsprachen)
    Obwohl Nassi-Shneiderman-Diagramme grundsätzlich syntaxfrei sind, akzeptieren einige Structorizer-Funktionen wie Executor und Analyser eine (etwas eklektische) HLL-Syntax und arbeiten damit. Code-Generatoren leiten den Zielcode entsprechend unter der Annahme ab, dass Anweisungen und Ausdrücke in diesem ausführbaren und analysierbaren Structorizer-Dialekt geschrieben sind.

    Dies führt natürlich zu Problemen, wenn die Textinhalte der Diagrammelemente bereits gemäß den spezifischen syntaktischen Konventionen der beabsichtigten Zielsprache formuliert wurden. In diesem Fall würde Structorizer beim Export den bereits vorbereiteten Text verfälschen.

    Wenn Sie also explizit für eine bevorzugte Sprache arbeiten und dokumentieren und die Elementtexte bereits in der spezifischen Zielsprachsyntax eingeben, können Sie dieses Kontrollkästchen aktivieren. Damit werden nur die strukturellen (und eng verwandten) Konvertierungen, aber keine (oder nur minimale) Übersetzung der Anweisungszeilen, Bedingungen usw. durchgeführt. Es handelt sich um einen „Roh-Export", der besonders wertvoll für dedizierte Shell-Skript-Entwicklung ist. Mit Version 3.32-32 wurden die Regeln dieser (bisher etwas vagen) Unterscheidung expliziter festgelegt und werden seitdem strenger eingehalten.
  • Export instructions as comments (Anweisungen als Kommentare exportieren) (relevant für die meisten Zielformate)
    Wenn diese Option aktiviert ist, wird der Code von Anweisungs-, CALL- und EXIT-Elementen nur als reine Kommentare exportiert.
  • Put block-opening brace on same line (Öffnende Blockklammer in derselben Zeile) (relevant für C, C++, C# und Java)
    Diese Option betrifft den Code-Stil von zusammengesetzten Anweisungen in C-ähnlichen Sprachen. Bei aktivierter Option beginnen Blöcke (d. h. die öffnende Klammer) am Ende der steuernden Zeile, z. B.:
    if (c == 0) {
        a = 17;
    }
    Andernfalls beginnt der Block am Anfang der nächsten Zeile:
    if (c == 0)
    {
        a = 17;
    }
  • Involve called subroutines (Aufgerufene Unterprogramme einbeziehen)
    Wenn dieser Modus aktiv ist und das zu exportierende Diagramm CALL-Elemente enthält, sucht der Code-Generator nach verfügbaren passenden Diagrammen (im Arranger) und fügt deren Code in den Export ein. Auf diese Weise enthält der generierte Code – wenn alle erforderlichen Unterprogramm-Diagramme gefunden werden – alle notwendigen Routinedefinitionen, um den Code (nach der üblichen manuellen Nachbearbeitung) lauffähig zu machen. Dasselbe gilt für einschließbare Diagramme, auf die die Einschluss-Liste des exportierten Diagramms verweist.

    Diese Option gilt für alle angebotenen Exportsprachen. Die Unterprogramm-Abhängigkeiten werden analysiert und eine topologische Sortierung versucht, d. h. der Code eines Unterprogramms geht dem seines Aufrufers voraus. Die meisten Compiler erfordern diese Reihenfolge. (Beachten Sie jedoch, dass der resultierende Code bei z. B. BASIC mit ebenfalls aktivierter Zeilennummerierung möglicherweise nicht funktionsfähig ist, da die nummerierten Zeilen das Einfügen größerer Code-Blöcke von einem anderen Ort nicht ohne Weiteres erlauben.) Für den Gruppenexport (Versionen ≥ 3.30-07) ist die Bedeutung etwas anders: Wenn aktiviert, können Unterprogramme oder einschließbare Diagramme (siehe Diagrammtyp) aus anderen Gruppen ebenfalls einbezogen werden, sofern sie referenziert und innerhalb der eigenen Gruppe nicht verfügbar sind. Andernfalls fehlt ihr Code in der exportierten Datei (es wird jedoch eine Warnung ausgegeben, die die fehlenden Diagramme auflistet).
  • Export author and license attributes (Autoren- und Lizenzattribute exportieren)
    Wenn dieser Modus aktiv ist (der Standard), werden Metainformationen (Name des Erstellers und letzten Bearbeiters des Diagramms sowie entsprechende Daten, Lizenzname und -text, wie in den Speicheroptionen konfigurierbar) ebenfalls als Kommentare in den exportierten Code geschrieben.
  • Propose export directory from NSD location if available (Exportverzeichnis aus NSD-Speicherort vorschlagen, wenn verfügbar) (seit Version 3.30-07)
    Wenn diese Option gewählt ist (der Standard) und das zu exportierende Diagramm einer .nsd-Datei zugeordnet ist, bietet der Dateiauswahl-Dialog für den Export das Verzeichnis der NSD-Datei als Zielordner an. Bei deaktivierter Option wird immer der zuletzt verwendete Exportordner vorgeschlagen.
  • Default array size (if required) (Standard-Array-Größe, falls erforderlich) (seit Version 3.30-08)
    Viele Programmiersprachen erfordern, dass Arrays mit einer bestimmten Größe deklariert werden. Structorizer tut dies nicht. Daher finden Code-Generatoren für Sprachen mit obligatorischer Deklaration oft nicht genug Informationen im Diagramm, um eine sinnvolle Größe zu schätzen. Bei aktivierter Option verwendet der Generator den über den Spinner angegebenen Wert als Standard-Array-Größe in solchen Fällen.
  • Default string length (if required) (Standard-Zeichenkettenlänge, falls erforderlich) (seit Version 3.30-08)
    Einige Sprachen (wie C oder Pascal) erfordern, dass Zeichenkettenvariablen mit einer bestimmten Länge dimensioniert werden. Bei aktivierter Option wird der über den Spinner angegebene Wert als Standardlänge für Zeichenkettendeklarationen verwendet.

Sprachspezifische Optionen

Version 3.31-04 hat ein neues Generator-Plugin hinzugefügt, das Diagramme als Pseudocode-Algorithmen für LaTeX exportiert. Hier wird die Bedeutung und Wirkung plugin-spezifischer Optionen erklärt:

BASIC

Sprachspezifische Exportoptionen für BASIC
Sprachspezifische Exportoptionen für BASIC
  • Generate line numbers on export (Zeilennummern beim Export generieren):
    BASIC hat zahlreiche Dialekte entwickelt. Diese Option unterteilt die BASIC-Welt grob in:
    1. ältere Typen mit obligatorischen Zeilennummern und sehr eingeschränkter Unterprogrammunterstützung („Vintage"-BASIC)
    2. modernere Stile ohne Zeilennummern, aber mit allgemeinen Variablendeklarationen via „dim ... as ..."

Perl

Sprachspezifische Exportoptionen für Perl
Sprachspezifische Exportoptionen für Perl
  • Export constants via pragma use constant (Konstanten über Pragma use constant exportieren) (seit Version 3.32-20):
    Standardmäßig werden Konstantendefinitionen wie normale Variablen exportiert. Bei aktivierter Option verwendet der Generator das Pragma „use constant", was jedoch Inkonsistenzen verursachen kann, da „use constant" nur funktioniert, wenn der Konstantenwert zur Kompilierzeit von Perl berechnet werden kann.

ARM (in Entwicklung)

Sprachspezifische Exportoptionen für ARM
Sprachspezifische Exportoptionen für ARM
  • Code for GNU compiler (instead of KEIL) (Code für GNU-Compiler, anstatt KEIL):
    Standardmäßig wird ARM-Code mit der KEIL-Assembler-Sprache generiert. Durch Aktivieren dieser Option wird stattdessen die GNU-Assembler-Syntax für den Export verwendet.
  • Ensure memory alignment of data and code (Speicherausrichtung von Daten und Code sicherstellen) (seit Version 3.32-03):
    Bei aktivierter Option werden .align-Direktiven vor Array-Allokationen und dem Text-Abschnitt eingefügt (nur im GNU-Modus wirksam).
  • Store strings with 0-termination (Zeichenketten mit 0-Abschluss speichern) (seit Version 3.32-04):
    Normalerweise werden Zeichenkettenliterale ohne abschließendes '\0'-Zeichen gespeichert. Bei aktivierter Option wird ein abschließender 0-Code angehängt.
  • Restrict to element content on ARM level (Auf Element-Inhalt auf ARM-Ebene beschränken) (seit Version 3.32-05):
    Beschränkt Benutzer auf Anweisungsinhalte, die mit den Fähigkeiten von ARM-Prozessoren auf niedrigem Niveau kompatibel sind.

LATEX/Algorithm

Sprachspezifische Exportoptionen für LaTeX
Sprachspezifische Exportoptionen für LaTeX
  • LaTeX package to be used (Zu verwendendes LaTeX-Paket):
    Hier können Sie unter folgenden LaTeX-Paketen für Pseudocode-Algorithmen wählen:
    • algorithmicx (Environment-Variante algpseudocode)
    • algorithmic (auch als „algorithms" bekannt)
    • algorithm2e
    • pseudocode
  • Line numbering step (Schritt der Zeilennummerierung):
    Einige LaTeX-Algorithmus-Pakete erlauben eine automatische Nummerierung der Anweisungszeilen. Der Wert 0 schaltet die Zeilennummerierung ab.
  • Put a semicolon after every instruction (Ein Semikolon nach jeder Anweisung):
    Bei aktivierter Option wird an alle Anweisungen ein Semikolon angehängt.

Die folgenden Beispiele (der Zeilennummerierungsschritt wurde auf 5 gesetzt und Semikolons wurden deaktiviert) geben Ihnen eine Idee der verschiedenen Stile:

Funktionsdiagramm für den Export
Funktionsdiagramm für den Export
LaTeX algorithmicx-Darstellung
LaTeX algorithmicx-Darstellung
LaTeX algorithmic-Darstellung
LaTeX algorithmic-Darstellung
LaTeX algorithm2e-Darstellung
LaTeX algorithm2e-Darstellung
LaTeX pseudocode-Darstellung
LaTeX pseudocode-Darstellung

Registerkarte „Includes"

Die Registerkarte Includes im Exportoptionen-Dialog ermöglicht die Konfiguration von Listen von Dateien oder Modulen, die formal vom exportierten Code eingeschlossen (oder importiert) werden sollen:

Dialog „Export options
Dialog „Export options" (Registerkarte Includes)

Für eine bestimmte Zielsprache geben Sie eine kommagetrennte Liste von Entitäten ein, die in Include/Import/Use-Direktiven platziert werden sollen. Was die Entitäten bedeuten und wie die jeweilige Direktive aussieht, hängt von der Zielsprache ab. Diese Konfigurationsmöglichkeit ist für den Fall gedacht, dass Sie eine große Anzahl von Diagrammexporten in eine bestimmte Zielsprache erzeugen, bei denen immer bestimmte benutzerspezifische Datei-Includes, Modul-Importe usw. sonst für jeden manuell eingefügt werden müssten.

Hinweis: Seit Version 3.30-11 können alle GUI-gesteuerten Code-Export-Funktionen (d. h. sie verschwinden aus den Menüs) über eine Zeile noExportImport=1 in einer zentralen vorrangigen ini-Datei unterdrückt werden. Diese Präferenzzeile kann nur manuell in eine solche Datei eingefügt werden (z. B. mit einem Texteditor).