PAKO

Voraussetzungen:

Das in anderen kompilierenden Programmiersprachen übliche System der Kontrolle von Aufrufparametern via Prototypen, die in  include-Files deklariert sind, ist in FORTRAN nicht verfügbar.Besonders in sehr umfangreichen komplexen Programmpaketen führt dies zu unerwarteten Programmabstürzen an Stellen, wo von einer gerufenen Funktion auf Parameter zugegriffen wird, die entweder am Stack gar nicht vorhanden sind, oder – genauso schlimm – über falsche Einträge am Stack zu Adressen referenzieren, die dem Programm nicht zugänglich sein dürfen.Weiters haben zu große Dimensionierungen in Unterprogrammen fatale Folgen, weil bei schreibendem Zugriff Variablenwerte überschrieben werden, die im Speicher auf die falsch dimensionierten folgen.

Um dem Programmierer die äußerst mühselige Arbeit zu vereinfachen, derartige Fehlerquellen zu beseitigen, wurde das automatische Schnittstellenprüfprogramm PAKO geschaffen.

Inputfiles:

Die folgenden beiden Konfigurationsfiles müssen speziell für PAKO erstellt werden:

File der Pfadnamen der ins Programm gelinkten Libraries

File der Identifier der Funktionen, die von der Schnittstellenanalyse auszunehmen sind.

Standardfunktionen, die vom Compiler aufgelöst werden

SIN, ANINT, etc.

Funktionen der Standardlibrary

MALLOC, GETARG, etc.

Gelinkte Funktionen, die Kopplungen zu anderen Programmiersprachen darstellen

C, C++, Assembler, etc.

Die folgenden Files werden im unveränderten Zustand wie bei der Programmerzeugung verwendet:

Makefiles

Makefile für das komplette Programm und die Makefiles der Libraries

Die Makefiles definieren die INCLUDE-Pfade und die Pfadnamen der Sourcefiles

Includefiles

Die Includefiles werden erst erkannt, wenn die inkludierende Source analysiert wird

Sourcefiles

Die Sourcefiles dienen zur Identifikation und Analyse der zum Zeitpunkt t gültigen Variablen und zur Definition des Aufrufbaumes, dem entlang die komplette Programmanalyse durchgeführt wird.

Vorgangsweise:

Von der Wurzel des Aufrufbaumes ausgehend werden folgende Zustandsgrössen ermittelt:

Variablen

Das Speicherabbild der Variablen definiert zu jedem Zeitpunkt die einem Identifier entsprechenden Typen, Grössen, Dimensionen und Werte.

Prototypen

Das Temporärfile der Funktionsschnittstellen definiert zu jedem Zeitpunkt den dem Identifier zugeordneten Prototyp und die Information, ob der darunterliegende Aufrufbaum schon analysiert wurde.
Dieses File ist aus zwei Gründen unbedingt erforderlich:
Die Information über die Prototypen ist zu umfangreich, um sie im Hauptspeicher zu halten.
Das vollständige Durchlaufen der Sub-Aufrufbäume bei allen CALL-Instruktionen hat ein exponentielles Wachstum der Laufzeit bei zunehmender Programmgröße zu Folge. Deshalb muss für eine Schnittstelle gemerkt werden, ob der darunterliegende Ast bereits durchlaufen wurde.

Ergebnisse:

Bildschirm

Am Bildschirm kann der Programmbenutzer die Ergebniserstellung mitverfolgen

Warnungen

Im Ergebnisfile werden Warnungen notiert an Stellen, wo PAKO nicht darüber entscheiden kann, ob die Programmierung absichtlich so erfolgte, oder ihr ein Irrtum zugrunde liegt.

Fehler

Im Ergebnisfile werden Fehler ausgegeben, wenn die Programmierung das Risiko von Programmfehlern bedingt.
Vom ausgegebenen Fehler ist es ein Leichtes, die Fehlerursache, den Ort und die betroffenen Programmkomponenten herauszufinden.

Informationen

Statistische Daten wie Speicherbedarf und anderes.


Zurück