www.qtsoftware.de
plusFORT
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;
  • 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.

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 zielt auf die 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 (=> Beispiele).
SPAG wird über eine Konfigurationsdatei ("SPAG.FIG") gesteuert.

SPAG Test: Der Hersteller bietet den kostenlosen Service der Umwandlung von Fortran 77 in Fortran 90
==> On-Line Fortran F77 - F90 Converter

Des weiteren ist zur Demonstration auf YouTube ein Video vorhanden: "Restructuring Fortran code using plusFORT".

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 läßt. 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 IBM MVS-Programm. Der Quellcode aller Versionen kann komplett in einem Programm vorliegen und QMERGE generiert aufgrund von Steuervariablen und Metakommandos, z.B.

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

den versions-spezifischen Fortran-Quellcode, der anschließend normal compiliert werden kann.

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 compiliert diese gegebenenfalls. 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.

plusFORT bzw. seine Utilties sind für PC unter Linux, MacOSX und Windows erhältlich.

Dokumentation

Die Online-Dokumentation wird in englischer Sprache geliefert.

 
Preislisten
·
Dienstleistungen
·
Links
·
·
·
·
·
·
·
·

Lieferumfang, Systemanforderungen etc.

   
Artikelstammkürzel PLUSFO
Lieferumfang Software und Online-Dokumentation (Lieferung via Download)
Unterstützte
Betriebssystem(e)

PC (unter Windows, Linux MacOSX)

Systemanforderungen PC: mit Pentium oder besser, Festplatte mit einigen MB frei
Hersteller Polyhedron Solutions Ltd.
Aktuelle Version v7.1
Lizensierungsvarianten Einzelplatzlizenz und Mehrplatzlizenzen
Lizenz- bzw. Laufzeitgebühren n.a.
Patches erhältlich ja
Updates erhältlich ja, im Rahmen eines Wartungsvertrags ("maintenance")
Technischer Support durch den Hersteller im Rahmen eines Wartungsvertrags ("maintenance")
Datenblatt erhältlich nein
Testversion nein
Produktinformationen des Herstellers http://www.fortran.uk/fortran-analysis-and-refactoring-with-plusfort/
Informationsstand 23. April 2017
zum Anfang
   

Hinweise zu Haftung & Urheberrecht bzgl. der Information auf dieser WebSeite.
Copyright QT software GmbH 2017. Alle Rechte vorbehalten.