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-Analyse und der Reorganisation bzw. Restrukturierung.
  • HyperKWIC ist ein Werkzeug zur Generierung von Software Dokumentation.
  • GXCHK ist ein Global Cross Check Tool und dient der statischen Analyse und der Dokumentation von Fortran-Quellcode.
  • CVRANAL erstellt Berichte über die Codenutzung (coverage analysis).
  • QMERGE generiert versions-spezifischen Quellcode.
  • QSPLIT erlaubt die Zerlegung von Dateien, die durch QMERGE oder SPAG erzeugt worden sind.
  • AUTOMAKE ist ein “intelligentes” MAKE-Utility.
  • PFFE ist die grafische Bedienoberfläche, die die bequeme Konfiguration von SPAG, GXCHK, CVRANAL und HyperKWIC und deren Start bzw. Ablauf erlaubt.


PFFE - 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 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. Damit ist es möglich, SPAG auch von der Kommandozeile einer "DOS Eingabeaufforderung" oder aus einem Linux-Terminal-Fenster zu starten. Und natürlich auch aus Batch- bzw. Skriptdateien.

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 von SPAG und PFFE 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 Programmsystem analysieren läßt (global static analysis). Dazu verwenden GXCHK die Symboltabellen, die zuvor von SPAG erzeugt worden sind und faßt die Information zu einem Bericht im HTML Format zusammen. Der Bericht kann dann in einem der üblichen Internet-Browser angezeigt werden und verfügt über Hyperlinks, um die Information in unterschiedlichen Persepektiven, jeweils entsprechend strukturiert, zu sichten. Im einzelnen sind dies:

  • Reading Symbol Tables Information
  • Warning and Error Messages
  • Subprogram Argument Checks
  • Sub-program Location Index
  • Sub-program Reference Reports
  • Aggregated COMMON block Usage Reports
  • COMMON variable Usage Reports
  • PARAMETER Usage Reports
  • Aggregated MODULE Usage Reports
  • MODULE variable Usage Reports
  • Internalisation Report
  • CALL Tree
  • Error and Warning Message Summary


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

Für Programmierer, die sich in ältere Programme einarbeiten sollen, sind Ansichten wie

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

ohne Zweifel eine große Hilfe sich in einem umbekannten Programmsystem zurecht zu finden. Aber auch für Programmentwickler, die umfangreiche Programmsystem zu warten haben, sind die Berichte über bspw. undefinierte Variablen, Inkonsistenzen von Unterprogrammaufrufen und COMMON-Block-Differenzen sehr hilfreich.

Cluster Analysis Matrix - zeigt Unterprogrammgruppen, die auf der Basis der Datennutzung und der Aufrufmuster Kanditaten zur Zusammenfassung in MODULEn sind.

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 (probes) 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".

CVRANAL

Coverage Analysis untersucht u.a., ob jede Quellcodezeile in einem Programm auch ausgeführt wird, wie oft Prozeduren gerufen werden, die Zeit, die der Programmlauf in diesen Prozeduren verbringt.
Der Post-Prozessor CVRANAL analysiert die Ergebnisse von Programmen, die mit der zuvor beschriebene Dynamic Analysis Option von SPAG erstellt worden sind und deren Abläufe diverse Berichtsdateien erzeugt haben.
Dadurch lassen sich bspw.

  • Codebereiche mit intensiver Nutzung (hot spots) identifizieren
  • Laufzeiten ermitteln, die eine Prozedur beansprucht
  • oder die Anzahl der Aufrufe der verschiedenen Routinen.

Zur Demonstration findet sich auf YouTube ein Video:
"Using plusFORT for Coverage Analysis of a Fortran program".

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.

Lizenzsierung

plusFORT ist für PC unter Linux, MacOSX und Windows verfügbar. Für den nicht-kommerziellen Gebrauch in Forschung, Lehre und zu privaten Zwecken sind vom Hersteller kostenlose Lizenzen erhältlich.

Dokumentation

Die Online-Dokumentation wird in englischer Sprache geliefert.

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

Lieferumfang, Systemanforderungen etc.

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

64-Bit PC (unter 64-Bit Windows, Linux, Mac)

Systemanforderungen PC: mit Pentium oder besser, Festplatte mit einigen MB frei
Hersteller Polyhedron Solutions Ltd.
Aktuelle Version 8.0
Lizensierungsvarianten Einzelplatzlizenz und Mehrplatzlizenzen;
für den nicht-kommerziellen Gebrauch in Forschung, Lehre und zu privaten Zwecken sind vom Hersteller kostenlose Lizenzen erhältlich.
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")
Testversion ja, bedingt (online-converter)
Produktinformationen des Herstellers https://www.fortran.uk/
Informationsstand 6. Jan, 2024
zum Anfang
   

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