Computer

Informationen zu meiner Software Entwicklung


Wolfgang Renner,   Privatlehrer für Naturwissenschaften     (Letzte Änderung: 29. Oktober 2017)

Einführende Erzählung:


Mit dem Wunsch wissenschaftliche Themen durchdringend zu lernen, begann ich ein Physikstudium. Die Arbeitsinhalte an den Universitäten sind jedoch üblicherweise durch die Forschungsthemen der jeweiligen Institute fest vorgegeben. Ein Studium, welches sich an den Inhalten der eigenen Neugierde orientiert, und dem persönlichen Gestaltungswillen freien Raum gibt, lässt sich mit der üblichen Universitätsrealität kaum vereinbaren. Das gilt um so mehr, je weiter der familiäre Abstand zu den entscheidungstragenden Professoren ist. Ich hatte da als Sohn eines selbständigen Werbefotographen schlechte Karten. Parallel zum Studium begann ich die Entwicklung einer Software, welche sich zur Unterrichtsgestaltung und zur Erstellung vermarktungsfähiger Lehrbücher eignen könnte. Damit würde sich eine interessante biographische Perspektive als lehrender und freischaffender Autor eröffnen.   Zurück

Die numerische Programmiersprache Fortran


Bei meinem Diplom-Studium der theoretischen Physik in den Achtziger Jahren lernte ich die numerisch orientierte Programmiersprache FORTRAN (FORmular TRANslator) kennen. Fortran ist eine der ältesten Sprachen zur Implementierung (Programmierung) von numerisch-mathematischen Problemen. In der Anfangszeit des Computerzeitalters war Speicherplatz knapp und wertvoll. Deswegen ist der syntaktische Aufbau von Fortran ausgesprochen griffig und liefert einen mathematisch klaren, leicht lesbaren und kurzgefassten Quellcode. Fortran war von Anfang an die professionelle Wissenschaftsprogrammiersprache, so dass ihr Sprachumfang für numerische Probleme leistungsfähig und umfangreich ist. Fortran ist eine "portierbare" Sprache. Das heißt ihre Syntax ist streng normiert und gestattet es (zumindestens theoretisch) den gleichen Quellcode auf beliebigen Computersystemen zu übersetzen (compilieren) und laufen zu lassen. Fortran wurde beständig weiterentwickelt und ist nach wie vor die bevorzugte Sprache zur Programmierung von komplexen Numerikproblemen gerade auch auf modernen Supercomputern, da viele Sprachelemente zur Nutzung von Vektor- und Parallelrechnern zum neueren Fortranstandard dazu gefügt wurden. Fortran ist als internationaler Standard eine herstellerunabhängige Programmiersprache, die von verschiedenen Firmen angeboten wird. Die bekannteste Fortran Anwendung ist der Wetterbericht, bei dem der weltweite Atmosphärenzustand als Fortranprogramm auf hochleistungsfähigen Supercomputern simuliert und als Wetterprognose in die Zukunft extrapoliert wird. Fortran ist eigentlich eine Sprache speziell zur Behandlung von mathematischen Rechenproblemen. Die Standardmöglichkeiten zur Daten Ein- und Ausgabe erinnern nach wie vor an das Lochkartenzeitalter. Moderne Computersysteme werden interaktiv mit Menüs gesteuert und bieten multimediale Graphik- und Soundtechniken auf hohem Niveau an. Da Fortran seinen Reiz als Programmiersprache wegen seiner mathematischen Klarheit und Leistungsfähigkeit nicht verloren hat, bieten die Hersteller zur Überwindung der multimedialen Schwächen, unterschiedliche Lösungen an: "Visual Fortran" Systeme sind wie auch "Visual C++" usw. ein CASE (Computer Aided Software Engineering) Ansatz, indem ein direkter Windows API Code mit Hilfe von graphischen Gestaltungseditoren erzeugt wird. Der sich ergebende Fortran oder C++ Code ist systemgebunden und schwer verständlich. Als Alternative gibt es Funktionsbibliotheken die ein eigenes API erzeugen und meist systemunabhängig gestaltet sind. Meine DisplayLibrary "DspLib" verfolgt diesen zweiten Ansatz. Der folgende Hyperlink (Fortran Quellcodebeispiel) zeigt ein Fortran Quellcodebeispiel aus meiner gegenwärtigen Arbeit. Es ist eine typische Anwendung mit Nutzung von DspLib.   Zurück

Meine Graphik- und Funktionsbibliothek DspLib


