plusFORT

2.145,57 12.771,08 

Beschreibung

Fortran Quellcode-Reorganisation und Überprüfung

Das plusFORT Programm-Paket besteht aus mehreren sehr hilfreichen Utilities für die Wartung von Fortran Quellcode:

  • SPAG dient der Quellcode-Reorganisation
  • HyperKWIC ist ein Werkzeug zur Generierung von Software Dokumentation
  • GXCHK ist ein Global Cross Check Tool und dient der Analyse und der Dokumentation von Fortran-Quellcode
  • QMERGE generiert versions-spezifischen Quellcode
  • AUTOMAKE ist ein “intelligentes” MAKE-Utility
Abb.: plusFORT Bedienoberfläche (Front End)

SPAG – “The Spaghetti Unscrambler”

Die meist mühsame und zeitraubende Reorganisation von Fortran Programmen, insbesondere von “Spaghetti-Code” oder die Mühen einer manuellen Portierung erspart einem SPAG. Der “Spaghetti Unscrambler” ermöglicht eine strukturierte und logisch äquivalente Umformung des Fortran Quellcodes und kann auch vorteilhaft zur Programmdokumentation eingesetzt werden. SPAG verhilft dadurch zur Verbesserung der Lesbarkeit und die Vereinfachung der Wartung von Fortran Code. Für die Umwandlung von “Spaghetti-Code” in ein strukturiertes Programm verwendet SPAG einen iterativen Vereinfachungs-Algorithmus, der ein dem Input-Code äquivalentes Programm erzeugt. SPAG ist hinsichtlich verschiedener Aspekte (mehr als 100) konfigurierbar, z.B.:

  • Elimination von GOTOs,
  • Erzeugung von IF-Blöcken oder CASE … SELECT-Strukturen aus computed GOTOs,
  • Ersetzen von single-line-IF-Anweisungen durch logisch verknüpfte IFs,
  • Konversion DO… CONTINUE in DO ENDDO oder DO WHILE … ENDDO,
  • Entfernung von nicht-benutzten Code-Teilen,
  • Eliminierung von nicht benutzten PARAMETERn,
  • Variablen- und COMMON-Deklarationen,
  • Forcierung von expliziter Variablen-Deklaration,
  • globale Änderung von Variablennamen,
  • Umwandlung von Output in Groß/Kleinschrift bzw. gemischt für spezielle Programmelemente,
  • Strukturierung durch Einrücken,
  • Erstellung von Symboltabellen u.v.m..

So läßt sich bspw. ein Fortran 66 in ein Fortran 77-Programm oder in ein Fortran 90 konformes umformen (siehe Beispiele).
SPAG wird intern über eine Konfigurationsdatei  gesteuert – Beispiel: SPAG.FIG
Man kann die Konfiguration somit nicht nur über die Bedienoberfläche vornehmen, sondern auch  bestehende Projekt-Konfigurationen kopieren und sie dann nach Bedarf abändern.
SPAG Testen: Der Hersteller bietet den kostenlosen Service der Umwandlung von Fortran 77 in Fortran 90 an (bis zu 500 Zeilen): On-Line Fortran F77 – F90 Converter
Des weiteren ist zur Demonstration von SPAG auf YouTube ein Video vorhanden: „Restructuring Fortran code using plusFORT“.

HyperKWIC

ist ein Werkzeug zur Generierung von Software Dokumentation. Es kombiniert die unmittelbare Konnektivität von Hypertext mit der analytischen Stärke von Schlüsselwortensuchmechanismen. HyperKWIC erzeugt HTML Dokumente, die eine interaktive Alternative zu herkömmlichen Dokumentation eröffnet.
HyperKWIC kann nicht nur zur Dokumentation von Fortran Code verwandt werden, sondern auch für Programme, die in C, C++, Delphi oder anderen gängigen Programmiersprachen geschrieben sind.

GXCHK

GXCHK ist ein Global Cross Check Tool, mit dem sich die Verwendung von Variablen, COMMONs, INCLUDE Dateien und PARAMETER in einem modularisiertem Programm analysieren lassen.

