Beschreibung
Fortran 95 Entwicklungspaket für PCs unter Windows und .NET
Mit dem Fortran 95 Entwicklungspaket für PCs unter Windows kann man nicht nur die üblichen konsolen-basierenden Programme entwickeln, sondern auch solche, die mit einer modernen, graphischen Bedienoberfläche ausgestattet sind. Und das sowohl für 32- und 64-bit Windows, als auch für .NET. Neben dem Fortran 95 Compiler sind ein C++ Compiler (SCC) und ein Inline-Assembler enthalten.
Das FTN95 Entwicklungspaket beinhaltet dazu neben Compiler, Linker, Quellcode-Debugger (SDBG) und Entwicklungsumgebung (Plato) mit integriertem Editor und MAKE auch eine Bibliothek für die Entwicklung graphischer Bedienoberflächen (GUIs) unter Windows namens ClearWin+. Desweiteren ist eine Graphikbibliothek namens Simdem dabei, mit der sich leicht komplexe Graphiken erzeugen und in ClearWin+-Applikationen einbetten lassen. Außerdem ist FTN95 mit einer umfangreichen betriebssystemnahen Funktionssammlung ausgestattet.
Ergänzend ist ein C++ Compiler (SCC) vorhanden, mit dem problemlos gemischsprachliche Entwicklung möglich ist. Stattdessen kann aber auch Microsoft Visual C++ (VC) für die gemischsprachliche Programmierung verwendet werden. Darüberhinaus ist FTN95 das zur Zeit einzige PC basierende Compilersystem, das einen Inline-Assembler enthält.
Applikationen für .NET (1.1, 2.0, 3.0 und 4.0) lassen sich mit dem FTN95 entwickeln, so man über das zusätzlich erhältliche Microsoft Visual Studio (ab Version 2008; Abk.: VS) verfügt. FTN95 ist dazu mit einem Plug-In ausgestattet, daß sich nahtlos in VS integriert.
FTN95 Compiler
Der Compiler verfügt über den vollständigen Fortran 95 Sprachumfang und bietet darüberhinaus Erweiterungen, die die Kompatibilität zu seinem Vorgänger (Salford FTN77) gewährleisten.
Hierzu zählen bspw. PROCEDURE…EXIT (für interne Prozeduren einer Routine, die seit Fortran 90 mittels CONTAINS standardisiert sind ) oder INTERRUPT (Interrupt-Routinen).
Außerdem bietet der Compiler neben den Standard-Gleitkommatypen solche für REAL*10 und COMPLEX*20 Typen (beides allerdings nur für die 32-Bit Version), mit denen der Wertebereich in die Größenordnung +/-10**4932 bzw. +/- 10**(-4932) vorstößt. An INTEGER Varianten stehen 1-, 2-, 4- und 8-Byte KINDs zur Verfügung.
Darüberhinaus wurden diverse Sprachelemente aus Fortran 2003 und 2008 übernommen (z.B.: Feldkonstruktoren, TYPE_ALIAS, FLUSH statement, IOMSG, GET_ENVIRONMENT_VARIABLE, EXECUTE_COMMAND_LINE, „allocate on assignment“, ISO_C_BINDING, DO CONCURRENT construct).
Des weiteren gibt es Spracherweiterungen (nicht-standard konform) wie
- Erweiterung des ALLOCATE Befehls für prozeßübergreifenden Speicherzugriff (shareable memory). Z.B. zwei mit FTN95 erstellt Programme (.exe) können sich einen gemeinsamen Speicherbereich teilen:
CHARACTER, POINTER :: msg*1000 ... ALLOCATE(msg, SHARENAME="MySharedMemory")
- Direktiven für konditionelle Compilierung (CIF … CELSE … CENDIF) sowie ein C-Style Preprozessor (if | ifdef | ifndef … elif | else … endif; define | undef; include u.m.)
- SPECIAL PARAMETER Befehl mit dem eine INTEGER Konstante gesetzt werden kann, deren Wert bei der Compilation angegeben werden kann.
Die Stärken des FTN95 liegen in der Fehlerdiagnostik,
- die Feldindexüberschreitungen (”boundary checks”),
- Interface-Inkonsistenzen (z.B. ungleiche Argumenten-Anzahl oder -Typen bei Deklaration und Aufruf einer Funktion, auch dateiübergreifend),
- Überschreiben von konstanten Argumenten,
- Verwendung nicht-initialisierter Variablen,
- Überlauf von Gleitkommazahlen
- oder bspw. Verwendung von “hängenden” Zeigern (POINTER)
aufzuspüren hilft. Und dies nicht nur beim Compilieren, sondern auch während der Laufzeit eines Programms. Wird ein fehlerhaftes Programm im Debugger gestartet, können die aufgetretenen Fehler zudem zeilengenau lokalisiert werden. Siehe hierzu auch Compiler Diagnostic Test Sets von Fortran.uk.
FTN95 Entwicklungswerkzeuge
Der FTN95 und auch sein C++ Compiler (SCC) können von der Kommandozeile (DOS Eingabeaufforderung unter Windows) und unter Windows aus der mitgelieferten Entwicklungsumgebung namens Plato aufgerufen werden. In Plato sind zudem ein Editor, Linker (SLINK), das zur Projektverwaltung zuständige Make-Utility (MK32) und ein Quellcode-Debugger (SDBG) integriert. Letztere können auch separat per Kommando aufgerufen werden. Zum Erstellen von Bibliotheken dient ein Library Manager (SLIM). Des weiteren ist ein Ikonen-Editor zum Erstellen von Bildern für Schaltflächen („Buttons“) u.dgl. vorhanden.
Integration in Microsoft Visual Studio
Anstelle von Plato kann auch Microsoft’s Entwicklungsumgebung Visual Studio (VS; derzeit ab 2017 und höher) verwendet werden. FTN95 wird mit den passenden „Plug-Ins“ geliefert. Innerhalb von VS kann nicht nur editiert werden. Auch der VS Debugger steht zur Verfügung.
Quellcode-Debugger
Der Debugger des FTN95 (SDBG) verfügt über alle gängigen Funktionen, wie Breakpoints setzen, Variablenwertüberwachung und -manipulation und kann gemischtsprachlich mit Programmen genutzt werden, die mit dem FTN95, einem C/C++ Compiler (SCC oder VC) oder in Assembler erstellt wurden.
Laufzeitbibliothek
Zum Lieferumfang zählt eine umfangreiche Systembibliothek mit mehr als 250 Routinen für I/O, Zeit- und Datumsbestimmungen, Übergabe der Kommandozeile, Speicherverwaltung, String-Handling, Bit-Manipulations-Routinen, Fenster-Technik im Text-Modus, Tastaturfunktionen, Datei-Handling, Graphik-Routinen (mit Drucker- und Plottersupport, sofern unter Windows entsprechende Gerätetreiber geladen sind), Zufallszahlengenerator usw.. Des weiteren werden diverse Schnittstellenmodule/Interfaces mitgeliefert, bspw. für den Zugriff auf OpenGL, HTML Einbettung oder die Windows Betriebssystemfunktionen („Windows API“).
Applikationstypen
Mit dem FTN95 können unter Windows
- Konsolenprogramme (mit herkömmlicher Eingabe/Ausgabe via READ*, WRITE, PRINT*),
- “Quasi-Windows” Applikationen (die Eingabe/Ausgabe via READ*, WRITE, PRINT* erfolgt in Dialogfenstern, die in einem Window-Rahmen eingebettet sind)
- und Windows Applikationen erzeugt werden (basierend auf ClearWin+, das Bestandteil des FTN95 ist; s.u.).
- .NET Applikationen
- Darüberhinaus können statische und dynamische Bibliotheken (.LIBs und .DLLs) erstellt werden.
Windows-Applikationen mit ClearWin+
Bei ClearWin+ handelt es sich um ein Werkzeug, das dem Programmierer mithilfe von Deskriptoren (bspw. der Form “{6e53f28f15c7aedbaa857642325217e9bd68f5fa8e03ad4ef47e254a12fa2d5c}ca” oder {6e53f28f15c7aedbaa857642325217e9bd68f5fa8e03ad4ef47e254a12fa2d5c}rb”) – ähnlich einem FORMAT Kommando – sehr einfach den Aufbau von Windows Bedienoberflächen gestattet.Diese können die Windows typischen Kontrollelemente, wie beispielsweise Tasten, Eingabefelder, Menüleisten, Laufbalken etc., verwenden, ohne daß der Programmentwickler sich mit den internen Windows Daten- und Aufrufstrukturen plagen muß. ClearWin+ beinhaltet hierfür Subroutinen und spezielle Formatdeskriptoren. Eine Anordnung solcher Kontrollelemente wird ähnlich einem Fortran FORMAT Statement in einer Zeichenkette in einer Routine namens WinIO@ definiert. Beispielsweise würde das Öffnen eines Fensters mit der Überschrift “ClearWin+ Testprogramm” in Fortran wie folgt erledigt werden:
Button = WinIO@(‘{6e53f28f15c7aedbaa857642325217e9bd68f5fa8e03ad4ef47e254a12fa2d5c}CA[ClearWin+ Testprogramm]&’)
Ein ausführliches Beispiel, das auf dem Beispiel des ClearWin+ Tutorials basiert finden Sie hier: factor.f95
Sie können es selbst mit der FTN95 Testversion (der FTN95 Personal Edition) übersetzen und binden:
Neben der Möglichkeit Eingabemasken für Windows-Programme aufzubauen, erlaubt ClearWin+ außerdem die Benutzung der in der Runtime-Library des Compilers vorhandenen Graphikroutinen. Ebenso lassen sich auch die Graphikbibliotheken GINO-F, GINOGRAF und GINOSURF von Bradly Associates einbinden oder Winteracter von ISS Ltd., so daß man auch unter Windows Funktionen zur Hand hat, die Koordinatenachsen zeichnen, Diagramme beschriften, Konturdiagramme plotten usw..
ClearWin+ ist nur erhältlich für Silverfrosts Fortran Compiler FTN95. Es gehört dort zum Lieferumfang.
ClearWin+ beinhaltet neben der ClearWin+ Library diverse Hilfsmittel zur Windows-Programmierung, u.a. den Silverfrost Windows Resource Compiler (SRC) – ein Äquivalent des Resource Compilers von Microsoft (RC). Die Dokumentation findet sich in einem umfangreichen Online-Manual und ist mit Quellcodebeispielen in Fortran reichhaltig bestückt.
Als 64-Bit Version wird ClearWin+ in Form einer .DLL (dynamic link library) bereitgestellt, die auch von anderen Fortran Compilern, bspw. gFortran oder Intel Visual Fortran gerufen werden kann. Damit wird zum einen die Portierung von ClearWin+ basierenden Programmen auf 64-Bit möglich, als auch die Möglichkeit eröffnet, mit ClearWin+ mit anderen Fortran Compilern Windows-Programme mit komfortabler Benutzerschnittstelle zu programmieren.
Simdem – Entwicklungsumgebung für Graphik
Neben einfachen instruktiven Beispielen, wird FTN95 mit Simdem ausgeliefert, einer Graphikbibliothek, die es erlaubt mit wenig Programmieraufwand ansprechende, komplexe Graphiken und Diagramme zu erstellen. Simdem basiert auf FTN95 und ClearWin+. Der Quellcode ist inbegriffen. Zahlreiche Beispiele zeigen die Möglichkeiten und bieten eine Basis für die Weiterentwicklung individueller Graphik. Näheres zu Simdem finden Sie hier.
Gemischtsprachliche Programmierung
Gemischtsprachliche Programmierung ist mit Salfords bzw. Silverfrosts eigenen Compilern C/C++ (SCC), FTN77 und FTN90 direkt möglich.
Unter Windows können DLLs erzeugt und auch fremde DLLs eingebunden werden und dies mitunter ohne Quellcodeänderung. Salfords Linker SLINK ist einer der wenigen Linker, die DLLs direkt, ohne Import-Library binden können. Dokumentiert ist die Einbindung in Microsoft Visual Basic und C/C++ Programme.
Unter .NET ist die gemischtsprachliche Entwicklung mit allen gängigen .NET Compilern möglich.
Dokumentation
Die englischsprachige Dokumentation des Entwicklungssystems liegt in einer On-Line-Hilfe vor. Sie enthält Beschreibungen der im FTN95 enthaltenen Werkzeuge. Allerdings fehlt eine Fortran Sprachreferenz. Der Benutzer sollte daher Fortran beherrschen oder ggf. auf eine zusätzliche Sprachbeschreibung Zugriff haben (eine Literaturliste findet sich bspw. unter https://www.fortran.de/Literatur.htm).
Technische Unterstützung / Support
Hilfe bei technischen Problemen mit dem FTN95 erhalten Sie von uns direkt oder vermittels des FTN95 Support Forums im WWW. Wir haben seit 1989 Erfahrung im Umgang mit Salford bzw. Silverfrost Software Compilern und den direkten Draht zu Silverfrost’s Supportteam, sollten wir nicht mehr weiter wissen.
Unser technischer Support beinhaltet sowohl die Beantwortung von Fragen zum Verständnis spezieller „Features“ des Compilersystems, sofern diese nicht ausreichend oder unvollständig in der Dokumentation geklärt sind als auch die Beantwortung von generellen Fragen zu Programmierungen mit dem FTN95. Meldungen zu Fehlern des Entwicklungssystems werden über ein Benutzerforum abgewickelt (die Teilnahme ist kostenlos).
Normalerweise ist unser Support im Kaufpreis inbegriffen, sofern unser Aufwand ein vertretbares Maß nicht überschreitet.
Gesondert berechnet wird die Lieferung von Updates. Sie sind kostenfrei, so ein Wartungsvertrag für Ihren FTN95 bei uns abgeschlossen wurde. Über Preise für Updates und Wartung („Maintenance“) informiert Sie unsere Preisliste.
Lizensierung
Den FTN95 gibt es als
- 1-Benutzer-Lizenz, d.h. als eine Lizenz, die an einen namentlich genannten Benutzer gebunden ist.
- als Mehrbenutzer-Lizenz, für Firmen und Hochschulen (ab 3 Benutzer).Hochschulen, „Blaue-Liste“-Institute, Privatpersonen
und - Pensionäre können den FTN95 preislich ermäßigt erwerben, sofern er nicht kommerziell verwandt wird (d.h., damit erzeugte Programme oder Bibliotheken verkauft werden).