Ende der Achtziger Jahre kaufte ich mir einen Amiga Computer und dann einen Fortran Compiler von Absoft, um auch Zuhause für das Universitätsstudium arbeiten zu können. Bei diesem Fortran Compiler war auch eine Hilfsfunktion zur Nutzung der Amiga-Systemroutinen beigefügt, die jedoch einfach und benutzerunfreundlich gestaltet war. Weil mich das ärgerte und ich mir klar war, dass es besser gehen muss, begann ich eine eigene Funktionsbibliothek zu entwickeln. Ich nannte sie "DspLib" als Kurzform für "Display Library". Da sich abzeichnete, dass mir das öffentliche Bildungswesen keine Perspektive für meine ursprünglichen Studieninteressen eröffnen wird, wurde mir klar, dass ich nur noch privatwirtschaftlich weiterarbeiten kann. Daher kam mir die Idee auf das fortgeschrittene DspLib Projekt eine Lehrmittelsammlung aufzubauen. Mathematisch-naturwissenschafliche Themen könnten in Theoriebüchern mit Beispielprogrammen in Fortran mit DspLib auf CD-ROM im Buchhandel vermarktet werden. Inhaltlich ist es eine außerordentlich attraktive Perspektive zur Verwirklichung meiner Studien- und Gestaltungsinteressen. Da es jedoch eine überwältigende Menge an Lehrbüchern und Programmierumgebungen bereits gibt, ist der wirtschaftliche Erfolg meines Projektes ungewiß. Inzwischen hat sich die endliche biologische Lebensspanne als ernsteste Grenze meiner Träumereien herausgestellt. Ich kann das gesamte Projekt aufgrund der Sterblichkeit nicht alleine realisieren. Daher gibt es den Traum die Lehrbeispiele in den Rahmen einer Privatschul Neugründung zu integrieren. Dort dürfen und sollen die Lehrer bewußt Lehrmaterial erarbeiten und auch den Schülern im Unterricht zeigen. Jedoch glaube ich selber nicht dass so etwas Realität werden könnte. Die gegenwärtigen wirtschaftlichen und historischen Rahmenbedingungen sind dazu ungeeignet und es wäre mehr als ein Märchen.

Der Programmname DspLib als Kurzform von DisplayLibrary entstand schon 1989, da es sich um eine Funktionsbibliothek (Library) zum Darstellen von graphischen Daten (to Display it) handelt. Die Kurzform DspLib ist eine Fortran77 typische 6-Buchstaben Kombination. Vom Patentamt erfuhr ich, dass ein solcher Name nicht Markenschutzfähig ist, da er beschreibenden Charakter hat. Auch Fortran ist nicht als Marke verwendbar. Compilerfirmen benutzen Namen wie "Absoft Fortran Pro" als personalisierte Produktnamen. Dass ist meist ein nicht registrierter TradeMark (TM) Name. In diesem Sinne könnte mein Programm als Wolfgang-Renner-DspLib (TM) auf den Hersteller personalisiert werden. Bei späteren Internetstudien entdeckte ich auch, dass etliche andere Firmen den Kürzel DspLib für die unterschiedlichsten Programme nutzen. Von IBM gibt es eine Betriebssystemfunktion DSPLIB, deren Sinn es ist den Inhalt einer Programmbibliothek zu listen. In dem Sinne von "to DiSPlay the LIBrary content". Von Texas Instrument gibt es eine DspLib, die als Digital-Signal-Processing LIBrary zu lesen ist. Darin sind irgendwelche Fourier Transformationen zur Daten Analyse enthalten. In diesem Sinne wird DspLib auch noch von weiteren Firmen genutzt. Man muss also von IBM-DspLib, TexasInstruments-(TI)-DspLib, WolfgangRenner-(WR)-DspLib usw. sprechen, um die völlig verschiedenartigen Programme unterscheiden zu können.

Meine DspLib Funktionsbibliothek ist sozusagen eine programmierbare Bildbearbeitung die ein Fortran77 geeignetes API mit einer Photoshop ähnlichen Bildbearbeitung verbindet. Natürlich kann man als Einzelautor keine Software-Produkte erstellen, mit denen man professionelle Graphikfirmen wie Adobe usw. überflügeln kann. Jedoch halte ich meinen Ansatz für eine originelle Option zur praktischen Computerarbeit in Schule, Studium und darüber hinaus. Folgende Screenshots illustrieren DspLib ein wenig. Es kann mit Fortran, C/C++ oder auch anderen Sprachen programmiert werden. Damit lassen sich schön technische, wissenschaftliche und auch einfache künstlerische Themen bearbeiten.