Abb.: Internalisation Report – er zeigt welche Subroutinen und Funktionen in interne Unterprogramme konvertiert werden können. um die Anzahl der zu bindenden Programmeinheiten zu reduzieren.

So lassen sich bspw. undefinierte Variablen, Inkonsistenzen von Unterprogrammaufrufen und COMMON-Block-Differenzen aufspüren. GXCHK produziert einen

  • CALL Tree,
  • Symbol-Tabellen und
  • Reports über die Verwendung von COMMON Variablen und INCLUDE Dateien u.a..

Auf YouTube existiert dazu ein Video: „Global Static Analysis of a Fortran Program using plusFORT“.

Dynamic Analysis Option

Compiler und auch GXCHK arbeiten statisch, d.h. Analysen werden am Quellcode ausgeführt. Bestimmte Laufzeitfehler können so allerdings nicht festgestellt werden. Dem Manko kann mit der Dynamic Analysis Option begegnet werden. Es ist mit plusFORT möglich in einem Programm sogenannten Check-Code automatisch zu “implantieren”, der die Verwendung von bestimmten Variablen während der Laufzeit überwacht und ein Protokoll darüber in einer Datei ablegt, die dann späteren Analysezwecken dient.
Zur Demonstration findet sich auf YouTube ein Video: „Dynamic Analysis of Fortran programs using plusFORT“.

QMERGE

QMERGE dient der Kontrolle von Programmen, die in verschiedenen Versionen vorliegen, bspw. als Version für PC, VAX oder als IBM MVS-Programm. Der Quellcode aller Versionen kann komplett in einem Programm vorliegen und QMERGE generiert aufgrund von Steuervariablen und Metakommandos den versions-spezifischen Fortran-Quellcode, der anschließend normal compiliert werden kann, z.B.

* - IF IBMPC
Fortran statements für PC Version
* - ELSE IF
MVS,VAX Fortran statements für MVS und VAX Version
* - END IF

AUTOMAKE

AUTOMAKE ist ein MAKE-Utility, daß der automatisierten Compilierung von Programmteilen eines Programmprojektes dient. Bspw. hat man ein Programm, das aus vielen in separaten Dateien abgelegten, SUBROUTINEs besteht, die aufgrund einer Änderung eines INCLUDE-Files, das in mehreren dieser SUBROUTINEs verwendet wird, neu kompiliert werden müssen. AUTOMAKE prüft, ob das betreffende INCLUDE-File in der SUBROUTINE verwendet wird und sorgt gegebenenfalls für dessen Compilierung. AUTOMAKE hat gegenüber vielen anderen MAKE-Utilities den Vorteil, daß es den MAKE-File sozusagen selbst generiert. D.h., man ist nicht mehr genötigt die Quellcode-Abhängigkeiten innerhalb eines Programm-Projekts selbst herauszufinden, sondern spezifiziert in einem AUTOMAKE-File lediglich die zum Programm-Projekt zugehörigen Dateinamen und deren Compile- und Link-Kommandos.

Dokumentation

Die plusFORT und seine Tools werden in einer Online-Dokumentation in englischer Sprache beschrieben.

Lizensierung

plusFORT bzw. seine Utilties werden für PC unter Linux, MacOS und Windows bereitgestellt. Eine Nutzungslizenz erlaubt die Verwendung unter allen 3 Betriebssystemen (multi-platform licence).
Angeboten werden

  • Single named user – Lizenz für einen benannten Benutzer
  • Department – Mehrplatzlizenz für bis zu 12 Installationen durch unterschiedliche Benutzer
  • Site – Firmenlizenz, die eine unlimiterte Anzahl von Installationen an einem Firmensitz erlaubt.

Beim Erwerb einer Lizenz sind 3 Monate Wartung durch den Hersteller inbegriffen. Wartung umfaßt die Bereitstellung von Updates und technischem Support via Email während des Wartungszeitraums.
Jahreswartung bzw. Wartungserneuerung kann ebenfalls erworben werden. Dafür fragen Sie bitte bei Interesse an.
Akademische Lizenzen zur ausschließlich nicht-kommerziellen Nutzung sind kostenlos vom Hersteller erhältlich.

Zusätzliche Informationen

Benutzer

single named user, departmental, site