rulers.jpg

Das obige Bild zeigt zwei "Displays" und die Console im Hintergrund. Ein WR-DspLib Fortran Programm startet als kommandozeilen orientiertes Consolen-Programm. Man kann bis zu 9 Displays öffnen, die zur Bearbeitung und Anzeige von Graphiken dienen. Außerdem enthalten die Displays richtige Windows GUI-Elemente wie Buttons, Edits usw.

rechner.jpg

Aus den Displays können sogenannte Toolwindows geöffnet werden. Hier ist ein Taschenrechner mit hoher Präzission und ein Farbauswahl Tool zu sehen. DspLib gestattet theoretisch Fließkomma Rechnungen mit bis zu 2,5 Milliarden Stellen (auf AMD64). Aufgrund des Zeitbedarfs sind jedoch Millionen Stellen realistischer. Standard sind 2500 Stellen. Der Exponent hat 31 Bit womit Zahlen bis etwa 10 ** 300.000.000 darstellbar sind. Die Rechengeschwindigkeit war nach eigenen Versuchen deutlich besser als von Mathematica 4.0. Die Rechenfunktionen können aus dem Fortran Programm und im Taschenrechner genutzt werden. Im Fortran Programm werden die Zahlen in String Variablen gespeichert.

BunteConsoleH.png

Das obige Bild zeigt, dass die Console inzwischen farbige Ein- und Ausgabe beherrscht. DspLib erzeugt Klartext Dateien in denen Zahlenkolonnen und anderes Datenmaterial abgespeichert werden kann. Handschriftlich eingetippte Datensätze können von DspLib eingelesen und im Fortran Programm verrechnet werden.

DspLibShot07_01_20.png

Das nächste Bild zeigt nochmal zwei Displays mit der Console dazwischen. Dort ist die Funktion GETMSG ausgegeben. DspLib verhält sich wie ein einfaches traditionelles Betriebssystem mit einer klar verständlichen Message-Loop. Die verwickelten WindProc Rufe vom Windows API werden komplett unsichtbar intern verarbeitet. Erst dadurch lässt sich eine simple Fortran Programmierung unter Windows realisieren.

A0Shot2008b.jpg

Das letzte Bild ist vom August 2008. Das Laden und Speichern von Bildern ist nun in Bearbeitung. Bisher geht nur das simple Windows BMP-Format. Jedoch soll auch PNG, JGP, JPG2000, TIFF, DICOM usw. implementiert werden. Das ist ein schwieriges Thema, welches erst in einigen Jahren vollendet sein wird. DspLib gestattet Pen Bitmaps mit 1, 2, 4 und 8 Bit pro Pixel. Grauwert Bitmaps mit 16 und 32 Bit pro Pixel. RGB[C] Bitmaps mit 5, 8, 16 und 32 Bit pro Farbkanal. Es gibt auch Bitmaps mit 8 Farbkanälen mit 8, 16 und 32 Bit pro Kanal. Das mag in der wissenschaftlichen Bildbearbeitung Sinn finden. Zum Abspeichern sind PNG, TIFF und JPEG 2000 geeignet. DspLib gestattet transparente Graphiken mit einem COVer (alpha) Kanal in den Bitmaps und den Zeichenfunktionen. Die Steuermasken können mit einem Dekorationsbild hinterlegt werden. Das Röntgenbild zeigt meine Halswirbelsäule, die ich mir bei einem Sturz gezehrt hatte. Solche medizinischen Bilder finde ich sehr interessant und das Thema soll ausgebaut werden.

Diese Internet Seite ist noch provisorisch ! Sobald es mit einer Vermarktung konkreter wird, gibt es dann auch detailiertere Vorabinformation. Ich möchte mit DspLib bewußt Lehrer, Schüler und Universitäten ansprechen, für die professionelle Fortran-Systeme zu teuer und zu opulent sind. DspLib ist bewußt als einfach programmierbares System konzipiert. Frei downloadbare Fortran77 oder C/C++ Compiler reichen zur Programmierung vollständig aus. Als Veröffentlichungssatzsystem ist pdfLaTeX vorgesehen. DspLib Graphiken werden einfach als PNG oder JPG Rastergraphiken eingebunden. Das ist zwar schlichter als Vektorgraphiken mit PostScript usw. Definitionen. Jedoch ist die Pixelgraphik mit allen Schattierungsmöglichkeiten universeller und für den Anwender viel leichter beherrschbar als Vektorgraphiken.   Zurück