Translation

Horst Schumacher

EDV-Aufgaben : Graphikanwendungen

Echtzeit- bzw. Real-time-Anwendungen. Die höher organisierten Sprachen (BASIC, PASCAL usw.) waren dafür anfänglich nicht schnell genug. DirectX ist erst ab Version 7 in Visual Basic integriert (DirectX VB SDK). Für Echtzeit-Steuerungsaufgaben und Simulationen dient C/C++, Assembler bzw. die dafür speziell (z. B. zur Steuerung der Bewegung von Teleskop und Schutzkuppel) entwickelte Hochsprache FORTH. Damit z. B. komplexe Körper kontinuierlich (ruckelfrei) in echter oder geraffter Zeit rotieren können, war früher - je nach Komplexität - die direkte Verwendung der Register eines Prozessors in Maschinencode unumgänglich, da die Bildwiederholrate (frames rate) von der Ausführungsgeschwindigkeit entscheidend abhängt. OpenGL Projekte können (neben C/C++) mit Macro Assembler (MASM32) direkt in blitzschneller Maschinensprache entwickelt werden (http://www.movsd.com/masm.htm; http://www.codingcrew.de/masm32/index.php - Examble 8).

Wichtige Entwicklungssysteme: Microsoft C++ . NET (Visual C++ 7 mit Macro Assembler MASM 7), Microsoft C++ Toolkit http://msdn.microsoft.com/visualc/vctoolkit2003/; Visual C++ .NET 2003 Standard Edition - Free Optimizing Compiler; Borland C++ Builder 5oder 6, Turbo Assembler (TASM) 5; Adobe Photoshop; The Gimp; HTML Editor Phase 5; Macromedia MX Flash oder Alternativen wie Namo FreeMotion; 3D-Flash-Animator, das sogar Modelle im Format 3ds unterstützt ( http://www.3dfa.com/) u.a.; Borland JBuilder (die kostenlose Version Foundation ist downloadbar bei www.borland.de; 3D Studio Max oder Alternativen http://www.robsite.de/programme.php?prog=3dmodeller; http://www.milkshape3d.com/; http://www.unwrap3d.com/. Borland stellt die Delphi 7 Personal-Edition kostenlos zur Verfügung. Aktivierungscode für Delphi 7 (Keys Only). Update. Die Zeitschrift PC-Magazin lieferte im Mai 2005 auf der Heft-DVD die kostenlose Personal-Edition von Delphi 2005. Die Turbo C++ Suite enthält eine abgespeckte, kostenlose Version des C++ BuilderX Personal: http://www.turboexplorer.com/cpp (The Turbo Explorer downloads are available directly from Borland).Free MAGIX Music Maker Basic Edition 1.0.
Kostenlose Microsoft Express Edition Visual C++ 2008, Visual Basic 2008, Visual C# 2008, Visual Web Developer 2008 zum Download. Kostenloses The Game Creators Dark Game Development Kit (DarkGDK for personal use oder commercial license 25 Euro) für Mircorosft Visual C ++ 2008.;Microsoft XNA Game Studio 2.0.
trueSpace 7.6 liegt obenauf mit Cinema 4D, 3D Studio Max und Maya. Die Fullversion trueSpace 7.6 ist lt. Hersteller komplett gratis. Free CharacterFX animation package, created for game developers.
Lightmapper Gile’s http://www.frecle.net/index.php?show=giles.about. Model Editor Map-Scape http://evolveduk.googlepages.com/MapScape.html. Leider wird man bei Billigsoftware um 100 EUR die Erfahrung machen, dass damit professionelle Produktionen kaum möglich sind.

Man darf voraussetzen, dass die modulare Programmierung der Objekte der fehlerlose Background ausmachen, so dass die schöpferische Phase in der Einrichtung Künstlicher Intelligenz und Interaktion reichhaltiger Variationsmöglichkeiten der Story oder Choreographie und die vom Storyboard oder Drehbuch (Roadmap) abhängige Strukturierung der 3D Welt (Director’s Cut) der größte kreative Spaß bilden.
Die Artificial Intelligences der Bots, virtuellen Agenten oder NPCs (Nicht-Spieler-Charakter, englisch non-player character) ist daher auch für die Computer-Genre FPS (First-Person-Shooter in Egoperspektive), RTS (real-time strategy = Echtezeit-Strategiespiel) und
Massively Multiplayer Online Role-Playing Game (MMORPG = Massives Mehrspieler-Online-Rollenspiel) ausschlaggebend.

Da die Konstruktion schnell zur Routine wird, ist das in Choreographie (Animation) oder Szenario umgesetzte Drehbuch (Storyboard) wichtig. An erster Stelle dieser hierarchischen Regiestruktur stehen Story und Drehbuch des Filmstils mit der Filmusik dementsprechender Kameraeinstellungen und -schnitte der Aktionen und Szenarien, die jedoch meist wieder zu umwerfenden neuen Ideen führen, die schließlich interessante Wendungen ergeben.  
Fehlen diese wichtigen Faktoren (der den Regisseur oder Director of Animation), verliert die Interaktion eher die ineffektive Spannung.
Game-Welten sind nicht einfach stupide, vielmehr basieren diese auf die Inspiration respektabler und häufig genialer Künstler, die aus den Stilelementen eines Genre eine spannende Story zaubern können, die das Asbtraktum oftmals sehr gut hinausstellen können.

Auf interaktive Video-Games verzichtende Cineasten, die bloß linear ablaufende Filmstreifen nach Art des Hollywood styles “Neo noir”  kreieren und sich für die interaktive Programmierung kaum interessieren, benötigen nur ein Software-Paket oder CAAD (= Computer Aided Architectural Design, z. B. Autodesk 3D Industrie-Designer und Render Maya - free Maya Personal Learning Edition), wenn statt der Verwendung von Bewegungsaufnahmen (motion capture) zig Parameter und Modellgruppierungen (Puppentrickfilm schrittweiser Stop-Motion Bildeinstellung) einzeln manuell animiert werden. Die (Maya-Vollversion ist für 2000-7000 EUR erhältlich, die mächtige Alternative Blender ist gratis; für die möglichst frühzeitige Einarbeitung wäre eine Personal Learning Edition (PLE) auch für andere Konstruktionsknüller - z. B. 3D Studio Max usw. - hilfreich, da die Studentenversion den Interessentenkreis stark einschränkt. Free Vue 6 Infinite Personal Learning Edition. )
Bei Spaceglobe finden hierfür einfache Videogeräte für Performance Capture (body- und facial mocap) in Verbindung mit Zign Track, Animation Master, trueSpace 7.6, DAZ Studio und Poser usw. Anwendung, die in einem eigenen Format bzw. Game Engine gebraucht werden.

Bei Gebrauch diverser Offline-Kinorender sind Kenntnisse der Programmiersprachen, Dateiformate, Algorithmen künstlicher Intelligenz, Physik für mehr Realismus, Partikel-Engine; Speedoptimation und Kollisionsdetektion zur dynamischen Verwaltung einer Unzahl von Datenblöcke und Parameterstände des Vektorraums oder Weltkreation usw. überflüssig, da hier schließlich nur das AVI- oder DivX-Videoformat zählt. Diese Konstruktionssoftware kommt daher ohne mächtige Bibliotheken und gigantischem Funktions- und Parameterumfang nicht aus. Bevor man Editoren professionell wird nutzen können, ist generell die Kenntnis umfangreicher Betriebsanleitungen in englischem Slang und einige Praxis notwendig.
Wie die Filmpraxis nach zigfachen Schnitten ein paar Minuten einstudierte Streifen pro Tag produziert, beansprucht die digitale Bildaufbereitung häufig abstürzender Render auf einer Workstation Tage oder Wochen. (600 Bilder in 10 Std. / 30 Frames pro Sek. = 20 Sek. Film/Tag. Reiner Renderingzeitraum für 90 Min. Film 270 Tage bei Programmlizenz für eine Workstation.)


Nur der Personalcomputer, als persönlicher Assistent grafischer Datenverarbeitung, konnte dennoch mit Hilfe von Compilern und Scripting die technische Barriere von Talent, Arbeitszeit und Produktionskosten sprengen, die zuvor in zigtausendfacher handgezeichneter und -gemalter Animation per Einzelaufnahme zu investieren waren (was bei inspiriertem Mitarbeiterklima einiger Übung und geringer Komplexität der Figur evtl. sehr schnell geht).
Der für hochkomplexe Szenerien prädestinierte Computer kann die Kreativität enorm unterstützen und bietet daher neue ungeahnte Möglichkeiten und Herausforderungen.
Figurationen in hunderte Schnappschüsse oder Bewegungsphasen zu zerlegen und ausmalen oder etwa 30 Gelenkparameter zig Keyframe flüssiger Bewegungsphasen manuell neu einzustellen oder numerisch zu interpolieren, stellt - trotz teurer Software - noch nicht ex usu routinierter Beginner vor gleichen Anfangsschwierigkeiten, da nur die Übung den Meister macht.

Hier ist einfach Microsoft für die Weiterentwicklung von DirectX und auch das Konsortium für die Weiterentwicklung von OpenGL ein großes Lob auszusprechen. Die meisten kommerziell angebotenen Wrapper/Parser in der Preislage von 100 bis einige 10 000 EUR basieren auf dieses native Treibergerüst des T&L (=Transform and Lightning Engine) der Grafikhardware von Nvidia und AMD-ATI.
Der Profi wird dagegen die volle Kontrolle und Flexibilität seiner Programme behalten und die systemeigene DirectX- und OpenGL-API der Grafikhardware direkt nutzen, indem eigene Animations- und Dateiformate entwickelt werden die das eigenes Graphics Engine ausmachen. Folglich können Wrapper die Weiterentwicklung des Programmierers nicht verhindern. Besonders der Maschinensprache-Programmierer ist auch noch dem nativen API der Grafikkarten-Treiber weit überlegen, die teure Wrapper/Parser für die unterschiedlichsten Programmiersprachen und Prozessor-Plattformen nur noch weiter packen.    Auf Grund dieser zwei wichtigen einheitlichen Industriestandards ist zum Glück nicht zu befürchten, dass die großen Grafikkarten-Hersteller für jede Karte inkompatible Grafikstandards präsentieren; denn ein diffuser Fokus zerstreut der Wind (alte Weisheit der Astronomie). Nicht umsonst macht das Grafiksystem einen Parallelrechner aus, da das wunderbare HLSL-DirectX und GLSL-OpenGL die zwei einzigen entscheidenden Kriterien sind die für die Weiterentwicklung des für jedermanns Sache offen gehaltenen, universellen Konzeptes des Betriebssystems bzw. des PC sprechen.

Die von Hand animierten Modelle agieren daher je nach Meisterschaft des Animator weitaus natürlicher und flüssiger, als die mit kostspieligen Geräten  für Motion Capturing erzeugten Aufnahmen (Beispiel: Beeindruckende Bones-/Muscle- Animation des Gorillas und Dinotreks im Game “King Kong” von Ubisoft - die Animation der Dinosaurier im Film Jurassic Park wurden 1993 durch mühsame direkte Kinematik animiert, nachdem die Gelenkstellungen in Stop-Motion Technik von physikalischen Modellen durch daran befestigte Marker ermittelt wurden. Fortschrittliche Ansätze basieren auch auf naturgetreue Modellrechnungen die mit hochauflösender Simulation virtueller Muskeln und Knochen realistische Bewegungsabläufe erzeugen.)
Bei interaktiven Games sind zudem die in einer Animationsdatei erfassten Keyframes (Posen) zu laden und das Setup (Rigging, Skeleton) an das gruppierte und gewichtete Mesh (Polygonnetz) hierarchisch anzugleichen (Skinning, Constrait). Vereinfacht ausgedrückt, folgen somit die Bewegungspfade (Kinematik) der Figur der Interpolation (Tweening) von Keyframes zu Keyframes.
Das vom Animator vorgenommene Scaling und Synchronizing (Kurvenglättung digitaler Bewegungskür) ist oft ebenfalls weitaus besser, als die nicht immer verlässlichen und befriedigenden Resultate mittels Software extrahierter Motion Capture, die häufig durch unnatürliche, ruckartige Robotik und schlechtes Timing auffallen, die der Betrachter mit lässigen menschlichen Bewegungen kaum assoziieren kann (Uncanny Valley Effekt).
Die mittels Motion capture (optical, inertial gyro, electromechanical, or magnetic) systems erzeugte “natürliche” Kinematik dient daher erfahrenen Animatoren lediglich als Referenz; denn jedes Modell besitzt nur eine primitive Gelenkstruktur, indem z. B. dessen Rückgrat aus 3 Gelenken oder Bones besteht, während die Wirbelsäule des menschlichen Akteurs, aus der heraus die geschmeidigen Bewegungen erfolgen, das Wunder individuellen Lebens oder die aufrechte Gangart ausmachen. Da das Modell weitaus weniger Gelenke oder Bones besitzt als der menschliche Akteur, sind nicht alle Bewegungsdaten des Muskelapparates übertragbar, wodurch stilisierte, “kantige” Phasenabläufe entstehen.
Auf den hochkünstlerischen Bereich (Animated Catoons Exaggeration, Disney’s cartoon - oder Rotoskopie - styles , Keyframe Spacing etc.) ist das dann von Directors of Animation belächelte Referenzsystem Motion Capture ohnehin nicht übertragbar.

Hinzu kommt bei interaktiven Games Rigid-Body Physics (Rag Doll Animation) und Artificial Intelligence (AI), d.h. indem das Modell z. B. seinen Schwerpunkt automatisch findet und stabilisiert, nicht nur mit der topographischen Umwelt selbst interagiert (einen Fuss automatisch auf eine Treppenkante stellt usw.), oder Kopfbewegung und Augenkontakt des Modells der Fingerbewegung des Players folgen können, bildet The Law of Inertia und The Law of Action and Reaction die Transition sonst via Keyframes festgefügter kinematischer Animation - es stürzt daher nicht gleich bei einem kräftigen Tritt.
Die anschauliche Computersimulation eröffnet hierdurch eine Dimension der Interaktivität direkter Dialog- und Lernfähigkeit die klassische Medien nicht bieten können.

Die Render DirectX und OpenGL versuchen durch möglichst natürlich wirkende Eindrücke zu überzeugen. Das primitive Abreagieren auf Spielhallenniveau mittels präemptiver Kollisionssimulation ist dabei längst nicht maßgebend, da enorme technische Möglichkeiten die schöpferische Genialität, Kreativität und Phantasie grenzenlos herausfordern neuartige Traumwelten zu erschaffen.
Grafikkarten enthalten bereits die wichtigsten Routinen in Silizium gegossen (T&L =Transform and Lightning Engine) die Vertex- und Fragment-Shader ansprechen können. Neue Erweiterungen graphischer Hardwarearchitektur können durch sog. Extensions der Grafiktreiber genutzt werden. Die als Programmable-functions-Pipeline zu OpenGL und DirectX gedachten High-Level-Shader-Sprachen (die ab Version 1.4 in OpenGL aufgenommene GLSL von 3Dlabs; DirectX HLSL; Nvidias Konkurrenzsprache Cg) nutzen bei Specialeffects à la Hollywood die Programmierbarkeit des Grafikprozessors, der zwischen Shader und Fixed-function-graphics-Pipeline hin- und herschaltet. Ein Shader ist daher eine für Specialeffects in die Fixed-function-Pipeline (OpenGL-State Machine) oder “verdrahteten” Algorithmen (API, T&L) der Grafikhardware, die sonst keine flexible Programmierung erlaubt, kompilierte, einschaltbare
Fx-Scripting-Routine. Spezielle Effekte waren daher vor Einführung der Shader-Sprachen oder Programmable-functions-Pipeline pure Software-Lösungen die den Hauptprozessor (CPU) stark belasteten.

Wenn der zentrale Prozessor den Grafikprozessor ausreichend unterstützt, genügt bereits eine Grafikbibliothek (API = Application Programming Interface, wie z. B. OpenGL, DirectX bei Selbstprogrammierung; 3D Studio Max, MilkShape 3D (http://www.swissquake.ch/chumbalum-soft/), Infini-D, Adobe Photoshop bei Gebrauch spezieller 3D-Editoren [ http://www.3dlinks.com/], oder ein selbst entwickeltes blitzschnelles Graphics Engine) den meisten Geschwindigkeitsanforderungen, insbesondere bei Verwendung der API-Extension des Treibers die erst die volle Ausnutzung der Grafikkarte erlauben; OpenGL ICD:

char *ICDExtensions = (char*)glGetString(GL_EXTENSIONS);
bool ExtExiste = (bool)strstr(ICDExtensions, "GL_NV_vertex_array_range");
bei ExtExiste == GL_TRUE, supported der OpenGL Treiber diese Extension:
if (strstr(ICDExtensions, "GL_NV_vertex_array_range" ) == NULL ) {MessageBox(NULL, "GL_NV_vertex_array_range extension was not found", "ERROR, MB_OK|MB_ICONEXCLAMATION);return;}.

Ein Pentium II/III CPU 500 MHz/GPU 90 MHz (Graphics Processing Unit) ist die unterste Grenze, um ein mit *.bmp (Bitmap) bezeichnetes komplexes Bild der Auflösung 1024x768x32 Pixel kontinuierlich zu bewegen. Hier ist viel von der Qualität der Algorithmen und Leistungsfähigkeit der Grafikkarte abhängig. Eine Geforce 4 Ti 440 erzeugt mit einem Pentium III 500 MHz - der zur Grafikbeschleunigung kaum beiträgt - und etwas älteren Progr. flüssiges Gameplay bereits in der Auflösung 1600 x 1200 Pixel x 32-Bit Farbtiefe. Die modernen Multimedia-Grafikkarten (nVidia oder ATI) ermöglichen auch dem Heimanwender die Produktion kinoreifer Echtzeitgrafikanimationen bei kleinem Budget, die früher nur in prof. Trickfilmstudios mit Millionenbeträgen auf speziell für CAD-Anwendungen optimierten Grafikmaschinen zu realisieren waren. Kinoreife Computerprogramme bieten den größten Spielraum für Spannung, künstlerische, kreative Freiheiten, Effekte und Experimente.
Softwareerzeugnisse sind hinsichtlich Story, Drehbuch, Kameraeinstellungen, Szenarien usw. mit Television- bzw. Film-Produktionen zu vergleichen. http://developer.nvidia.com/page/tools.html; http://www.opengl.org/; DirectX SDK (Update October 2005): http://www.microsoft.com/downloads/details.aspx?FamilyID=1c8dc451-2dbe-4ecc-8c57-c52eea50c20a&DisplayLang=en. Privat im Alleingang mit dem Home-Computer erstellte Produkte http://www.netzeitung.de/voiceofgermany/206904.html; http://www.rustboy.com/. Tutorial: http://www.tutarchiv.de/include.php?path=start.php.

Eine Geforce 4 Ti unterstützt lediglich DirectX Versionen bis 8.1 und OpenGL bis Version 1.5. Microsoft Visual 6.0 supported das DirectX SDK 9.0c für Windows 2000/XP ("222 MB dx9sdk.exe). Die neuesten DirectX Updates (ab Juni, October 2005 - Redistributable Files im Setup aktivieren - s. Redist Ordner d3dx9_26.dll - und installieren) unterstützen nur noch Microsoft Betriebssysteme ab Windows XP und Compiler ab MS Visual C++(7) 2003 .NET und Visual C++ (8) 2005 Express Edition DirectX10.
Mit Windows Vista führt Microsoft das zu früheren DirectX und Windows 2000/XP inkompatible DirectX10 ein (einige Example in DirectX10 Update December 2005 werden daher nur zukünftig durch Windows Vista und kompatibler Hardware unterstützt - die OpenGL Version 1.1 wird in Windows Vista durch die Version 1.4
ersetzt).
OpenGL ist wie auch bei den Vorgängern Win9x/ME/NT4.0/2000/XP mittels installiertem ICD-OpenGL-Driver der Grafikkartenhersteller Nvidia und ATI uneingeschränkt lauffähig. Mittels der mit Windows Aeroglass vollkommen kompatiblen Installable Client Driver (ICD) der Grafikkartenhersteller, deren Treiber beim Kauf der Karte auf CD-ROM beiliegen, funktioniert OpenGL wie seit Win95 ohne Einschränkung auch mit WinVista das 9 Milliarden USD-Dollar Entwicklungskosten verschlungen hat.
Der internationale Industriestandard OpenGL ist bei vielen Entwicklern wegen seiner klaren Konzeption, natürlichen Grafikrendering und brillianten Farbverläufen allgemein sehr beliebt.

1992, 1993 erschien bei Id-Software mit Wolfenstein 3D für MS.DOS und das später auf Windows 95 portierte Doom, die ersten First-Personen- oder Schooter (FPS) aus der Ego-Perspektive. Das Game Wolfenstein 3D durfte in Deutschland nicht erscheinen. Die Objekte des Spiels sind einfache Sprites oder Billboards. Die ersten Coprozessoren (Blitter) waren daher noch auf das Umkopieren (BLT = “bit block transfer”) von Speicherbereichen beschränkt. Das 1996 von Id-Software produzierte Game Quake basiert erstmals auf polygonale Netze bzw. Meshes in Pseudo-3D. Das auf OpenGl basierende Quake-Engine erlaubte erstmals eine wirklich komplexe Architektur. Waren zuvor nur parallele Quadric shape möglich, konnten damit auch beliebige Konstruktionen im 3D Raum realisiert werden.
Die Emulation per Software implementierter Funktionen bestimmt i.d.R. das zukünftige Schicksal der Routine in Silizium gegossen zu werden. Die ersten Games waren somit noch pure Softwar-Render, die jedoch das Interesse an die Entwicklung von schnellen Grafikhardware-Beschleunigern und Game-SDK wecken und fördern konnten, so dass diese Entwicklung vor allem von der Qualität der Games weiterhin diktiert wird. Wie auch immer wird der Algorithmus seine Künstlichkeit - sprich Illusionismus - behalten.

Windows 95 verfügte über keine besonderen Programmierschnittstellen für den sich rasant entwickelnden Markt der PC-Spieleentwickler, die noch auf das in die Jahre gekommene 16-Bit Betriebssystem MS-DOS spezialisiert waren. Diese erste Implementierung nannte Microsoft “WinG”, die das Windows-GDI aufborten, und “Wavemix”, um Sound zu mischen, das die DOSianer jedoch nicht benötigten. Ein neuer Ansatz war daher das „Game SDK“ das später zum DirectX 1.0 wurde. Erst das reifere DirectX 3.0 und einige dafür erfolgreich entwickelte PC-Spiele (“Tomb Raider II”, “Diablo”) konnte die Entwicklungen für MS-DOS (Sprites) verdrängen.

Microsoft Windows API fußt fast vollständig auf portablen C Code. Erste Betriebssysteme (UNIX) wurden vor C/C++ in äußerst kompakten Hochgeschwindigkeits-Assemblercode für den Prozessor en détail maßgeschneidert, so dass Instabilität, Fehleranfälligkeit und Sicherheitslücken kaum von Belang waren. Die heutigen Programme sind daher nur noch so gut wie die Compiler. Die Hochsprache verbirgt die eigentliche elementare Programmierung, wodurch der in Maschinensprache compilierte, stark aufgeblähte Programmcode kaum ein Mensch versteht. Um “Hello World!” (11 Bytes des Datentyps Char) anzuzeigen, generiert ein Compiler etwa 180 000 Tausend Zeilen Objectcode (*.obj) im Umfang von etwa 50 000 Bytes, woraus der Linker ein ausführbares Maschinenspracheprogramm (*.exe) von im Endeffekt etwa 23000 Bytes Länge erzeugt. Minimum in Macro Assembler (MASM32) 1000-1500 Bytes.

Der Motorola 68030 Mikroprozessor des ATARI TT030 arbeitet mit 32 Megahertz Taktfrequenz, ein Intel Pentium III mit 500-1400 MHz (500 MHz = 1/500 Mio Takte pro Sek. = 1 Maschinenzyklus = 0.000000002 Sek. = 2 ns). Neue technische Entwicklungen steigern sukzessiv die Taktfrequenz der Mikroprozessoren, wobei AMD-Athlon oder Intel-Pentium IV Prozessoren bereits 2-4 GHz erreichen. Mit der Entwicklung immer schnellerer Computer können äußerst komplexe Grafikverfahren (Ray Tracing, Radiosity) endlich in Echtzeit ablaufen, die animierte virtuelle Welten wesentlich naturgetreuer rendern. Viele Games verdeutlichen den Unterschied von DirectX und OpenGL zu den mittels Ray Tracing, Radiosity erstellten dynamischen Intro-Filme/Zwischensequenzen.
Die Beschäftigung mit Raytracing und Radiosity Render-Methoden zahlt sich in Zukunft sicher aus, da in einigen Jahren eine speziell dafür geeignete Grafikhardware die gängigen Bibliotheken DirectX und OpenGL ganz ersetzen können. Der mittels Tiefkühlung auf 5.5 GHz hoch getaktete Prozessor oder Mehrkern-CPU (Dual-Core/Cell-) Chip) ist schon lange das 5 Rad am Wagen. Das Herzstück des Computers bildet heute die Graphic Processing Unit (GPU). Diese holt die Daten im AGP-/DMA-Mode an der CPU vorbei aus dem Speicher und benötigt max. Leistung. Betriebsysteme UNIX, Linux, Windows XP beherrschen das präemptive Multitasking (gestartete Programme werden auch Prozesse oder Task genannt). Echte Parallelität ist aber nur mit Rechnern oder Hauplatinen möglich die mehr als eine CPU unterstützen.

Die Flaschenhals-Konezption Maindboard ist für Dual-Core-Prozessoren kaum geeignet, da zwei CPU sich die schon für eine unzulänglichen Resourcen (Datenbus) teilen müssen, die daher zumeist Wartezyklen durchlaufen müssen. Die verschiedenen Systemkomponenten (EIDE-, SCSI-, PCI-Bussystem [http://www.pcisig.com/home], Speichermedien, Chipsatz, Steckkarten, Algorithmenstruktur der Treiber usw.) reduzieren immens den Datendurchsatz des Prozessors: 3200 MHz CPU, 400 MHz GPU, 100-200 MHz FSB, 66 MHz AGP, 33 MHz PCI, gegenüber RAM 100x langsamerer Massespeicher, wodurch sich die blitzschnelle Arbeitsgeschwindigkeit von CPU und RAM bei ständigen, auslagernden Festplattenzugriffen kaum auswirken können, da diese elektromechanische Entwicklung der elektronischen stets 5-10 Jahre hinter her hinken und nur durch Zwischenspeicherung der Daten im RAM bzw. Cache einigermaßen flüssig ablaufen - abgesehen von der überlasteten Windows-Nachrichten-Verarbeitung bei inakkurater Programmiertechnik.
Der letztlich ausgereifte Einplatinencomputer aus einem Guss (one-chip samt RAM/MRAM [MRAM=magnetoresistive RAM], das die RAM-/ROM-Eigenschaft als Massespeicher und Festplattenersatz vereinigt) wird daher das Ende bremsender Flaschenhälse (verschachtelte Treiberstrukturen, Plattformen, Subsysteme und Altlasten) beschließen.
Im Grafikbereich arbeiten daher statt Dual-Core GPU gleich zwei SLI-fähige Grafikkarten synchron. Die zukünftige One-Chip-Entwicklung könnte das modulare IBM-PC Design bzw. die bisherige Betriebssystemkonzeption in Frage stellen.

Der Büro-PC mit 2-4 GHz Prozessor und Super 3D-Beschleuniger ist bereits häufig überkonfiguriert, der daher meistens unausgelastet in Warteschleifen verweilt, zumal diese Prozessoren zu kochen beginnen, eine Luftkühlung bei Hauptlast nicht mehr ausreichen würde und zur Abwendung des frühzeitigen Hitzekollaps durch mechanische Spannungen und Brüche bei Microchips ein Wasserkühlsystem notwendig wäre. Um komplexe Grafikwelten in Echtzeit wiederzugeben ist der Computer anderseits oftmals überlastet und noch zu langsam. (Multitexturing, simple lokale Beleuchtung unter Vernachlässigung von aufhellendem Streulicht, reflektierendem Licht, Shadow-Mapping und evtl. mittels Radiosity-Illumination vorgerenderte, statische Lightmaps, ersetzen daher noch die interaktive Radiosity- bzw. globale Beleuchtungsberechnung.)

25 Jahre PC. Der IBM PC der Bauart XT,AT,ATX wurde jedoch durch das flexible Konzept der Netzwerkfähigkeit, modularen Austauschbarkeit und Erweiterbarkeit sämtlicher Komponenten besonders interessant, vielseitig und erfolgreich; denn durch die PC-Idee des IBM-Managers Bill Lowe ist jeder in der Lage aus der Fülle dafür entwickelter Hard- und Softwareangebote seine Wahl zu treffen, um den PC persönlich eigens auszustatten und zu konzipieren, zumal der Computer nur aufgrund der Komponentenbauweise mit der rapiden Entwicklung der Technik Schritt halten kann. Auf Grund größerer Resourcen und leistungsfähigerer Hardware (austauschbares Grafiksystem) können Spielekonsolen (XBox, Playstation2 u.a.) mit der Qualität von PC-Games nicht mithalten, die auf dem Monitor daher wesentlich besser wirken (moderne PC-Games benötigen mindestens eine DirectX 8.1/9.0c und OpenGL 1.1/1.5/2 unterstützende Geforce 3/4 bzw. Geforce 6600/7900, 1.5-3.7 GHz Prozessor, 512-1024 MB RAM und 4-8 Gigabytes Festplattenkapazität).

Die Direktprogrammierung in ASSEMBLER ( http://www.computer-literatur.de/ buecher/Programmiersprachen_nachTitel.html#Assembler) erfordert sehr spezielle Kenntnisse der Hardware bzw. des jeweiligen Mikroprozessortyps auf die hier nicht näher eingegangen werden kann - hierzu sei auf die spezielle Fachliteratur verwiesen ( http://assembler86.de/; http://www.hpfsc.de/default.php?url=./fr_asm.htm; http://www.deinmeister.de/wasmtut.htm; http://www2.informatik.uni-halle.de/lehre/asm_pc/; http://www.jegerlehner.ch/intel/index.html). C++, FORTH, BASIC verlangen dagegen keine speziellen Hardware-Kenntnisse. Die sachkundige Direktprogrammierung in Assembler führt jedoch zu einem wesentlich kompakteren, effizienteren und somit schnelleren Code, da selbst die automatisch optimierenden Hochleistungscompiler oftmals umständlichere, längere Algorithmen erzeugen. Simulation des Mikroprozessors 8085 von Intel: http://people.freenet.de/softwehrpage/download.htm; AMOR Modellrechner http://computer.download.t-online.de/category/279; Hexadecimal Editor: http://www.winhex.com/winhex/index-m.html. Microsoft Macro Assembler 6.11 (MASM611,zip) http://www.singlix.org/trdos/specs.html.
Borland Turbo Assembler (TASM5.zip) http://kluftern.homeip.net/files.

Wer aus Gründen der Flexibilität und Kreativität eigenwillige graphische Schnittstellen oder einen Hochspracheninterpreter usw. benötigt, um von Drittanbietern unabhängig zu werden, wird gezwungen sein das Rad neu zu erfinden und um schnelle eigene Assembler-Bibliotheken (DLL, LIB bzw. API) nicht herumkommen.
Maschinensprache ist eine reine Codierungssache von Binär/Hexadecimal in ASCII-Zeichen, Text und Fließkommazahlen usw., die gewöhnungsbedürftig ist, jedoch sicher Spaß macht, wenn man die aus der eigenen Grafik- oder Treiberprogrammierung resultierende Flexibilität und Leistung von Highspeed-Maschinensprache-Animationen auf dem Bildschirm zu herkömmlichen C++ compilierten EXEs, LIBs und DLLs bewundern
kann.

Vor allem bei Microsoft findet das offene PC-Konzept von IBM Anerkennung und Wertschätzung. Das wissenschaftliche Datensichtgerät von Laboranten und Geschäftsstellen avancierte durch das Windows Multimedia-Konzept zu einem erfolgreichen, mannigfaltigen, populären Instrument der Massenkommunikation, Bildung und Unterhaltung, da kein anderes Betriebssystem Geräte en masse unterstützt; denn bei mangelnden unternehmerischen Ideen und fehlendem Weitblick in Bezug auf die Normalisierung oder Realisierung universeller, geschäftstüchtige Konzepte der von IBM veröffentlichten PC Spezifizierung und Konzeption waren andere nicht konkurrenzfähig und erfolgreich. Die Entwicklung alternativer Betriebssysteme OS/2 (IBM), CP/M (Digital Research), TOS/GEM (Atari) u.a. verlief im Sand; denn das Betriebssystem Windows für die leistungsstärkeren Intel-Prozessoren (ab i368, i468, Pentium) ist für den Markt an Programmierung und Entwicklung interessierter Computerfreaks (dazu zählen praktisch rund 100te Millionen Computernutzer) stets leistungsstärker und attraktiver geworden, da andere Betriebssysteme zudem über keine komfortablen, populären Application Programming Interfcae (API) usw. verfügen, wobei das Win32-API mit allen Windows-Versionen ab Win95 kompatibel ist. Obwohl der ANSI-C Standard und die Grafikbibliothek OpenGL plattformübergreifend angelegt sind, ist eine Übereinkunft der Hersteller unterschiedlicher Betriebssysteme auf eine gemeinsame, kompatible Software-Schnittstelle (API) nicht zu realisieren, da dies bloß eine unzumutbare Emulation der Betriebssysteme bedeuten würde.
Die GEM-Routinen (Graphics Enviroment Manager) waren insbesondere in Assembler nicht leicht nachvollziehbar, wogegen das Windows-API vollständig und ausführlich dokumentiert ist (vgl. u.a. Petzold, Windows-Programmierung).

EG200002
Abb. Home Computer Atari ST, Colour Genie, Amstrad/Schneider CPC 464 usw.
Mit einem Atari ST entwickelte alte Patentanmeldungen und Offenlegungsschriften von Spaceglobe.de.
Online Recherche Deutsches Patentamt - Patente und Gebrauchsmuster/Einsteigerrecherche: DE 3636081 A1, DE 3721543 A1, DE 3726534 A1, DE 3721544 A1, DE 3721542 A1, DE 4018372 A1, DE 3913111 A1.



Die Generation der Home-Computer und der IBM-PC mit dem Betriebssystem DOS/Windows, das die Nützlichkeit und interessanten Perspektiven kreativer Entwicklungsmöglichkeiten durch Computer der Allgemeinheit, besonders der Jugend vor Augen führt, konnte eine Rechenmaschine ein so großes Echo hervorrufen und die immer weiter steigende Rechenkapazität der Dualzahlen die duale Welt revolutionieren.
Die Betriebssysteme von Microsoft füllen daher eine einzigartige Lücke die andere zum Vorteil vieler Hersteller versäumt haben auszufüllen, die nicht für Unmengen inkompatibler oder spezieller Betriebssysteme (Sun Solaris, X -Windows Sco UNIX, Netware, OS2, LINUX, iMac Mac OS) produzieren können, deren API/SDK (ausgenommen IBM-PC mit DOS/Windows) nur für interne Fachleute (Systemanalytiker) spezieller EDV-Anlagen (Netzwerke, Datenbanken, Großrechenanlagen oder Hard- und Software Laboratory) zugänglich oder interessant ist, die Programme oder Software-Schnittstellen dafür entwickeln müssen; denn sonst muss jeder Entwickler das Rad neu erfinden und der mikroprogrammierte Befehlssatz (Mikrocode oder Opcode http://de.wikipedia.org/wiki/Opcode) der jeweiligen Prozessor -Kontrollogik ist auf Assemblerebene in hexadezimaler oder binärer Form mittels 10er Tastatur und ASCII-Treiber im selbst programmierten EPROM zu codieren.

Die Algorithmenkunde und leistungstarke Anwendung knapper Prozessorbefehle, machen bereits das Software-Studium der Informatik aus, um die elementare Hardwareebene in geräteunabhängige, compilerspezifische Software -Schnittstellen zu transformieren, da mit speziellen High-Level Symbolsprachen plattformübergreifend zeit- und kostengünstiger programmiert wird. Spezielle API ermöglichen somit den Zugriff auf den untersten Maschinenlevel, ohne dass der Programmierer die Hardware genau kennen lernen muss. Der Sinn des von Entwicklern auf die Menschheit losgelassenen API besteht darin Applikationen auf möglichst vielen unterschiedlichen Computern notfalls durch Software-Emulation lauffähig zu machen.
Diese sollten nicht davon abhalten die Algorithmen der Computergrafik direkt in einer eigenen Library/DLL zu implementieren, die Mehrkern-Hauptprozessoren und echte Parallelität bietende Grafikprozessoren in optimaler Maschinensprache ausnutzen, um neue Leistungsdimensionen aufzuzeigen. (DirectX 9 zählt daher zum Antiquariat und musste durch das völlig neu entwickelte DirectX 10 ersetzt werden.) Bei optimaler Ausnutzung der in den lokalen Geräten wirklich steckenden Maschinenleistung, können geräteunabhängige Universaltreiber das Studium und die effiziente Maschinenprogrammierung der Hardwarestruktur natürlich weder ersetzen noch erreichen.
Die direkte Programmierung des Prozessors zählt zum Glück ebenfalls nicht zu den Geheimwissenschaften, sonst wäre man der Laufzeitumgebung oder Softwarelösung, die andere Entwickler zum allgemeinen Qualitätsstandard gekürt haben, völlig ausgeliefert.
Selbst wenn eigene Betriebssystemroutinen in Assembler und C++ geschrieben werden, wird man jedoch ohne das API/SDK der Treiber, Grafikbibliotheken usw. jeweiliger Betriebssysteme kaum herumkommen, die dazu dienen die Resourcen des Rechners zu kontrollieren und Programme mittels einer Shell zu starten, andernfalls sind alle notwendigen Routinen der Grafiktreiber, Bibliotheken usw., einschließlich Betriebssystem für mehrere Prozessoren (Zentral-, Grafik, Audioprozessor) und Microcontroller, Signalprozessor (Netzwerkkarten u.a.) von Grund (BIOS) auf, oder Tastaturtreiber an, neu zu entwickeln und zu schreiben. Um selbst Software-Schnitstellen (API) zu entwickeln zu können, ist in diesem Fall die genaue Kenntnis der Hardware-Schnittstellen notwendig. Ein Assemblerprogramm oder Interpreter kann ohne die Umgebung eines Betriebssystems (z. B. DOS) ebenfalls nicht starten und genutzt werden, da dazu entsprechende BIOS-Routinen im programmierbaren Flash-ROM und zumindest eine 7-Segmentanzeige sowie eine 10er Tastatur notwendig sind.

Seiner Zeit weit voraus, konnte dagegen Microsoft mittels einer Vielzahl publizierter geräteunabhängig-vereinheitlichter Software-Schnittstellen, problemloser Installation (Plug and Play), großer Funktionalität und leicht zu bedienender, graphischer Benutzeroberfläche der Windows-Betriebssysteme eine Massenproduktion des Computers einleiten und die weiter geführte IBM Konzeption eines offenen PC zur erfolgreichen wirtschaftlichen Grundlage einer Unmenge daran beteiligter Unternehmen der Hardware- und Softwareindustrie machen (Windows NT unterstützt z. B. über 7000 Geräte). Die Vielzahl (Platform SDK) Software-Schnittstellen (API), wie die 3D-Schnittstellen (OpenGL, DirectX), sind hier besonders positiv hervorzuheben. Die Treiberstrukturen zahlreicher Subsysteme einer Vielzahl an den Betriebssystem -Komponenten anknüpfender Firmen arbeiten dadurch sehr stabil (WHQL certified). Obwohl auch die Prozessoren mit der Zeit leistungsfähiger werden, wird die Stabilität eines mit 8 MHz CPU und 512 KB RAM ausgestatteten Amiga oder Atari ST der 80er Jahre im Verhältnis zur Leistungsfähigkeit heutiger komplexer Treiberschichten noch übertroffen. Microsofts Kommunikationsmittel Windows, einschließlich Entwickler-Zubehör (Visual Studio, Visual C++ 6.0 bzw. 7 .NET u.a., Microsoft Developer Network MSDN bilden daher eine großartige Synthese leistungsstarker Techniken zur wirtschaftlichen Förderung und Entwicklung von Unternehmen die Experten imponiert. Gratis Entwicklungsumgebungen von Microsoft: http://www.microsoft.com/germany/msdn/programmieren-fuer-alle/; Microsoft Visual Studio Express zum kostenlosen Download.)

Das mit Microsoft zusammen arbeitende Borland Developer Network (BDN) fördert ebenfalls enorm die Entwicklung von Projekten. Microsoft Visual Basic und Borland Delphi sind überwiegend bei Hobby-Programmierer beliebt. Die visuelle RAD -Umgebung (Rapid Application Development = schnelle Programmentwicklung) des Borland C++ Builder reduziert den manuellen Programmieraufwand auf ein Minimum, wodurch C++ Projekte (z. B. Datenbanken u.a .) sehr schnell zu entwickeln sind. Jedoch wird der eingebundene Programmcode (Overhead) dadurch viel umfangreicher; denn um die Entwicklung zu beschleunigen ersetzt daher die RAD-Umgebung die Windows -Programmierung weitgehend durch Kapselung des API und verbirgt die Windows-Nachrichtenbehandlung. In die Funktionsrümpfe des Anwendungsgerüstes (Application Framework), welche die Klassenbibliothek (VCL, MFC) generiert und definiert, ist lediglich eine eigene Befehlsbehandlungsroutine einzufügen, so dass sich der C++Builder (oder MS VC++ mit MFC) ausgezeichnet für die Schnellentwicklung eignet. Der C++ Builder ist daher besonders für die Anfänger der Windows-Programmierung attraktiv. Die Erleichterungen und Vorteile der RAD-Umgebung entfallen, wenn das Win32API direkt zu implementieren ist, also z. B. bereits bei der Wahl unterschiedlicher Bildschirmauflösungen. Daher wird der prof. Windows-Programmierer um Microsoft Visual C ++ nicht herumkommen.
Andere Compiler-Hersteller können die Bibliotheken von Microsoft zwar lizensieren, die leider nicht immer reibungslos und optimal funktionieren müssen, da jeder Hersteller trotz vorbildlicher Umsetzung des ANSI-C Standards herstellerspezifische Compiler-Anpassungen oder Sprachkonvertierungen vornimmt.
Die Umgewöhnungsphase von C++ Builder zu MS Visual C++ .Net dürfte eine längere Einarbeitungszeit erfordern, wobei die Fülle von Befehlen, Funktionen und Strukturen des Win32API, der Klassenbibliothek und die Windows -Nachrichtenkontrolle angehende Windows-Programmierer nicht abschrecken sollten; denn Microsoft Visual C++ unterstützt sowohl das schnelle Zusammenklicken von Benutzeroberflächen und vollautomatische Applikationsgenerierung als auch vornehmlich die flexible, direkte Win32API-Programmierung (Deklaration: DATENTYPEN WINDEF.h, UNICODE WINNT.h., System WINBASE.h KERNEL32.dll, Benutzeroberfläche WINUSER.h USER32.dll, Grafik WINGDI.h GDI32 .dll) prof. Großprojekte, da versierte Entwickler den Code wiederum stark aufblähende Rahmenwerke (MFC, OWL, VCL) bzw. Schemata kaum verwenden wollen. Das Betriebssystem Windows mit Visual C++(API, MFC) ist gerade deshalb eine der entwicklungsfreundlichsten Umgebungen.

1964 wurde das Konzept für eine Computersteuerung per Maus entwickelt. Das erste Netzwerk für PC, erste graphische Benutzeroberfläche mit überlappenden Fenstern, Pop-Up-Menüs, Mauszeiger, Icons, Scroll-(Ball-)Maus wurde Mitte der 70er Jahre von dem Hersteller von Fotokopierern Xerox für die Computer Xerox Alto und Star realisiert. Der Star-Computer kam im April ‘81 vier Monate vor IBM-PC auf dem Markt. Auf Grund der Preislage waren die Geräte jedoch nur für Firmen erschwinglich.
Obwohl Steven Jobs, Mitbegründer von Apple, das Xerox-PARC-Zentrum 1979 besuchte und dort sicher einige Anregungen erhielt, ist die Entwicklung und manuelle Lösung eines speziell für den Mauszeiger passenden GUI (Graphical User Interface bzw. ASCII -Norm, Zeigergerät, Schreibmaschinentastaur) technisch universell naheligend und vorgegeben. Der universelle Siegeszug der Passform (GUI) für ein Zeigergerät ist daher nicht ausschließlich auf Xerox PARC zurückzuführen.

Atari (TOS/GEM-Desktop) und Commodore (C64/Amiga) entwickelten in den 80er Jahren speziell für den home user qualitativ ausgezeichnete Home-Computer. Mit Microsofts weitsichtiger, genialer Unternehmenskoordination in Hinblick auf die Umsetzung der von IBM vorgegebenen Konzeption eines offenen PC-Designs, das jedermann die Entwicklung jeder Menge Hard- und Software für den IBM-PC ermöglichen soll, durch eine dementsprechende Betriebssystem-Konzeption, die somit vor allem auch die Autodidakten und self-taught game engineers (z. B. self -taught programmer Jesse Laeuchli, has written Game Programming Gems 2, Graphics Programming Methods, Shader X2, ShaderX3; Evan Pipho, GameDev.net, authored Focus on 3D Models by Premier Press and so on) en masse unter den Entwicklern einschließt und anspricht, konnten diese nicht konkurrieren, trotz guter Ansätze: 1984 entwickelte Gary Kildall GEM für den ATARI ST, das als graphische Oberfläche 1 Jahr vor Windows auch eine zeitlang als eigenständiges Produkt unter PCs mit DOS lief. Das grundlegende Konzept eines offenen Computersystems der IBM-Ingenieure konnte Microsoft daher auch hinsichtlich einer langfristig gültigen Hardware -Spezifizierung, als Handels- oder Universal-Standard-PC, erfolgreich behaupten. Dafür sorgten die MS-DOS Games, das API Win32, OpenGL, DirectX nutzende C++ Entwicklungssysteme und nicht zuletzt auch die von Mitch Kapor geschriebene, populäre Bürosoftware Lotus 1-2-3.

Die Faszination des PC besticht sicher nicht nur durch die Bildverabeitung und Visualisierung, sondern durch Multifuntionalität und Universalität. Spezielle Grafiksysteme (Spielkonsolen) können das modulare Grundprinzip des PC - auch wenn vor allem die schier unbegrenzten Möglichkeiten der Visualisierung und Simulation faszinieren -, als universelle Grafikmaschine nicht ersetzen. Das Betriebssystem von Microsoft konnte daher das modulare, offene PC-Baukastenprinzip der IBM-PC Väter nutzen und weiter ausbauen, um eine Unmenge Unternehmen der Hard- und Softwarebranche zu ermöglichen die Kreativität des Users durch multifuntionale Nutzbarkeit weiter zu fördern.
Neben DirectX 10 ist daher für Games engineers der Industriestandard OpenGL von großer Bedeutung. Verglichen mit DirectX wäre der Schaden für die Industrie durch Verlust des sehr populären und beliebten Industriestandards OpenGL, das in zahllosen Publikationen ein großes Echo findet, sicher so groß wie bei DirectX. OpenGL versteht sich nicht als Konkurrenz zu DirectX, sondern als wichtiger Industriestandard. Warum Microsoft daher einen so wichtigen Industriestandard nicht übernimmt und mit DirectX auf gleicher Höhe zusammen entwickelt, ist daher unverständlich.

Der hauptsächlich der Programmierung und Entwicklung dienende PC verdankt daher seiner volkstümlichen Verbreitung jedoch nicht multimedialer Multifunktionalität, sondern der - im Gegensatz zum iMac - offenen, modularen Austauschbarkeit der Komponenten und leichten Nachvollziehbarkeit, Nützlichkeit und Erlernbarkeit der Programmierung, besonders der kaum ausgeschöpften Möglichkeiten populärer graphischer Geräte und Schnittstellen (DirectX und OpenGL), die noch jedermann ermöglichen die spezielle, kreative Nutzbarkeit der Personal-Computer -API und -Hardware erschließen zu können, ohne zu einem kleinen Kreis Eingeweihter zählen zu müssen.
Das allgemeine Interesse an Programmierung boomte ab 1981 mit programmierbarem Taschenrechner (Casio 602P), Home -Computer ZX81, Commodore 64, Atari ST usw. Der Commodore 64, Schneider CPC 464 usw. speichert die Bitmuster noch als Frequenzmodulation auf Kassettenrekorder. Die Rechner konnten mittels auf dem Telefonhörer aufsteckbaren Akustikopplers durch das Telefonnetz oder mit sog. BBS-Mailboxen (dem Internetvorläufer) verbunden werden. Hacker hatten damit noch relativ leichten Zugriff auch auf Datenbanken. Der ATARI ST verwendet bereits eine Floppydisk. Um diese anfänglichen Lern.- und Übungsmaschinen als Schreibmaschine nutzen zu können benötigte man eine Textverarbeitung oder Bürosoftware und einen Matrixdrucker. Windows XP beinhaltet auch Treiber für über 16 Jahre alte Nadeldrucker. Jeder Typ Home-Computer hatte quasi seine eigene Zeitschrift. In den 80er Jahren populäre Zeitschriften: Your Computer (England), Chip, c’t magazin, Atari-Magazin (Rätz-Eberle), Happy-Computer (Markt&Technik), CK-Computer Kontakt (Rätz-Eberle), HC-Mein Home-Computer (Vogel-Verlag), Geniedata (Hübben-Verlag), Compute mit (Tronic-Verlag), Homecomputer (Tronic-Verlag) usw., die bis Anfang der 90er Jahre erhältlich waren. Die ATARI-INSIDE (Falke-Verlag) erschien noch Anfang 2000, die ATARI ST-Computer (Maxxon Computer) bis 2004. Die Beschäftigung damit bestand hauptsächlich darin die von Zeitschriften veröffentlichten Code-Listings einzutippen. Diese stapeln sich noch 1 Meter hoch im Archiv des Verfassers. Dieser blickt daher auf eine reichhaltige Erfahrung zurück: Casio 602P/ColourGenie (BASIC/Assembler Z80 - damaliges populäres Lehrbuch Rodnay Zaks: Programmierung des Z80, Sybex)/CPC464(BASIC)/C64(BASIC/6510 Mikroprozessor Assembler - Lehrbuch von Lothar Englisch: Das Maschinensprache Buch zum Commodore 64, Data Becker)/ATARI ST (OMIKRON BASIC/GFA Assembler)/ATARI MEGA STE (GFA BASIC/Motorola 68000 GFA-Assembler)/IBM PC Ende 1999 selbst gebaut und konfiguriert (Asus P2B Pentium III 500 MHz/Upgrade 1.4 GHz Tualatin Kern/ELSA ERAZOR II 16 MB /Upgrade GeForce4400Ti/Adaptec AHA 2940U2W SCSI/Soundblaster Live!/ DOS/Win95/98/ME/NT 4.0/Upgrade Win2000/Borland Turbo Assembler 5/C++ Builder 5/Microsoft VC++ 6)/IBM PC Ende 2004 selbst gebaut und konfiguriert (Asus P5GD1 Pentium IV 3.2 GHz/Geforcc 6600/SATA RAID0/Window XP/Microsoft VC++ 7/C++Express 8/Assembler 7) usw.

Windows wurde für Intel-Prozessoren konzipiert. Der IBM-PC wurde 1980 von einer 12-köpfigen Gruppe entwickelt, die intern “Die Original 12” genannt wurden. Der Ingenieur David J. Bradley im Team von IBM-Manager Bill Lowe, das dessen Idee und Konzept eines preiswerten PC aus Teilen von fremden Firmen kompatibel zusammenzubauen und von IBM unabhängig im Einzelhandel zu vermarkten, realisierten, wurde als Erfinder der sicher bekanntesten Tastenkombination Str -Alt-Entf. (Ctr.-Alt-Del) berühmt. (Neben dem Apple II hatte auch Shark schon ab 1977 einen ersten PC TRS80 - Prozessor Z80 1.77 MHz, 16 KB RAM - im Angebot. Einer der ersten Home-Computer der Altair 8800 - nach dem hellsten Stern Altair im Sternbild des Adlers - war schon Ende 1974 im Angebot des Einzelhandels.)
Die Mitarbeiter von IBM und anderen amerikanischen Unternehmen, hatten keine Lust mehr die großen und bis zu 9 Millionen Dollar teuren IBM-Hauptcomputer (mainframe) mit jeder Kleinigkeit füttern zu müssen, die daher tagsüber stark ausgelastet waren. Am 12. August 1981 wurde der etwa 1600 Dollar teure IBM-PC 5150 in New York vorgestellt. Der IBM PC und kompatible wird am 12. August 2006 25 Jahren alt.


Bei etwa 800-900 Millionen PC-Internetnutzer, sprengen die Stückzahlen verkaufter IBM-PC und kompatible sicher die Milliarde. Diese Zahlen sprechen für die erfolgreiche Konzeption des Rechenmaschinen-Designs von IBM und Microsoft, die sonst sicher nur einige Buchhalter schätzen gelernt hätten.
Erst ab 1991 zahlen Hersteller für jeden verkaufen PC 5 % Gebühren. 2001 waren die ersten IBM Patente für den PC abgelaufen. Die IBM-Manager konnten daher beweisen wie sozialwirtschaftlich erfolgreich Geschäftskonzepte sind die auch auf Gemeinnützigkeit basieren. Das mächtige Erfolgskonzept des IBM-Manager Bill Lowe kann jeder Manager nachvollziehen und die gleichen sozialwirtschaftlichen Erfolgsresultate einfahren, z. B. im Verkehrswesen der Bahn, indem ein angehängter Waggon die Fahrgäste kostenlos befördert. (Gewöhnliche Manager erfahren daher im Computerbereich durch Viren Datenverluste oder bei der Bahn durch Vandalismus große Einbußen.)

Vergleichbar leistungsfähige Maschinen reichten wenige Jahre zuvor noch an die Größe von Gebäuden heran und benötigten neben einer entsprechenden Klimaanlage rund 60 Techniker für Betrieb und Wartung.
IBM beauftragte Microsoft mit der Entwicklung eines Betriebssystems (MS-DOS, MS-BASIC Level II) für den IBM -PC. Ein Teil des Betriebssystems DOS kaufte Microsoft wiederum von einem Zulieferer oder Fremdfirma.
Da IBM die PC-Sparte an den chinesischen Computerkonzern Lenovo verkauft, könnte in China völlig neuartige Betriebssysteme entstehen, oder alternativ das kostenlose Linux angeboten werden, so dass lokale Anbieter den Preis für PCs senken können. Ein Großteil der IBM-Hardware wird bereits in China hergestellt. In China, Russland und Indien erwartet man einen gigantischen PC-Boom, wobei lokale Hard- und Software produzierende Firmen wiederum unabhängig von IBM und internationalen Unternehmen über den internen Markt dominieren sollen.

Der franz. Weber Jaquard erfindet 1801 den programmierbaren Webstuhl. Die Idee des programmgesteuerten digitalen Rechenautomaten stammt von Charles Babbage (1792 - 1871), der Computer mechanisch zu realisieren versuchte. Jedoch funktionierte die Maschine auf dieser Basis nicht einwandfrei. Er konstruierte 1833 eine dampfbetriebene, analytische Denkmaschine, deren Rechenwerk (mit 50 Dezimalen) auf moderne Weise per Lochkartenein- u. -ausgabe gesteuert wurde. Vorbild war die Lochkartensteuerung des Jacquard-Webstuhls.
Lady Augusta Ada Lovelace (1816 - 1852), die Tochter Lord Byrons, wurde durch ihr Interesse zur ersten Programmiererin der Welt. Beide waren ihrer Zeit weit voraus. Lovelace entwickelte erste Programmbefehle, wie z. B. die als Schleife bekannte Befehlswiederholung, die fast 100 Jahre später Verwendung findet. Eine in den '70er Jahren im Auftrag des amerikanischen Verteidigungsministers geschaffene Programmiersprache erhielt ihr zu Ehren den Namen ADA.
Der Astronom Comrie verwendete im Jahre 1928 kommerzielle Lochkartenmaschinen für die Monddatenberechnung des Nautical Almanach. Das Astronom. Recheninstitut in Berlin benutzte 1955 eine von L. Biermann entwickelte und gebaute lochbandgesteuerte elektronische Rechenanlage (G2) mit Trommelspeicher.

Das Elektronengehirn ist, wie die ersten Rechenschieber, Wasseruhren, Fernrohre, späteren Räderuhren und Räderrechenwerke, Dampfmaschine und der programmierbare Webstuhl, die Erfindung der Ingenieure (Leonardo da Vinci) und Mathematiker, nicht der Alienisten oder Kybernetiker.
Als eigentlicher Pionier und Erfinder des Computers gilt Konrad Zuse (1910-1995), der das Dualsystem für Computer einführte. Zuse stellte 1938 den ersten funktionstüchtigen, frei programmierbaren Speicher-Computer der Welt fertig. Der Z1 wurde aus rein privaten Mitteln finanziert. 1945 stellte er den Z4 auf der Basis elektromechanischer Relais vor, der komplizierte Gleichungen lösen konnte. Die Zuse-Computer gelangten nach Amerika, wo die Geräte weiter entwickelt wurden.

Der früher geleistete Rechenaufwand war gewaltig. J.J. Leverrier rechnete Mitte des vorigen Jahrh. mehr als ein Jahr, um den Ort des vermuteten Planeten (Neptun) zu ermitteln. Die Aufgabe löst heute jeder Homecomputer blitzschnell.
Theodor Ritter von Oppolzer (1841 - 1886) und 10 Mitarbeiter bewältigten einen gewaltigen Rechenaufwand. Sein 1887 gedrucktes Monumentalwerk >Canon der Finsternisse< enthält die Elemente aller 8000 Sonnenfinsternisse und 5200 Mondfinsternisse der Jahre -1207 bis 2161 mit graphischem Panorama auf der Grundlage damaliger Theorien. Computer leisten diese Arbeit in wenigen Sekunden.
Ehe die Endresultate schneller elektron. Datenverarbeitung (EDV) vorliegen, arbeiten Systemanalytiker (Operatoren) bzw. Programmierer allerdings ebenfalls oft jahrelang an der mathematischen Problemstellung, Formulierung und maschinenlesbaren Übersetzung.

Die ersten Apple-Kleincomputer besaßen u.a. bereits die modulare Steckkartenbauweise, doch konnte sich das MacIntosh -Betriebssystem (System 7) trotz vorbildlicher graphischer Benutzeroberfläche nicht allgemein etablieren, da es damals noch keine zukunftsweisende Harware-Architektur unterstützte. Der Apple-Computer ist bei Designern und Webagenturen sehr beliebt. Apple ist für seine gute Software-Konzeption bekannt, insbesondere die Multimedia-Software Quick-Time ist hier richtungsweisend. Bereits der klare Höreindruck des Quick Time Player (Music Synthesizer) ist unübertroffen. Die Hardware des Apple iMac G5 ist in einem TFT-Monitor integriert, die keine Hitzeprobleme bereiten und die Kabelverbindungen der Maus, Keyboard usw. entfallen durch Bluetooth. Der iMac ist in Bezug auf Audio und Video einsame Spitzenklasse. Der Apple Power Mac G5 ist einer der schnellsten 64-Bit Personalcomputer in echter PowerPC RISC-Prozessor-Architektur, die speziell für Hochsprachen-Compiler entwickelt worden ist. Deren mikroprogrammierte Kontrollogik (OpCode) können umfangreiche Prozessorbefehle leider weder optimal ausnutzen noch effektiv einsetzen, ansonsten müsste diese so komplex und langsam wie ein Schachcomputer funktionieren. Assembler-Programmierer können dagegen den größeren Befehlsumfang von Intel-Prozessoren (i486 noch in CISC-Architektur, ab Pentium ebenfalls in RISC -Architektur) bei komplexen Programmen effektiv ausschöpfen (MMX [Multi-Media eXtension]/SIMD [Single Instruction, Multiple Data]/SSE [Streaming SIMD Extensions] instructions), die den Code erheblich reduzieren können, indem x-fache Codewiederholungen zusammengefasst werden.

Der IBM-PC mit einem Intel-8088-Prozessor kam 1981 auf den Markt. 1982 brachte Microsoft das Betriebssystem DOS 1 .1 des IBM-PC zur Marktreife. 1983 kam der IBM-PC nach Deutschland. Der erste IBM kompatible PC mit i386 Prozessor lieferte 1986 die Fa. Compaq. 1988 waren erstmals über DM 1000 teure CD-ROM-Laufwerke erhältlich . Intel führte 1989 den i486- und 1993 der Markenname “Pentium” für den erfolgreichsten Intel-Prozessor ein. Die zuvor militärisch genutzten Netzwerke entwickelten sich 1990 zum zivilen WWW (World Wide Web), wobei das Dateiformat HTML (Hypertext Markup Language) und Internet-Protokoll HTTP (Hypertext Transfer Protocol) entstanden.

Die Centrale Processing Unit (CPU ), Graphics Processing Units (GPU) und Audio Processing Unit (APU) bilden die 3 Hauptplattformen des Entwicklers. Durch die Entwicklung superschneller Grafikkarten spezieller Cg-High-Level Sprache für die GPU (Cg-Compiler, -Shader usw., die zuvor auf Low-Level GPU-Assemblerebene geschrieben werden mussten) fördert und vereinfacht hier vor allem nVidia die Arbeit immens durch bessere, auf universelle Anwendbarkeit zielende Grafikstandards breiter Front.
Der Computer kann den Geist beflügeln und eröffnet der schöpferischen Phantasie einen bequemen Weg der Selbstverwirklichung. Das Erfolgsrezept der Branche lautet daher: Jedermann sollte kreative Ideen am Computer künstlerisch frei entfalten und vor allem autodidaktisch möglichst einfach umsetzen können.

Kanus entwickelte bereits 1756 digitale Automaten. Die beeindruckenden 4 Roboter-Modelle in Analog-Digitaltechnik können Texte mit bis zu 68 Buchstaben schreiben. 1748 schreibt La Mettrie das Buch L'homme machine. Kemplen baut 1769 die Sprechmaschine und den Schachspielautomaten. Jean Paul schreibt 1783 der >Maschinenmann< . Im 18. Jh. erreichte die Epoche der Feinmechanik und Automatentechnik weitere künstlerische u. technische Höchstleistungen. Höhepunkte sind die Planetenuhren und kopernikanischen, mechanischen Planetarien des 16 Jh. u. 17 Jh., die Vorläufer der Projektionsplanetarien.

Mit den frühen Rechenautomaten (Pascaline) oder der Tabuliermaschine (Hollerith) waren keine grundlegenden wissenschaftlichen Überlegungen anzustellen. Erst die steigende Rechengeschwindigkeit und vielseitige Anwendbarkeit der Mikroelektronik brachte neue Erkenntnisse und Perspektiven, die neue prinzipielle Überlegungen erforderten die viele Gebiete revolutionieren. Neue systematische Rechenverfahren (Theorie der Algorithmen) wurden geschaffen, da der Computer Probleme lösen konnte, die zuvor als unlösbar galten.

Mangelhafte Treiber oder lfd. Treiberinstallationen, -deinstallationen auch durch oberflächlich gelesene Anleitungen, können Fehlfunktionen des Betriebssystems verursachen. In fast allen Fällen verursachen stets die Treiber etlicher Firmen untereinander Probleme, die dann allerdings äußerst schwerwiegend sind. Bei den neueren Microsoft -Betriebssystemen für den home user sind schwere Ausnahmefehler in der Regel eher selten. Scanreg, Scandisk, die Wiederherstellung der defekten System.ini, oder ein Backup des Ordners Windows unter DOS oder weiteren Betriebssystemen zusätzlicher primärer Partitionen, die Funktion >Abgesicherter Modus< und >Systemwiederherstellung< (Windows Millennium Edition, Windows 2000/XP) bieten einigen Schutz gg. mangelhafte Treiber. Miserable Uninstaller entfernen die Treiber leider nur sehr unvollständig, oder hinterlassen für spätere Installationen riesige Datenmengen unnötiger Informationen, wodurch die sich ansammelnden Rückstände das Betriebssystem, insbesondere Registry und System-Ordner, mit der Zeit stark aufblähen und belasten. (Anfängliche Größe der Registry um 10-20 MB und nach einigen Monaten Programmintallation und -desinstallation um 66 MB).

Bei 2-4 Gigabytes regulärer Speicherausbau wird das Betriebssystem am besten in einer RAMDISK installiert, die blitzschnell und homogen arbeitet. (Bei heute üblicher Speichergröße von 1024-4000 Megabytes sollte Microsoft die Installation des Betriebssystems auf einer Ramdisk als Option zur Verfügung stellen, oder in einem sofort betriebsfertigen, schnellen Memory Stick größerer Bandbreite, der in ein ausgefeiltes Sicherheitssystem verwandelt wurde, ähnlich früheren Betriebssystemen entsprechender Codeoptimierung im sofort verfügbaren Flash-ROM.

Software für den Server-Betrieb sind keine Allround-Betriebssysteme und arbeiten daher stabiler. Das breit gefächerte Multimedia-Windows beinhaltet zudem eine angepasste DOS-Version. MS-DOS, IBM PC-DOS, das aktuelle Caldera DOS, die Nachfolgeversion von MS-DOS OS/2, die zusammen mit IBM entwickelt wurde, schätzen viele noch immer als leistungsfähige Betriebssysteme, die jedoch noch textbasierend keine graphische Benutzeroberfläche besitzen, wobei 1990 erst Windows 3.1 den Erfolg brachte, da Windows 1.0 mit DOS nicht zusammenarbeiten konnte und Windows 2.0 nur mit Excel funktionierte.
Der kleine Speicher (64 K RAM) und die minimale Rechenleistung (4-8 MHz Prozessor) der zuerst textbasierte Home -Computer erlaubten lediglich die Parametereingabe über Kommdozeilen (zeilenbeweglicher Editor-Cursor, BASIC-Interpreter, DOS). Mit zunehmender Leistung (16-32 MHz, 1-4 MB RAM) gestalteten sich die Bedienbarkeit graphisch attraktiver und komfortabler (frei beweglicher Cursor, Dialogfelder, ATARI-GEM-Desktop/ MS-Windows-Desktop, Fenster, Rollboxen [Scrollbars] usw.).
(Tastatur integrierter Home- oder Office-Computer reloaded: http://www.cybernetman.com/.)

Die für die Scroll-Mouse notwendigen graphischen Benutzeroberflächen zahlloser Multimedia-Software-Schnittstellen beanspruchen nunmehr den größten Teil der Resourcen. Die Anforderungen an ein modernes GUI, das durch Künstliche Intelligenz und entsprechende Sprachintegrierung zukünftig noch enorme Weiterentwicklungen erfährt, können bereits jetzt nur noch Computer mit mindestens 512 000 KB RAM, 1400 MHz Prozessor und modernem 3D-Beschleuniger mit mindestens 128 000 KB Grafikkspeicher bewältigen (3D Games, Windows XP; GUI = Graphical User Interface - für Maschinensprache-Programmierer reine Verschwendung), so dass der Computerwissenschaftler Bill Gates daher 1981, zu einer Zeit wo 16-32 KB Speicher Standard waren und 512-1024 KB bei damals vorherrschender Orientierung an hochkompakten, optimierten Maschinencode, als unglaubliches Volumen galten, davon ausging, dass 640 KB RAM für Anwender des Betriebssystems DOS noch mehr als ausreichend sein dürften. In der Tat reichten 4 Kilobytes Datenspeicher aus um den Mondflug zu koordinieren; die 30 Minuten Spielzeit des 3D Shooters .kkrieger passen mit 96 KB sogar auf eine normale 1.4 MB Diskette (http://www.theprodukkt.com/), wodurch sich zumindest der Kern eines Betriebssystems bei entsprechender Codeoptimierung wieder in ein zweites oder erweitertes BIOS-ROM flashen ließe, das die Manipulation des ansonsten auf die Festplatte ausgelagerten Betriebssystem-Kernel durch Rootkits (http://www.heise.de/security/artikel/38057) verhindert.

Größe der Windows Betriebssysteme in Millionen Code-Zeilen: Windows 3.1: 3, Windows 95: 14, Windows 98: 18, Windows NT 4.0 16.5, Windows 2000: 27, UNIX: 10-15, Netware 5.0: 10, Linux Kernel 2.4.9: 3.7.
Diese gigantischen Mengen Code-Zeilen einzeln auf Fehleranfälligkeit und Kompatibilität zu durchforsten und zu debuggen, ist kaum möglich. Windows 9x/ME sind zudem noch auf MS DOS aufbauende, fehleranfällige Hybridsysteme zwischen 16 -Bit/DOS- und 32-Bit/Windows-Prozessoren. Die Fehleranfälligkeit reiner 32-Bit-Betriebssysteme, z. B. Windows 2000 und XP mit etwa 27 Millionen Code-Zeilen, ist im Verhältnis dazu dennoch eher gering. Windows 2000/XP läuft wie Linux oder Server-Software jahrelang stabil.
Andere Betriebssysteme wie Linux sind bei der Vielzahl an Distributionen bzw. Installationsversionen nicht universell standardisiert (KDE <> GNOME) und können daher aufgrund mangelnder Geräteunterstützung (wie FreeDSB, BeOs und HP-UNIX) keine weite Verbreitung finden, wogegen Microsoft Desktop Betriebssysteme sich durch die einheitliche, klare Definition offener Schnittstellen auszeichnen, die sowohl den Anforderungen des Handels genügen als auch jedermann gerecht werden.

Software wird i.a. jedoch nicht konzipiert, um in gefährlichen Umgebungen eingesetzt zu werden, die einen ausfallsicheren Betrieb erfordern, z. B. in Militär-, Bahn- und Flugverkehrssystemen, bei welchen die Fehlfunktion unmittelbar zu Unfällen, Katastrophen führen könnte ("High Risk Activities"). Bei Taktimpulsen im Mega- und Gigahertzbereich sind >umgekippte< Bits (Processor-Errata) nicht auszuschließen. Der Betrieb stabiler, ausfallsicherer Hard- und Software muss bei High Risk Activities durch einbruchsichere, unabhängige Systeme gewährleistet werden.
Die Konzentration eines womöglich nur mit zwei Fingern tippenden Programmierers müsste übermenschlich sein, um die Fehlerfreiheit von Software zu gewährleisten. Nach menschlichem Ermessen kann trotz aller Sorgfalt, Tests, logischer Fehlerfreiheit und compilerspezifischer Normierungsarbeit, keine Gewährleistung für fehlerfreies Arbeiten der Prozessoren, Speicher, Compiler usw. aller davon erzeugten Binärzahlen oder Bitmuster übernommen werden. Die einwandfreie Funktionalität bzw. reibunsglose Zusammenarbeit mit allen möglichen der lfd. Weiterentwicklung unterworfenen Soft- und Hardwarestrukturen zahlreicher Subsysteme etlicher Hersteller und Entwickler, die im GHz-Breich Billionen Bitmusterimpulse pro Sek. verarbeiten, kann daher kein Mensch garantieren.

Datenschutz-, Sabotage- und Datenspionage-Aspekte durch Hacker, Cracker, Viren, Spyware usw. sind auch für den zivil bzw. privat zu schützenden Bereich weder zu vernachlässigen noch zu unterschätzen. Kommerzielle, kompilierte Software unterliegen dem Betriebsgeheims und enthalten nur die lt. Anleitung und Lizenzbestimmung bezahlten bzw. vereinbarten Leistungen. Systemoperatoren arbeiten oft jahrelang an einem Programm, selbst große Systemhäuser arbeiten, um ein marktreifes Potential zu entwickeln, bis zu 7 Jahre an einem Projekt. Die Entwicklung von qualitativ hochwertiger Software stabilisiert den Markt. Software-Patente sollten daher diese enorme Innovation bei hohem sozialen Wert oder allgemeinem Nutzen fördern und belohnen.

Das quantitative Potential der selten intuitiv benutzerfreundlichen Open-Source-Programme erreichen daher kaum die Qualität professioneller Enwicklung, da hier auch die logisch durchdachte, einfache Bedienbarkeit des GUI und die Bedürfnisse des Handels oder jedermanns im Vordergrund stehen. Dagegen müssen die zur Entwicklung notwendigen Schnittstellen für den Entwickler oder normalen Fachmann verständlich dokumentiert, zur Verfügung gestellt und offen gelegt werden, wenn auch nicht unbedingt als Open-Source.
Die Anwendung sog. Open-Source bzw. Gratis-Software ist weitaus bedenklicher. Kostenlose Programme enthalten neben Werbung oftmals strafrechtlich relevante Spyware ( http://www.hijackthis.de/; http://www.lavasoft.de/). Open -Source, d. h. offengelegter Quellcode, wie z. B. Linux, kann im Internet frei analysiert werden (für profunde Kenner der Maschinensprache ist auch jeder verschlüsselte Computer-Code Open-Source). Viren und Trojaner, die Systeme schädigen bzw. für Attacken öffnen, die den seriösen Linux-Benutzergruppen bzw. Unix-Derivaten für Standard-Installationen in den Unmengen Zeilen Code erst nach langwierigen, intensiven Überprüfungen auffallen, sind daher darin leicht zu integrieren, wie es auch bei Linux leider öfters der Fall ist.
Für die offenen Betriebsssteme Unix und Linux, die Hacker wie ein aufgeschlagenes Buch zum Üben nutzen, sind daher schon seit Jahren leistungsfähige Rootkits bekannt, während ähnliche Programme für Windows bisher noch einfach gestrickt sind und leicht aufgespürt werden können.
Der Open-Source-Gedanke ist auch nur bei den ohnehin offenen, vor Lesbarkeit kaum zu schützenden Webscripting-Sprachen (PHP, CGI, Perl, VBScript, JavaScript, HTML usw.) sehr erfolgreich.

Die universelle Programmiersprache BASIC zählt zu den populärsten Sprachen. Obwohl in naturwissenschaftlichen und technischen Bereichen strukturierbarere Sprachen benutzt werden, wie FORTRAN, ALGOL, PL1 oder PASCAL, ist die Einsteigersprache BASIC einer der weitverbreitesten auf kleineren Systemen. PASCAL, die Lehr- und Lernsprache für strukturiertes Programmieren, ist eine Compiler-Sprache. Da auch PASCAL nicht interpretiert wird, erzeugt erst die Compilierung des Quellcodes ein lauffähiges Programm. Ein Compilat ist unabänderlich. Tests und Editierungen sind daher nur durch ständiges Laden des Quellcodes und anschließender Compilierung möglich. Dieser Laden-Editieren-Sichern- Compilieren-Linken-Testen-Zyklus war vor allem auf Home-Computern vielen zu umständlich und zeitraubend.
BASIC besitzt den Vorzug zu den interpretierten, interaktiven Programmiersprachen mit direktem Programmzugang und Direkteingabe zu zählen. BASIC-Progr. lassen sich daher im Interpreter direkt stoppen, ändern, starten und somit schnell austesten, wodurch die Programmierung und Fehlerkorrektur (Debugging) sich sehr vereinfacht. Mit dieser Lernsprache, die sich für ernsthafte Großprojekte kaum eignet, sind Programm-Module jedoch sehr schnell - so komfortabel wie mit programmierbarem Taschenrechner - zu analysieren und zu testen. BASIC ist als Lernsprache sehr simpel.
Um die algorithmische Nachvollziehung und Übertragung in andere Sprachen (z. B. C/C++) u. Dialekte zu erleichtern, sind die GFA-Programme mit nur wenigen Befehlen und so durchschaubar wie nur möglich strukturiert. BASIC wurde deshalb für den Beginner konzipiert. Anschließend wird ohnehin zu einer professionellen, hardwarenahen Codierung (Assembler und C/C++) übergegangen, da weitere Hochsprachen keine Geschwindigkeitsvorteile erbringen. Professionelle Entwickler bevorzugen Assemblercode in Verbindung mit der Sprache C/C++. Assembler ist auf eine bestimmte elementare Mikroprozessor-Produktfamilie (z. B. Intel 8086, Pentium usw.) spezifiziert. C/C++ Entwickler benötigen dagegen weder spezielle Plattformen noch elementare Hardware-Kenntnisse. Jedoch sind gute Hardware- und Maschinensprachekenntnisse die Grundlage und Voraussetzung für das richtige Verständnis der Arbeitsweise von Software, ansonsten schwerwiegende Programmfehler (auch Sicherheitslücken) kaum aufgespürt, analysiert und behoben werden können, wie miserable Treiber häufig zeigen, welche die Hardwaremöglichkeiten nur ungenügend ausnutzen, da die technischen Entwicklungen sich überschlagen.

Fachartikel: http://www.istools.de/Artikel/Artikel_A-Z/artikel_a-z.html. Dynam. Websites erfordern Kenntnisse über Perl (http://www.rrz.uni-hamburg.de/RRZ/Software/Perl/), CGI ( http://jmarshall.com/easy/cgi/german/), JavaScript (http://javascript.seite.net/), PHP (http://www.php.net/manual/de/) und HTML (http://selfhtml.teamone.de/). http://www.computer-literatur.de/buecher/ Programmiersprachen_nachTitel.html#PHP. Java 2 Platform SDK http://java.sun.com/j2se/1.5.0/download.jsp. Um Java-Applets zu entwickeln eignet sich ausgezeichnet der JBuilder, wobei Borland die Personalversion kostenlos zur Verfügung stellt (http://www.borland.com/downloads/index.html).
eBook: üAlexander Rudolf, 3D Spiele mit C++ und DirectX in 21 Tagen; 3D-Effekte fr Spieleprogrammierer; {}{ }Stefan Zerbst, 3D Spieleprogrammierung - Kompendium.

Die UNIX-Familie ist hauptsächlich auf Workstations anzutreffen. Das vornehmlich im wissenschaftlichen und industriellen Bereich eingesetzte, prozessorientierte UNIX ist das für EDV-Experten prädestinierte Software-Entwicklungssystem.
Das frei erhältliche und offene PC-Workstation (RISC-Prozessor-Architektur) Betriebssystem mit zig Tausend Extras (Bildbearbeitung, Player, graphischer Benutzeroberfläche KDE, GNOME, 3D Windows oder Konsole [Shell - deren teilweise kryptische Syntax auch bei graphischer Benutzeroberfläche nicht defizitär ist] ähnlich DOS-Komandointerpreter, Xlib API, SVGAlib API u.v.a.m.) und ein riesiges Bündel Zusatz-Software (C++, FORTRAN Compiler) usw. für Fortgeschrittene: SuSE Linux 10.1 (SUSE Linux 10.1 OSS vorkon; Linux Installation und Konfiguration); FreeBSD; das portabelste Operating system NetBSD (BSD - Berkeley Software Distribution).
CHIP Sonderheft LINUX Juni; Sep. 2006. Linux ist im Kern ähnlich UNIX, mit dem Unterschied, dass Linux im Rahmen der GNU General Public License (GPL, www.gnu.org) und Free Software Foundation (FSF) mit dem vollständigen Quellcode frei kopiert und verteilt werden darf. Da Linux nicht der BSD-Lizenz unterliegt, das die kommerzielle Nutzung resultierender Programme ohne die Freigabe des Quellcodes zulässt, ist dagegen Linux für kommerzielle nicht Open-Source-Programme uninteressant. In dieser Beziehung erlangt das mächtige UNIX-Potential in der kostenlosen Open-Source -Variante Linux leider nur eine semiprofessionelle Bedeutung für Hobbyzwecke.
Die Professionalität beschränkt sich daher trotz aller Funktionalität auf den Server-Einsatz oder wissenschaftlichen Bereich spezieller UNIX-Domäne, wobei der Allround-Desktop-PC auf Linuxbasis bereits instabil und problematisch werden kann.
Open Source Linux vermag auch in die Konzeption des Betriebssystementwurfs einzuführen, die dem Anwender sonst verborgen bleiben. Manche teuren UNIX-Systeme unterliegen kostenlosen FTP- oder Download-Versionen der Linux -Distributionen an Vollständigkeit, effizienten Code, Komponenten-Unterstützung u.v.a.m.

Apollo1102Ein Bordcomputer mit 4 Kilobytes RAM und hexadezimaler 10er-Tastatur reichten, um den Flug zum Mond zu koordinieren ( http://www.hobbyspace.com/Simulators/).
Apollo 11 startete am 16.7.1969 um 14h32m MEZ von Kap Kennedy (heute Cape Canaveral). Kommandant war Neil Armstrong, Michael Collins, Pilot der Raumkapsel Columbia, Edwin Aldrin, Pilot der Raumfähre Eagle.Wenige Sekunden vor der Landung, in 10 Meter Höhe über dem Mondboden, löste der Bordcomputer der Raumfähre Eagle den >Alarm 1302< aus. Ein Spezialist im Kontrollzentrum Houston drängte den Landevorgang weiterhin der Computerautomatik zu überlassen .
Der Bordcomputer, mit nur 15000 Transistoren, 4096 Bytes Speicherkapazität und einer 10er-Tastatur (ein Intel-Prozessor Pentium III besitzt 9 Millionen Transistoren und adressiert 4 Millarden Bytes), konnte die Datenflut in Bodennähe des nur zum Ankoppeln notwendigen Rendevous-Radars - da die Crew vergessen hatte es abzuschalten - und den Landevorgang nicht zusammen in Echtzeit bewältigen. Das Priority-Interrupt-System des Rechners hatte die Bearbeitung der Sensordaten allerdings sofort zurückgestellt und sich mit dem lebenswichtigen Landevorgang weiterhin vorrangig befasst. In dieser bedrohlichen Lage schaltete Armstrong jedoch ohne zu zögern auf Handsteuerung um und landete die langsam sinkende Raumfähre am 20. Juli, um 21h 17m 42s MEZ, sicher im Meer der Ruhe (Mare Tranquillitatis), bei selenograph. Länge +23°47' u. +0°7' Breite.
Anlässlich des neuen Dokumentarfilms “Apollo 11: The Untold Story” berichtet Aldrin jetzt von einer weiteren Panne. Die Astronauten hätten aus Versehen ein Schalter abgebrochen. Erst kurz vor dem geplanten Start bermerkten sie, dass die Raumfähre Eagle deswegen nicht starten könne. Edwin Aldrin im Film: „Ich habe im Staub auf dem Boden etwas gefunden, dass dort nicht hingehörte: einen abgebrochenen Schalter. Während des Countdowns habe ich dann einen Stift benutzt, um den Trennschalter reinzudrücken.“
Die Raumfähre schoss daraufhin blitzschnell von der Landeplattform. Lunare Kreisbahngeschwindigkeit 1.68 km/Sek *
Ö2 = lunare Parabel- oder Entweichgeschwindkeit 2.38 km s-1..

Die digitale Bildverarbeitung (image processing) beinhalten die Falschfarbenwiedergabe (False-Colour-Coding), Bildmodifikation durch Glätten, Nachschärfen, Kontrastierung, photogrammetrisches Entzerren, Bildrekonstruktion empfangener Signale (Wettersatelliten, mW Strom interplanetarer Raumsonden), Bilderkennung (Strichcode, Teleskop -Teilkreiscodierung), elektron. Bildempfänger (CCD-Chip, Videokamera).

Die Computer verbessern bereits vielfach unzureichende Mechanismen und raumfüllende Apparate durch Software -Emulation. Die Rechner können aufgrund größerer Empfindlichkeit und Präzision der Digitalisierung Bildauswertungsapparate, wie Koordinatenmesstisch (Gerät zum Messen relativer Sternörter auf Himmelsaufnahmen) und Komparator (Gerät zur Entdeckung von Veränderungen auf zeitlich verschiedenen Aufnahmen des gleichen Sternfeldes), Mikrometer, Teilkreise usw. lesen, ergänzen und in Einzelfällen auch bereits ganz ersetzen. Die von Raumsonden gefunkten Bilder werden digital entsprechend ausgewertet (Photogrammetrie). Das durch die Luftunruhe verursachte störende Zittern der Sterne (Szintillation) bzw. die atmosphärisch bedingte Bildunschärfe, konnte durch digitale Bildverarbeitung (adaptive Optik) ausgeglichen werden.
Die Falschfarbencodierung gibt Intensitätsgradienten in bestimmten Farben wieder. Verborgen gebliebene Strukturen werden dadurch deutlich sichtbar. Die Farbcodierung ermöglicht z. B. auch eine Feststellung der Geschwindigkeitsverteilung in Galaxien. Die Bewegungsrichtung der Körper erzeugt eine für das Auge nicht wahrnehmbare Frequenzverschiebung zum blauen oder roten Teil des Spektrums (Dopplereffekt). Die Wellenlänge für sich entfernende Körper wird länger (Rotverschiebung), für sich nahende kürzer (die Strahlung wird zum blauen Teil des Spektrums verschoben). Den Frequenzverschiebungen ordnet der Computer analogen Farben zu.

Die CCD-Elektronik macht z. B. Filmemulsionen überflüssig. Der Spiegel des zweitgrößten Teleskops der Welt auf dem Mount Palomar besitzt 5 Meter Durchmesser. Die gleiche Leistung erreicht heute ein Amateur-Teleskop mit nur 40 cm Spiegeldurchmesser und CCD-Elektronik.
Der photovoltaische Effekt des Siliziums (Solarzellen bzw. Belichtungsmesser nutzen denselben Effekt) erzeugt eine elektrische Aufladung. Ein CCD-Chip (Charge-Coupled Devise) besteht aus einer Vielzahl kleinster lichtempfindlicher Zellen (sog. pixels = picture elements) mit der Eigenschaft ähnlich einer Filmemulsion Licht zu akkumulieren.Wird der CCD-Chip 'belichtet', ist die in jedem Pixel aufgebaute Ladung (charge) proportional der eingestrahlten Intensität. Aus den Pixelladungen erzeugt der Computer ein Bild das sich digital ausgezeichnet modifizieren und weiterverarbeiten lässt (Videoaufnahmen des Sternenhimmels mit Restlichtverstärker, Speicherung auf Videoband, Fernsehbildwiedergabe auch in geraffter Zeit von Himmelserscheinungen usw.).
Die CCD-Chips bestehen bereits aus weit mehr als 1000 x 1000 Pixel, die etwa 10-mal empfindlicher sind als herkömmliches Filmmaterial. Für den Amateurastronomiebereich liefert der Fachhandel erschwingliche und leistungsstarke CCD-Elektroniken für verschiedene Computer- und Teleskoptypen, einschließlich Bildverarbeitungsprogrammen.

Entwurf von 3-D Landschaftsmodellen (Elevation Modell Programming). Die Höhenschichtlinien auf topographischen Karten der Landesvermessungsämter (Kreiskarte 1:50000 oder Messtischblatt 1:25000, mittels Laserabtastung aus Flugzeugen, evtl. nach GPS-Handgeräten) ermöglichen den Entwurf eines digitalen Höhenmodells oder DGM (engl: digital elevation model oder DEM). Satelliten und Raumsonden scannen bzw. digitalisieren praktisch das gesamte Sonnensystem. Die Geländedaten der Planeten- und Erdoberfläche stammen größtenteils von Satellitenaufnahmen und Radarmessungen. Das US-Verteidigungsministerium hat sich vorgenommen die gesamte Erdoberfläche zu digitalisieren. Für 3-D Landschaftsmodelle interessanter Marsregionen (etwa die des gigantischen Marsvulkans Olympus Mons) sind z. B. die im Atlas of Mars (NASA) eingezeichneten Höhenschichtlinien bzw. digitalen Datenbestände der NASA verwendbar.
Höhenmessungen anderer Himmelskörper waren zuvor nur am Erdtrabanten durchführbar. Die aus gemessenen Schattenlängen der Berge und Kraterwälle des Mondes bestimmten Höhenwerte, ergeben interessante 2-D Höhenprofile oder nach allen Richtungen dreh- u. neigbare, dreidimensionale 3-D Kratermodelle (sog. Drahtmodelle, die durch verschiedene Renderer [OpenGL, DirectX, Ray Tracing] auch texturiert, schattiert und beleuchtet werden können). Das Digital Elevation Model findet besonders im Schulunterricht großen Anklang: http://www.lehrer-online.de/dyn/9.asp?path=/vulkantypologie. Terrain DEM in VRML http://www.visualizationsoftware.com/3dem.html. Erstellung eines VRML Geländemodells: http://www.singularch.de/VRML.htm.

Neben dem durch kulturelle und individuelle Eigenarten geprägten Sprach- u. Schriftgebrauch, führt die Natur zu gesetzmäßig feststehenden Rechenverfahren. Das erste Rechenhilfsmittel waren die Finger. Daraus entstand naheliegend das dekadische System und der Abakus. Die Ägypter benutzten den Abakus bereits im 6. Jh. v. Chr. Als Erfinder des Abakusrechnens gilt Pythagoras, aber in China sind Rechenstäbe und Abakus seit 1100 v. Chr. nachweisbar. In einigen chinesischen und russischen Regionen ist das Gerät noch heute allg. weit verbreitet.
Die formale Rechenanweisung dient zur Anwendung des Abakus und Rechenstabs. Diese führt zum rezeptartigen Rechenvorgang mit sich wiederholendem Schema. Daraus folgt bereits die Algorithmenentwicklung, die Rechenaufgaben mit naturgesetzlicher Sicherheit lösen. Bekanntester Algorithmus ist der von Euklid zur Bestimmung des größten gemeinsamen Teilers. Der Begriff Algorithmus führte der arabische Astronom und Mathematiker Muchammad ibn al Chorezmi (783-850) ein.

Die Griechen rechneten über die Zahl 10 000 nicht hinaus (mit Myriade bezeichneten sie Vielfaches von 10000 im Sinne von zahllos bzw. unendlich), während im klass. Sanksrit die höchste Zahl mit >mahakshauhini< (= 1023) beziffert wird. Die Verwendung der Null in Indien erscheint erstmals 400 n. Chr. im >Suryasiddhanta<. Über den Araber Muchammad, dessen 15 Bücher die europäische Mathematik begründeten, kamen die heute weltweit verwendeten Zahlen 0-9 nach Europa, die man daher wider besseren Wissens als >indisch-arabische< Ziffern bezeichnet.

Um 100 n. Chr. beschreibt und baut Heron zahlreiche Automaten. 12 m hohe Wasseruhrentürme entstehen 1090 n. Chr. in China. 1270 Logische Maschine von Raimundus Lullus. 1509 erste Turmuhren in Verbindung mit Glockenspielen. 1509 Automaten von Leonardo da Vinci. 1529 erster Start einer dreistufigen Rakete im rumänischen Hermannstadt (Museum von Sibiu). Eine Weiterentwicklung des Abakus waren die im Jahre 1614 von Lord Napier entwickelten, das kleine Einmaleins enthaltenen Rechenstäbchen, die Schickard zur Entwicklung von Rechenmaschinen anregten. Der logarithmische Rechenstab wurde um 1650 von Seth Partridge eingeführt. Mit dem mechanischen Prinzip der Rechenmaschine befasste sich als erster Wilhelm Schickard (1592 - 1635). Sein 1623 erbautes Gerät ist die älteste mechanische Rechenmaschine. Das Zählwerk konnte sechsstellige Zahlen addieren, subtrahieren, multiplizieren und dividieren, arbeitete jedoch noch nicht vollautomatisch. Die präzise Addiermaschine von Blaise Pascal (1623 - 1662) rechnet mit 8 Stellen. Die Pascaline gilt als Vorläufer des Computers. Der Rechenautomat des deutschen Philosophen Gottfried Wilhelm von Leipnitz (1646 - 1716) arbeitete erstmals binär.

Die Ägypter rechneten mit dem Dezimalsystem. Für die Zahlen 1000000, 100000, 1000 u. 100, 10 u. 1 vereinbarten sie Zahlzeichen (Hieroglyphen). Eine Freistelle definierte die Position der Null, die kein spezielles Zeichen hatte.

Der Mikroprozessor- bzw. Binärzahlen-Code basiert auf Verdopplung der Basiszahl 2.

1 x 1 = 1
2 x 0 = 0
4 x 0 = 0
8 x 1 = 8
16 x 1 = 16
32 x 1 = 32
64 x 0 = 0
128 x 0 = 0
Resultat: 57 = (1+8+16+32) = binär %0111001.

Das Papyrus Rhind enthält die altägyptische Mathematik, wonach moderne Mikroprozessoren demzufolge nach 4000 Jahre alten ägypt. Rechenvorschriften multiplizieren und dividieren

Ägypt. Multiplikation: 17 x 23 rechneten sie wie moderne Rechenmaschinen durch Zahlenverdopplung.

10001 = 1 x 17 = 17 Verdopplung
100010 = 2 x 17 = 34
1000100 = 4 x 17 = 68
10001000 =/8 x 17 = 136
100010000 = 16 x 17 = 272

Ergebnis: 17+34+68+272 = 391. 8x17=136 wird nicht addiert, da 272+136 über 391.
Binärzahlen lassen sich besonders einfach durch Verschieben um 1 Bit verdoppeln.
Ergebnis: %10001+%100010+%1000100+%100010000 = %110000111 = 391.
Ägypt. Division: 381 / 17 = 23.
Ergebnis: 16+4+2+1 = 23.

Die 1884 vorgestellte Tabuliermanschine auf Lochkartenbasis von Hermann Hollerith (1860 - 1929) diente 1890 in Amerika zur Volkszählung. Die Elektromechanik ermöglichte einfache Summenbildungen mit in Karten gestanzten Zahlen. 1895 meldete Schäffler das erste Patent für die Programmierung mit steckbaren Telephonschnüren an, die noch die Steckvermittlung zum Vorbild hatten. Die Auswertung der russischen Volkszählung erfolgte mit seinen Apparaten.
Hollerith gründete 1896 die Tabulating Maschine Company (TMC). Nach Gewinnverlusten fusionierte sein Unternehmen mit zwei weiteren. Die Computing-Tabulating-Recording-Company entstand, die 1924 ihren Namen in International Business Maschines (IBM) änderte.

1944 entstand an der Harvard-Universität der Mark I. In 0.3 Sek. konnte er zwei 23stellige Zahlen addieren bzw. subtrahieren. Dieser Rechner war 15 m lang und 2.4 m hoch. Die Verdrahtung seiner 760 000 elektronischen Einzelteile umfasste 800 km. Die Programmiererin Grace Murray Hopper entwickelte Befehle die den ersten amerik. Rechner funktionsfähig machten; denn das Projekt drohte zu scheitern und Mark I stand kurz vor der Verschrottung.
1946 bauten J. Presper Eckert u. John Mauchly den ENIAC (Eletronic Numerical Integrated Calculator), der 5000 Rechnungen pro Sek. durchführte.
Eckert, Mauhly und John von Neumann (1903-1957) entwickelten das bis heute gültige Konzept der internen Steuerung durch ein modifizierbares Programm im Arbeitsspeicher. Für die anschauliche Softwarekonzipierung entwickelte Neumann das sog. Struktur- oder Flussdiagramm. Der bis 1955 verwendete ENIAC war der erste Computer mit Vakuumröhren statt Relais (die 18000 Röhren verbrauchten 200 kW/h). Er funktionierte noch nicht digital, sondern seriell mit Dezimalarithmetik nach Art einer Zahnrad-Rechenmaschine. Der Militär-Computer diente vor allem zur Atombombenentwicklung.

1947 erkannten Brattain und Bardeen den Wert der Erfindung des Transistors, der die ähnlich funktionierende Elektronenröhre verdrängt hat. 1959 gelang es erstmals mehrere Transitoren auf einem einzigen Siliziumplättchen zu integrieren. In elektronischen Rechenautomaten fungiert der Transistor als Schalter für Ladungen (Strom an und aus). Mit der Elektronenröhre als Schaltelement waren Schaltzeiten von 0.00001 bis 0.000001 Sek. erreichbar. Der Transistor erreicht Schaltzeiten von 0.000001 bis 0.0000001 Sek. Computer sind daher praktisch Pulsare. Transistoren werden zu komplizierten integrierten Schaltkreisen (Chips) zusammengesetzt. Zur Beschreibung solcher Schaltkreise dient die Schaltalgebra (Bollsche Algebra), in der man nur mit zwei veränderl. Werten (Strom an, aus) rechnet. Den zwei Veränderlichen ordnet man die Ziffern 0 und 1 zu.

Der 1972 fertiggestellte ILLIAC IV besaß dank der ersten Halbleiterspeicher eine sehr schnelle Rechengeschwindigkeit. Das Gerät benötigte noch eine Klimaanlage in Wohnhausgröße. Die Konzeption war zwar richtig aber stark problematisch. Erst 1975 konnte ILLIAC für etwa 6 Std. die Woche in Berieb genommen werden. Da das heiß laufende Gerät alle Augenblicke ausfiel wurde es 1981 eingestampft. Eine wertvolle Erfahrung mit 40 Millionen Dollar Aufwand.
Funktionierten die erste und zweite Generation noch mit Vakuumröhren und Relais, war der ILLIAC der erste vollständig mit Halbleiterelementen (Chips) bestückte Rechner. Diese Erfahrungen steckten dann auch in dem von Seymour Cray 1975 präsentierten damals schnellsten Computer der Welt, der Cray-I. Er hatte 1600 Schaltungsplatinen mit bis zu 200 Chips. Er konnte pro Sek. 1 Mio Operationen (FLOPS = für Floating Point Operations per Second) bewältigen.

Das Modul- u. Bauelementeprinzip ließ die monströsen, tonnenschweren Rechner zu handlichen Kleincomputern avancieren. Der Cray-1 nahm erstmals nicht mehr als 2.8 qm Raum ein. Die Fa. Control Data bot 1980 das Konkurrenzmodell CDC Cyber 205 an, der wenig später vom Cray-2 überholt wurde. Der 0.7 x 1 m große Cray-2 liegt zur Verminderung des elektrischen Widerstandes in einem tiefgekühlten Fluorkohlenstofftank. Subraleitfähig erzielt der Cray-Computer einen hohen Geschwindigkeitszuwachs. Der Cray-2 war 1985 der schnellste Computer der Welt. Ein durschnittlicher PC mit drei Gigahertz arbeitet mit rund 6 Milliarden Operationen (6 Gigaflops) pro Sekunde heute rund doppelt so schnell.

Mit der Speicherprogrammierung des John von Neumann wurde auch die Thematik der Programmiersprache vielfach aufgegriffen. Die erste problem-orientierte Programmiersprache FORTRAN, vorranging für wissenschaftl. Anwendungen, konzipierte 1954 John Backus bei IBM. Die Sprache COBOL (Commercial and Business-Oriented Language) entstand 1959 aus der Programmiersprache des Mark I. Peter Naur entwickelte 1958 ALGOL (Algorithmic Language) für technisch-wissenschaftl. Anwendungen.
John Kemeny und Tom Krutz konzipierten BASIC an der Uni Dartmouth. Der Befehlssatz wurde am 1. Mai 1964 erstmals auf einem Rechner implementiert. BASIC zeichnet sich durch leichte Erlernbarkeit aus.
Aus Algol und PL/1 entwickelte Niklaus Wirth 1971 an der eidgenössischen technischen Hochschule der Schweiz die nach Blaise Pascal benannte Programmiersprache PASCAL.
FORTH (eigentlich Fourth für 'Die Vierte' Generation - ein Buchstabe wurde geopfert, da der zur Entwicklung dienende IBM-Rechner nur 5 Buchstaben lange Files akzeptierte) ist eine schnelle, maschinennahe Sprache, die von dem amerik. Astronomen Charles H. Moore 1969 entwickelt, ursprünglich zur Steuerung von Teleskopen diente.

Computer verwerten nur die zwei Signale Strom an (1), aus (0). Als einfache Zählmaschinen arbeiten sie somit nach dem Schwarz-Weiß-Prinzip. Die Software (Progr. bzw. Bitmuster) steuert über die binäre Arithmetik die Hardware (CPU = Zentrale Prozessor Einheit), wobei die Kommunikation mit dem Rechner über einen codierten Zeichensatz (z. B. ASCII) erfolgt.
Das Betriebssystem (BIOS) befindet sich i. Allg. im sog. resistenten, nur lesbaren Festspeicher (ROM = Read Only Memory) , während der geladene Interpreter mit dem erstellten Programm sich im flüchtigen les- und beschreibaren Hauptspeicher befindet (RAM = Radom Access Memory). Da dieser durch neue Programme, per spezielle Befehle (NEW, RESET) oder durch Stromausfall gelöscht wird, sichert eine Floppy- oder Hard Disk die erstellten Programme.
Der Interpreter liefert den Befehlssatz des Betriebssystems, das eine ladbare höhere High-Level Programmiersprache (BASIC, PASCAL) wieder zurück in Low-Level Maschinencode umwandelt. Maschinencode (Maschine Code) ist die Programmiersprache, die der Computer direkt verarbeitet, da alle Kommandos als Impuls- oder Bitmuster dargestellt werden müssen. 8 bit (binary digit) werden dabei zu einem Byte zusammengefasst (dezimal 129 = binäre Maschinencodanweisung %10000001). Für größere Zahlen sind mehrere Bytes je Zahl vorgesehen.
Da die Maschine diese langen Bitmuster der Grundinformation 0 u. 1 mit unvorstellbarer Geschwindigkeit; abarbeitet, ist es in der Lage viele solcher kleinsten Zyklen in praktisch annehmbarer Zeit duchzurechnen und damit ein kompliziertes und langwieriges Programm abzuarbeiten. Die Dauer einer solchen Programmausführung hängt natürlich auch wesentl. vom geschickt entwickelten Algorithmus ab, der nur wenige Glieder auswertet.

Rechengeräte arbeiten entweder nach dem Digital- oder Analogprinzip. Die Zuordnung von Zahlen zu physikalischen Größen , wie Längen, Winkel, Ströme, Spannungen usw., führt zu den Analogrechnern (z. B. Rechenstab). Digitalrechner arbeiten nach dem Ziffernprinzip (elektron. Rechenmaschinen), wodurch ihre Genauigkeit nur durch die Stellenanzahl der Ziffern begrenzt wird. Analogrechner dagegen sind von der Genauigkeit der Messmittel abhängig.

Miniaturisierung und Vervielfältigung durch das fotolithographische Verfahren ermöglichte die MOS-Technik (Metall-Oxid -Silizium), wodurch die Computer wesentlich leistungsfähiger und kompakter wurden. Ein auf 1/4 eines Pfennigsstücks verkleinerter Chip enthält heute bis zu 200 Millionen intergrierter Schaltungen. Leistungsfähigkeit und Miniaturisierung senkten erheblich die Kosten. Anfang der Achzigerjahre wurden Microcomputer dadurch allgemein erschwinglich.

Moderene Supercomputer übertreffen dagegen noch die Größe der ersten Prototypen. IBM (2001): >Im August ging der schnellste Supercomputer der Welt im ‘National Nuclear Security Laboratory’ an den Start. IBM ‘ASCI White’ leistet 12,3 Billionen Rechenleistungen pro Sekunde und kann Nuklear-Detonationen am Computer simulieren. Der Arbeitsspeicher von ‘ASCI White’ übertrifft den eines normalen PC um das 50000fache. Er nimmt die Größe von zwei Basketballfeldern ein und hat ein Gewicht von über 106 Tonnen.<

Der gegenwärtig (2006) schnellste Computer der Welt Blue Gene/L arbeitet in Livermore (Kalifornien) für das Lawrence Livermore National Laboratory (USA). Die Rechengeschwindigkeit von 280,6 Billionen Rechenoperationen pro Sekunde (280.6 Teraflops) erreichen 131072 parallel geschaltete 700 MHz Power-PC-Prozessoren und 32768 Gigabytes Arbeistspeicher. Es dient ebenfalls zur Simulation von Nuklear-Detonationen.

Kompatibilität

Sämtliche Daten - siehe Jahrbuch des anglo-amerik. [The Astronomical Almanac], franz. [Connaissance des Temps - sofern noch erhältlich] und sowjet. Sprachraums [Eshegodnik]) u.a. - sind mit dem Spaceglobe-Himmelsglobus für die Jahre 10001 v. Chr. bis 10000 n. Chr. berechenbar.
Die Daten des Globus basieren auf Anwendungen der numerischen Integration.

Die Resultate eigener Berechnungen vergleicht man am besten mit den Daten amtlicher astronomischer Jahrbücher. Das verwendete Konstanten-, Fundamental- u. Zeitsystem muss selbstverständlich mit dem des Jahrbuches vollständig übereinstimmen, da unterschiedliche Systeme inkomparabel sind.
Das Fundamental- u. Zeitsystem der IAU liegt z. B. dem Jahrbuch Astronomical Almanac (H.M.S.O, London) zugrunde. Angaben über die zugrundeliegenden alten und neuen Konstanten, Bezugssysteme, Mond- u. Planetentheorien (Newcomb, Brown's »Tables of the Motion of the Moon« bzw. ILE (vor 1984) und DE200/LE200, VSOP87, ELP2000) usw. (nach 1984), enthält der Erläuterungsteil des jeweiligen Jahrbuchs.

Aus langzeitlichen statistischen Kompatibilitätsgründen werden die von der Internationalen Astronomischen Union (IAU) für ein Jahrbuch angenommenen Fundamentalsysteme und Konstanten nicht so schnell geändert.

Um Fehlinterpretationen zu vermeiden, sollte man sich daher genau vergewissern welche Bezugssysteme mit welchen veralteten oder neuen Konstanten verglichen werden: mittlerer, wahrer, scheinbarer oder astrometrischer Ort (mit/ohne E-Terme) zum jeweiligen Äquinoktium des Jahresanfangs bzw. Jahresmitte, des Datums oder der Epoche (Jahresanfang Bessel »B« oder »J« julianisch); neueste oder bereits veraltete Koordinaten, Konstanten, Fundamental- u. Zeitsysteme (FK4, FK5; MEZ, Weltzeit UT1, UTC, Ephemeridenzeit TDT, DT, julian./gregor. Kalender). Mit/ohne Präzession, Nutation, tägliche, jährliche, planetare Aberration, Parallaxe, oder planetozentrische/planetographische Breite behaftete Argumente usw.

Sourcecode

Sämtliche folgenden Computerprogramme sind in GFA-BASIC geschrieben, für Windows 3.1/95/98/NT/2000 bzw. Windows Millennium Edition (PC Personal-Computer mit Intel x86/Pentium basierendem Prozessor). Die PC GFA-BASIC Programme für Windows 3.1/9x laufen auch mit dem jeweiligen GFA-BASIC Interpreter auf ATARI ST, MEGA ST, FALCON 030, TT 030, AMIGA und kompatible Computer (das Kommentarzeichen »//« ist lediglich in »!« zu ändern und einige Color-Befehle anzupassen). Copyright ã der Computerprogramme by H. Schumacher, Spaceglobe.

Eine Demo-Version GFA-BASIC kann unter der Internet-Adresse http://www.gfasoft.gfa.net/de/index.htm geladen werden . Die kostenlos erhältliche GFA-BASIC Trial-Version für WINDOWS 3.x/9x/ME verarbeitet bis zu 1000 Programmzeilen. Die Demo-Diskette 16 Bit-Version ist erhältlich bei GFA Software Technologies GmbH, Volksgartenstr. 85-89, D-41065 Mönchengladbach. (Die 32 Bit Trial-Version ist wegen der umfangreichen Handbuchdatei, Beispiele usw. nur durch das Internet ladbar). GFA-BASIC Version 2.0 ist freeware. GFA-BASIC Interpreter und Compiler Version 3.x http://www.hadley.de/;
http://www.jaapan.de/en/uptodate.php?page=progs; GFA-Assembler, GFA-BASIC Interpreter/Compiler Version 3.6TT http://atariforce.free.fr/stapps1u.htm. ATARI ST Emulator für Windows STEEM 3.2, TOS 1.02 und 2.06 http://steem.atari.st/lang_deutsch.htm.

Anmerkung: Die 16 Bit GFA-Trial Version auf Grundlage eines i286 Intel-Prozessors, arbeitet wahrscheinlich nur auf der Basis von Windows Version 3.1 einwandfrei. Die FOR-NEXT Schleife (GFA-BASIC 16 Bit) durchläuft unter Windows 95 z. B. nicht FOR i=-1 TO n-1 STEP -1 bei n=0, die z. B. in C/C++ und mit dem GFA-BASIC Interpreter 3.0/3.5 für ATARI ST korrekt durchlaufen wird. Die Adaption von ATARI ST zu Windows 9x/ME könnte dadurch problematisch werden. GFA-BASIC 32 Bit wurde dagegen speziell für Windows 95/ME/NT4/2000 entwickelt. Zur Beachtung: In C/C++ wird true = 1 und false = 0 ausgewertet. Assembler: true=0, false=-1. In GFA-BASIC für den ATARI ST ist (logisch wahr) true = 0 und (unwahr) false = -1.

Um die Translation der hier angegebenen Algorithmen in andere Programmiersprachen zu erleichtern, enthält die zugehörige CD-ROM im Ordner GFA vollständig die fertigen Lösungen in GFA-BASIC-Code für WINDOWS 3.1/95/98/ME/NT/2000, die nach einer geringfügigen Adaption (»//« in »!«, RGBCOLOR in SETCOLOR u. COLOR) auch auf alte ATARI Rechner der Serien 520 ST, 1040 ST, MEGA ST, FALCON 030, TT 030 und kompatible PC (Medusa T40 o.a.) usw. laufen, da der ATARI ST besonders unter deutschen Sternfreunden,
weit verbreitet ist.
GFA-Programme der Thematik Meteore, Ringmikrometer, Veränderliche Sterne, Doppelsterne usw. zum Download: http://www.spaceglobe.de/Download/GFAPROG.exe.

Das zum GFA-Interpreter mitgelieferte Handbuch reicht zum Verständnis der BASIC-Befehle aus. Genügt dieses nicht, liefert folg. Referenzliteratur mehr Details: GFA-BASIC Referenzhandbuch, SYBEX-Verlag, Düsseldorf 1987; ATARI ST GFA 3.0 für Insider , Markt&Technik Verlag [1990]; Das große GFA-BASIC-Buch, DATA Becker, Düsseldorf 1989). Mit dem GFA-BASIC Interpreter für AMIGA (die Bücher sind meist nur noch über Fernleihe öffentl. Bibliotheken erhältlich) laufen die Programme problemlos auch auf Amiga-Computer.

Programmstart mittels des auf der Begleitdiskette vorhandenen GFA-BASIC Progr. BASRO.GFA, wodurch die Progr. auch ohne BASIC-Interpreter ablaufen können, oder mittels des Interpreters der Fa. GFA Software Technologies GmbH, Volksgartenstr. 85-89, 41065 Mönchengladbach.
StartUp der GFA-BASIC Progr. für WINDOWS mittels der kostenlos erhältlichen Trial-Demo-Diskette die 1000 Programmzeilen verarbeitet (Internet: http://www.gfasoft.gfa.net/de/index.htm; http://www.spaceglobe.de/Download/gfawin .zip).

Die CD-ROM enthält sämtliche GFA-BASIC-Programme dieses Buches auch im RFT-Format im Ordner GFA_WordPad, wodurch die Progr. von einem Computer zu einem anderen bequem übertragbar sind; denn z. B. Microsoft-Basic MBASIC (QuickBasic sollte auf Ihrer Windows-CDROM im Ordner OLDMSDOS verfügbar sein) für den Macintosh, BASICA oder GW-BASIC für den IBM-PC usw. sind mit GFA-BASIC oder Omikron-Basic für den ATARI ST weitgehend kompatibel.
Die Adaption der hier mit wenigen Standard-Befehlen möglichst simpel strukturierten GFA-BASIC-Kommandos auf High -Tech-Computer in die jeweilige Dialektik bzw. in andere Sprachen (VISUAL-BASIC [=Quellformat wie QuickBasic], DELPHI [Objekt-PASCAL] o.a.), ist daher auch für einen Neuling kaum ein Problem (mit CUT=Ausschneiden, COPY=Kopieren und PASTE=Einfügen und editieren).

Die nicht mehr existierende Fa. GFA-Software Technologies GmbH lieferte zudem Konvertierungssoftware ATARI->PC und Interpreter/Compiler für andere Computertypen (GFA-BASIC für MS-DOS u. GFA-BASIC für MS-WINDOWS - Literatur GFA-Basic für MS-DOS, Markt&Technik Verlag, Haar bei München 1991), so dass die z. B. auf einem ATARI ST oder AMIGA erstellen GFA-BASIC Progr. (Sourcecode) auf MS-DOS (IBM-PC und kompatible) oder MICROSOFT-WINDOWS 3.x/9x/ME/NT/2000 Rechner ablaufen (Konverter ATARI GFA-Basic in Microsoft QuickBasic der Fa. Columbus Soft, Kinzigweg 1, 64297 Darmstadt).
Das Konvertierungsprogr. der Firma GFA konvertiert ATARI ST GFA-BASIC *.LST-Code (ASCII) nach GFA-BASIC MS-DOS oder WINDOWS.

Folg. Progr. emulieren zudem einen ATARI ST auf dem Pentium-PC unter Windows 3.x/9x/ME/NT/2000, wodurch ATARI ST Progr. auch auf allen PC ablaufen können. (Emulator = lat. aemulari = nachmachen). Der Software ATARI ST Emulator PacifiST oder STonX kann für das Betriebssystem Windows 95 oder Unix/Linux unter der Internet-Adresse http://www.complang.tuwien.ac.at/nino/stonx.html geladen werden. STemulator für Windows: http://www.falke-verlag.de , Shop, Atari-Software (mit originalem ATARI-TOS); Gemulator 98: www.emulators.com.
Das Progr. Gemulator 95 oder STemulator emuliert einen ATARI ST unter Windows 95 auf einem Pentium-PC. Mit dem Gemulator Pro (www.emulators.com) lässt sich auch Macintosh OS auf einen PC unter Windows realisieren. MAC-Emulatoren: Windows 3x/DOS unter Macintosh OS (www.connectix.com); Windows 95 unter Macintosh OS, Windows 95/98 unter UNIX (www.insignia.com).
Die GFA-BASIC Programme laufen daher mit dem entsprechenden GFA-BASIC Interpreter/Konverter/Emulator (GFA -BASIC 3.x für ATARI Computer oder GFA-BASIC für DOS/Windows 95 usw.) unter minimalster Anpassung mit fast allen weltweit verbreiteten Computer- u. Betriebssystemen.

Numerische Anwendungen

Der Computer übernimmt in der Astronomie vielfältige numerische Aufgaben: Phänomenologie, Ephemeriden, Astrophysik , Himmelsmechanik, Stellarstatistik, Messdatenauswertung (Positionsastronomie, Astrometrie), CCD-Bildbearbeitung u.v.a.m.
Unter Phänomene fallen Auf- und Untergänge, Anfang und Ende der Dämmerung, Finsternisse, Sternbedeckungen, geographische Orts- und Zeitbestimmungen (Geodätische Astronomie), jeweiliger Himmelsanblick usw. Ephemeriden (Tagebücher) sind Tabellen der vorausberechneten technischen [tägl. Positionen, Auf- u. Untergänge] und physischen tägl. Daten [tab. Helligkeit, Zentralmeridian, Achsenlage, scheinbarer Winkeldurchmesser usw.]).
Die Astrophysik untersucht die physikalische Beschaffenheit der Himmelskörper: Berechnung von Sternmodellen, Zustandsgrößen der Sterne (Temperatur, Leuchtkraft, Masse, Radius, Sternentwicklung), Stern- u. Planetenatmosphären, spektrale Zusammensetzung, Photometrie, Lichtkurven veränderlicher Sterne usw. Aufgabe der Positionsastronomie ist die Koordinaten- und Zeitbestimmung. Die Himmelsmechanik ist mit theoretischen und praktischen Problemen der Bahnbestimmung und Bahnstörungen von Satelliten, Planeten, Kometen, Asteroiden, Doppelsternpaaren usw. befasst.
Die Stellarstatistik betrifft Aufbau, Bewegungsrichtung, Struktur und Verteilung der Sternsysteme.
Die Messdatenreduktion umfasst Fehler- u. Ausgleichsrechnung, Bildbearbeitung, Photogrammetrie usw.

BIBLIOTHEKSROUTINEN GFA-BASIC:
REM **** SEXAGESIMAL ZU DEZIMAL ****
DEFFN gr(g,m,s) = gg * i + gm * i / 60 + gs * i / 3600
INPUT "g,m,s ",gg$,gm,gs
GOSUB dec
d = FN gr(gg,gm,gs)
PRINT d
PROCEDURE dec
i = 1
IF LEFT$(gg$,1) = "-" THEN
i = -1
ENDIF
gg = ABS(VAL(gg$))
RETURN

ODER:
INPUT ''h,m,s '',g$,m,s
GOSUB dec
PRINT dec
PROCEDURE dec
i=1
IF LEFT$(g$,1)=''-'' THEN
i=-1
ENDIF
dec=i*(ABS(VAL(g$))+m/60+s/3600)
RETURN

REM ODER EINGABE VON SEXAGESIMALZAHLEN IN DEZIMALENÄHNLICHER FORM -50°33'01.9'':
d1=-50.33019 (Fehlende Stellen auffüllen: -0°00'00.1'' = Eingabe -0.00001)
GOSUB cc
PRINT d1 = -50.55052777778 GRAD
PROCEDURE cc
d=FIX(ABS(d1))
d2=(ABS(d1)-d)*100
d3=FIX(d2)
d4=(d2-d3)*100
d1=(d+(d3+d4/60)/60)*SGN(d1)
RETURN

REM **** DEZIMAL ZU SEXAGESIMAL ****
DEFFN h$(x$) = LEFT$(x$,1) + STR$(FIX(ABS(VAL(x$))))
DEFFN m(x) = FIX((ABS(VAL(x$)) * 3600 - FIX(ABS(VAL(x$))) * 3600) / 60)
DEFFN s(x) = ((ABS(VAL(x$)) * 3600 - FIX(ABS(VAL(x$))) * 3600) / 60 - FN m(x)) * 60
PRINT
INPUT "g/h ",x$
g$ = FN h$(x$)
m = FN m(x)
s = FN s(x)
PRINT g$,m,s

Computer rechnen in RAD (Radiant = Bogenmaß). 1 RAD = 57.29577951308 (= 180°;/PI). Reziprok 0.01745329251994 (= PI/180°). 1 Kreis 360° * 0.01745329251994 = 2 * p(PI) RAD; 90° = PI/2.
In GFA-BASIC Definierte Funktion: DEFFN rad(x)=x*(180/PI); reziprok DEFFN deg(x)=x(PI/180); FN rad(x); GFA-BASIC: RAD(x) und DEG(x).
Funktionsdefinition in C++: #define DEGTORAD(x) ((x)*(3.14159265/180.0)).
Sömtliche Gradwerte (DEG) vor Computerberechnung in RAD umwandeln. Computerwertausgabe in dezimalen oder sexagesimalen Gradwerten (DEG). Winkelfunktion Sinus(12.1) Grad = -0.449647 (falsch). Sinus(0.2111848) RAD = 0 .209618 (richtig). Der 360-Grad Kreis ist demnach durch 2*PI = 6.28318530718 definiert: DEFFN r(x)=x-int(x/(2*PI))*(2*PI).
Ohne Reduzierung auf 360 Grad: SIN(FN rad(36000001)) = 0.0174523969903; Die Reduzierung ergibt: SIN(FN rad((1)) = 0.01745240643729.Das Endergebnis ist von der Genauigkeit der Eingabedaten abhängig. Bei Eingangswerte von 0.1' oder 1' (Bogenminute) täuscht die Angabe von 0.01'' (Bogensekunden) eine viel zu hohe Genauigkeit vor. Endresultate rundet man daher auf einen sinnvollen Stellenwert ab. Zwischenwerte sollten jedoch stets mit allen Stellen in die weitere Rechnung eingehen.

Fehlerbehandlung

Die Division durch Null führt zur Fehlermeldung u. Programmunterbrechung. Sollte in einer Formel eine Variable den Wert >0< annehmen:

IF x==0 THEN
x=1E-20
ENDIF
y=10; x=0; PRINT y/x = Fehlermeldung >Division durch Null<.
PRINT y/(x-(x=0)*1E-20) = 10.
x-(x=0) = 1. x=0 = logisch richtig -1. 0-(-1) = 1. x>0 = logisch falsch 0.
x=cos(FN RAD(90)) und x=sin(0) = x=0; (x-x(=0)*1E-20) = x 1E-20.

Der Wert (0=logisch falsch,-1=logisch richtig) logischer Vergleichsoperationen (>,<,=, and,or,not usw.) ist somit auch ohne IF THEN Statement mathemat. vielseitig verwendbar.

REM GFA-BASIC
ON ERROR GOSUB fehler
DO
w$=UPPER$(INKEY$) // Fehlerbehandlungsroutine
IF w$=''F'' THEN // Die Routine verhindert
a=a/0 // die Programunterbrechung
x=SQR(-10) // durch Fehlermeldungen
ENDIF

LOOP
PROCEDURE fehl
REM PRINT ERR //ERR = Fehlernr.
IF ERR=0 THEN
PRINT “Division durch Nul”
ENDIF
IF ERR=5 THEN
PRINT “Quadratwurzel nur für positive Zahlen”
ENDIF
ON ERROR GOSUB fehl
RESUME NEXT
RETURN

Funktionenswerte

Hochsprachen verfügen bereits über entsprechend implementierte Funktionen (SIN, COS, TAN, LOG, SQR, ex usw.). Einige; Rechner haben nur die vier elementaren Grundrechenarten doppelt genau. Falls Funktionen fehlen oder mit hoher oder niederer Stellenzahl benötigt werden (Look-Up-Table [LUT]) sind die folgenden trigonometrischen Reihen brauchbar.

REM Potenzierung xy.
INPUT x,y
A = 1
p2:
IF y = 0 THEN
GOTO p
ENDIF
p3:
IF y / 2 = INT(y / 2) THEN
GOTO p1
ENDIF
y = y - 1
A = A * x
GOTO p2
p1:
y = y / 2
x = x * x
GOTO p3
p:
PRINT A //Z. B. 13^15 = 5.118589301409076D+16

Fakultät n!
INPUT A
B = 0
C = 1
p2:
IF B = A THEN
GOTO p1
ENDIF
B = B + 1
C = C * B
GOTO p2
p1:
PRINT C //z.B. Fakultät 23! = 2.585201673888498D+22

n! = Fakultät: z B. 5! = 1*2*3*4*5 = 120; Fakultät 10! = 1*2*3*4*5*6*7*8*9*10 = 3628800; ^ = Potenzierung: x=4, x^3 = x*x*x = 64. x in RAD.
Oder Fakultät: f%=23; fak=1; FOR k%=0 TO f%-1; fak=fak+fak*k%; NEXT k%; PRINT fak.
Winkelfunktionen: n! = 1*2*3...n; x in RAD.

Winkelfunktionen

Einzeilige Funktion definieren:

REM GFA BASIC // ^=Potenzierung
DEFFN sin(x)= x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-x^11/11!+x^13/13!- +....
DEFFN cos(x)= 1-x^2/2!+x^4/4!-x^6/6!+x^8/8!-x^10/10!+x^12/12!- +....

Die Glieder bis x^17/17! bzw. x^16/16! ergeben 13stellige Genauigkeit.
Beispiel: 240.75° im III. Quadranten: 240.75° - 180° = 60.75° (Reduktion auf 0°£|x|£90° bzw. 0£|x|P£I/2).
60.75°; DEG in RAD = x 1.0602875 rad.
x 0.4886212 = 1-1.1242095/2+1.263847/24-1.4208288/720+1.5973093/40320-1.7957103/3628800.
x 0.4886212 erhält ein negatives Vorzeichen, da cos 240.75° im III. Quadranten: cos 240.75° = cos x -0.488621241497; |x|<1.

si=FN sin(x) //si=SINUSWERT
PRINT si
FUNCTION sin(x)
x=ABS(x)
sgn=1
IF x>PI/2 AND x<=PI THEN
x=PI-x
sgn=1 //MEHRZEILIE FUNKTION DEFINIEREN IN GFA-BASIC
ENDIF
IF x>PI AND x<PI*1.5 THEN
x=x-PI
sgn=-1
ENDIF
IF x=>PI*1.5 AND x<=PI*2 THEN
x=PI*2-x
sgn=-1
ENDIF
x1=x-x^3/(1*2*3)+x^5/(1*2*3*4*5)-x^7/(1*2*3*4*5*6*7)+x^9/(1*2*3*4*5*6*7*8*9)-x^11/ (1*2*3*4*5*6*7*8*9*10*11)
x1=x1+x^13/(1*2*3*4*5*6*7*8*9*10*11*12*13)-x^15/(1*2*3*4*5*6*7*8*9*10*11*12*13*14*15)
x1=x1+x^17/(1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17)
x1=x1*sgn
RETURN x1
ENDFUNC

Arcusfunktion (acos, arccos oder cos-1 );|x|<1.

arcsin x = x+(1/2)*x^3/3+(1*3/2*4)*x^5/5+(1*3*5/2*4*6)*x^7/7+(1*3*5*7/2*4*6*8)*x^9/9 +...
arccos x = PI/2 - arcsin x
tan x = sin x/cos x; |x|<PI/2.

tan x =
S 22k (22k-1)/(2k)! |B2k| x2k-1
In diese tan-Reihe gehen die Bernoullischen Zahlen ein (B2k) ein: B2 = 1/6; B4 = -(1/30); B6 = 1/42; B8 = -(1/30); B10 = 5/66; B12 = -(691/2730); B14 = 7/6; B16 = -(3617/510).

tan x = x + x^3/3 + (2/15)*x^5 + (17/315)*x^7 + (62/2835)*x^9 + (1382/155925)*x^11 + (1.8789334E+09/5.2306794E+11)*x^13+ (1.5534659E+13/1.0670621E+16)*x^15 +... |x|<PI/2.

Für k = 3 ergibt sich z. B.: 2^(2*3)*(2^(2*3)-1) = 4032 und (2*k)! = 720; 2*k = 6: 1*1 = 1*2 = 2*3 = 6*4 = 24*5 = 120*6 = 720.
Der Bruch 4032/720 mit der Bernoullischen Zahl B6 (2*k = 6) 1/42 multipliziert ergibt: 4032/30240 bzw. gekürzt 2/15 = (2/15)*x^5 der tan-Reihe.

Arcustangensfunktion:

arctan x = x - x^3/3 + x^5/5 - x^7/7 + x^9/9 - x^11/11 + x^13/13 - x^15/15 + -... ; |x|<1

Diese Reihe ist für kleine x brauchbar |x|<¥ ):

arctan x = x/Ö(1+X^2) S ((2k)! / (22k( k!)2 (2*k+1))) (x/(1+x2))k.

arctan x=(x/(1+x^2))*(1+(1/6)*(x/(1+x^2))+(3/40)*(x/(1+x^2))^2+(5/112)*(x/(1+x^2))^3+(35/1152)*
(x/(1+x^2))^4+...)

arcsin x = ATN(x/SQR(1-x*x));
arccos x = -ATN(x/SQR(1-X*X))+PI/2;
arccot x = ATN(x)+PI/2;
Funktion definieren DEFFN ASIN(X)=ATN(x/SQR(1-x*x)) und aufrufen FN asin(x).

Umwandlung einer Winkelfunktion in eine andere:
sin x = ± tan(x)/SQR(1+tan^2(x));
cos x = ± 1/SQR(1+tan^2(x));
tan x = ± SQR(1-cos^2(x))/cos(x);
tan x = ± sin(x)/SQR(1-sin^2(x));
sin x = SQR(1-cos^2(x));
cos x = SQR(1-sin^2(x)).


Radix
Quadrat Kubik n-te Wurzel
INPUT A INPUT A INPUT a,n
B=(1+A)/2 b=1 b=1
p1: p: p:
C=B c=b c=b
B=(C+A/C)/2 b=(2/3)*b+(a/3)*(1/(b*b)) b=((n-1)/n)*b+(a/n)*(1/b^(n-1))
IF B<C THEN IF ABS(b-c)<1.0E-13 THEN IF ABS(b-c)<1.0E-13 THEN
GOTO p1 GOTO p1 GOTO p1
ENDIF ENDIF ENDIF
PRINT B GOTO p GOTO p
END p1: p1:
PRINT B PRINT B
END END

Quadratwurzel aus Ö123 = 11.09053650640942. PRINT SQR(123).

n = EXP((1/x)*LOG(a)); LOG = natürl. Logarithmus. Kubikwurzel: x=3, a=500: 500^(1/3) = n 7.937005. Quadratwurzel x=2, a = Radikant. SQR(SQR(5)) = 5^(1/4) = 4-te Wurzel. SQR(x) = engl. square root = Quadratwurzel.

Logarithmen

Logarithmen: Funktionszeichen ln bzw. LOG(x) (natürlicher Logarithmus) und Exponentialfunktion ex bzw. EXP(x) (Umkehrung von ln). Briggscher Logarithmus mit Basiszahl 10 (lg bzw. LOG10(x)). Der natürl. Logarithmus von 10 ist LOG(10) = ln 10 = 2.302585092994. Briggscher Logarithmus LOG10(x) = (ln x)/(ln 10).

ln (x+1)/(x-1) = 2*(1/x + 1/(3*x^3) + 1/(5*x^5) + 1/(7*x^7) + 1/(9*x^9) + 1/(11*x^11) +...)

Z. B. 4.2356788 = ln 1.443543. (4.2356788+1)/(4.2356788-1) = x 1.6181083, Reihenglieder 0.6180056 + 0.07867849 + 0.018029849 + 0.004918684 + 0.0014611314... = 0.7211717 * 2 = ln 1.443544.
Für ln<1: ln x = (x-1)/1 - (x-1)^2/2 + (x-1)^3/3 - (x-1)^4)/4 + (1-1)^5)/5 - (x-1)^6/6 +...

Exponentialfunktion (ex oder EXP(x)): Umkehrung des natürlichen Logarithmus (ln).
ex = 1 + x/1// + x^2/2// + x^3/4// + x^4/4// + x^5/5// +...

Exponentendarstellung (E) in wissenschaftl. Notation -1.23567*10-15 in halblogaritmischer Computer-Notation -1.23567E-15.

Logarithmentafeln der Winkelfunktionen erleichterten damals das Rechnen, da Multiplikation und Division von Zahlen auf Addition und Subtraktion ihrer Logarithmen zurückführt.

lg 0.9 = PRINT LOG10(0.9) = -0.045757 = lg 0.95424-1 oder lg 9.5424-10.
Negative Logarithmen um 1,2,3.. oder 10,20,30.. bis lg positiv (lg>0) erhöhen und als Subtrahend anhängen: lg sin 34° = LOG10(sin(FN rad(34))) = -0.25253+1 = 0.74756-1.
Umkehrung: lg sin 34° = 0.74756-1 = 10^-0.25253 = sin 0.55919 = arcsin 34° = FNdeg(ASIN(10^-0.25253)).

Beispiel:

sin h = sin(f) sin(d)+cos(f)*cos(d)*cos(t)
sin h = Objekthöhe über dem Horizont h +40.9625°; f = geograph. Breite des Standortes -33°; d = Deklination (Äquator -Winkeldistanz) des Objektes +15°; t = Stundenwinkel = 10.5°.

lg sin f 33° 0.736108-1
lg sin d 15° 0.412996-1
lg n1 0.149105-1 = sin 0.140963 = 10^(0.149105-1)

lg cos f 33° 0.923591-1
lg cos d 15° 0.984944-1
lg cos t 10.5° 0.992666-1
lg n2 0.901201-1 = cos 0.796528 = 10^(0.9012013-1)

-n1 (n1 neg. da f negatives Vorzeichen (<0) ) + n2 = sin h 0.655565 = Ergebnis h 40.9625°.

Azimut: sin a = (cos(d)) sin(t))/cos(h)

lg cos d 15° 0.98494-1
lg sin t 10.5° 0.26063-1
lg z 0.245573-1
- lg cos h 0.878026-1
lg sin a 0.367546-1 = sin 0.233102 = arcsin 0.235255 rad = 13.479°.

secans (sec) x = 1/cos(x);
cosecans (cosec) x = 1/sin(x);
cot x = 1/tan(x) oder cot x = tan(PI/2-x).

Arcusfunktion:
DEFFN arcsec(x)=ATN(SQR(x*x-1))+(SGN(x-1)*PI);
DEFFN arccosec(x)=ATN(1/SQR(x*x-1))+(SGN(x-1)*PI); DEFFN arccot(x)=ATN(x)+PI.

Potenzen

ax = 1+(x ln a)/1!+(x ln a)2/2!+(x ln a)3/3!+...
^=Potenzierungspfeil.

Hyperbolische Winkelfunktionen

sinh x = (EXP(x)-EXP(-x))/2
cosh x = (EXP(x)+EXP(-x))/2
tanh x = -EXP(-x)/(EXP(x)+EXP(-x))*2+1
coth x = EXP(-x)/(EXP(x)-EXP(-X))*2+1

Reihenentwicklung für hyperbol. Winkelfunktionen:

sinh x = x+(1/3//)*x^3+(1/5//)*x^3+(1/7//)*x^7+...
cosh x = 1+(1/2//)x^2+(1/4//)*x^4+(1/6//)*x^6+...
tanh x = x-(1/3)*x^3+(2/15)*x^5-(17/315)*x^7+(62/2835)*x^3-
-(1282/155925)*x^11+1.8789334E09/5.2306974E+11)*x^13

Hyperbolische Sekante DEFFN sech(x)=2/(EXP(x)+EXP(-x))
hyperb. Cosekante: DEFFN cosech(x)=2/(EXP(x)-EXP(-x))
hyperb.Cotangente: DEFFN coth(x)=EXP(-x)/(EXP(x)-EXP(-x))*2+1.

Areafunktion:

arsinh x = x-(1/2)*(x^3/3)+(1*3/2*4)*(x^5/5)-(1*3*5)/2*4*6*7)*(x^7/7)+ -...
arcosh x = ± (ln (2*x) - 1/(2*2*x^2) - (1*3)/(2*4*4*x^4) - (1*3*5)/(2*4*6*6*x^6)-...)
artanh x = x + x^3/5 + x^5/5 + x^7/7 + x^9/9 + x^11/11 +...

arsinh x = ln(x+SQR(x^2+1)
arcosh x = ln(x+SQR(x^2-1))
artanh x = ln((1+x)/(1-x))/2; arcoth x = ln((x+1)/(x-1))/2.

DEFFN arsech(x)=LOG((SQR(-x*x+1)+1)/x)
DEFFN arcosech(x)=LOG((SGN(x)*SQR(x*x+1)+1)/x)
DEFFN arcoth(x)=LOG((x+1)/(x-1))/2

Quadrantenfunktion

Quadrant: a=ATN(y/(1+x)*2 (ist a negativ [a<0], PI*2 360° addieren].

DEFFN DEG(x)=x*(180/PI)
DEFFN RAD(x)=x*(PI/180)
DEFFN r(x)=x-int(x/(pi*2))*(PI*2)
INPUT “WINKELGRAD”;w1
w1=FN RAD(w1)
y=COS(w1)
x=SIN(w1)
GOSUB qu(x,y,z)
w2=FN DEG(z)
PRINT w2
END
PROCEDURE qu(y,x,VAR w)
w=FN r(ATN((y-(ABS(y)<1.0E-07)*x)/(1+x+(x*(x=<-1)*1.0E-100)))*2)
REM oder:
REM IF x==-1 THEN //falls x=-1 und 1+x = 0: IF x<-0.999999999 THEN
REM w=PI
REM ELSE
REM w=FN r(ATN(y/(1+x))*2)
REM ENDIF
RETURN

Quadrantenregel: sin a cos a tan a cot a cosec a sec a
1.: 0°<a< 90° + + + + + +
2.: 90°<a<180° + - - - + -
3.: 180°<a<270° - - + + - -
4.: 270°<a<360° - + - - - +

l = ekliptikale Länge der Sonne (aktuelle ekl. Breite stets <1'', praktisch = 0°); Ekliptikschiefe e = 23.4392911111° (Äquinoktium J2000);

a = Rektaszension der Sonne; d = Deklination. Ekl. Länge der Sonne in Rektaszension (AR).
tan a = cos(e)*sin(l)/cos(l)
sin d = sin(e)*sin(l)

AR in ekl. Länge: tan l = sin(l)/(cos(e)*cos(a). Die richtige Quadrantenzuordnung von tan l oder tan a geschieht durch Umwandlung zweidimensionaler (ebener) Koordinaten (2-D) arctan(x/y) in Polarkoordinaten (w,r):

y=cos(e)*sin(l)
x=cos(l)
w=ATN(y/x)
r=SQR(x^2+y^2)
x=x/r //x2 + y2 = 1
y=y/r
w=ATN(y/(1+x))*2 //tan a/2 = (sin(y)/(1+cos(x))

DEFFN deg(x)=x*(180/PI)
DEFFN rad(x)=x*(PI/180)
DEFFN r(x)=x-INT(x/(PI*2))*(PI*2)
INPUT l
l=FN rad(l) // Ekl. Sonnenlänge
e=FN rad(23.45) // Ekliptikschiefe
y=COS(e)*SIN(l)
x=COS(l) //Allg. ATN(y/x) = y = Zöhler, x = Nenner
w=ATN(y/x) //Quadrantenzuordnung
PRINT FN deg(w)
GOSUB qup(x,y,z)
PRINT FN deg(z) // Quadrant/Rektaszension
w=z
y=SIN(w) // Umkehrung in ekl. Länge
x=COS(e)*COS(w)
w=ATN(y/x)
PRINT FN deg(w)
GOSUB qup(x,y,z) // Quadrantenrichtige
PRINT FN deg(z) // ekl. Länge
END
PROCEDURE qup(x,y,VAR w1)
r=SQR(x^2+y^2)
x=x/r
y=y/r
w1=FN r(ATN((y-(ABS(y)<1.0E-07)*x)/(1+x+(x*(x=<-1)*1.0E-100)))*2)
REM oder:
IF x<-0.999999999 THEN
w1=PI
ELSE
w1=FN r(ATN(y/(1+x))*2)
ENDIF
RETURN

DEFFN r(x)=x-INT(x/(2*PI))*PI*2 //INTERVALL 0<=x<=PI*2
w1=FN atn2(y,x) //POLARWINKEL INTERVALL 0<=w1<=PI*2
FUNCTION atn2(y,x)
d=SQR(x*x+y*y) //DISTANZ
x1=x/d //DEFINIEREN EINER MEHRZEILIGEN FUNKTION
y1=y/d
w=FN r(ATN(y/(1+x))*2) //POLARWINKEL
RETURN w
ENDFUNC

Quadrant von rechtwinkligen (räumlichen) 3-D Koordinaten (z. B. Conversion von geozentr. in heliozentr. Örter) der Gleichung:

r cos(hb) cos(hl) = rs cos(sb) cos(sl) + D cos(gb) cos(gl)
r cos(hb) sin(hl) = rs cos(sb) sin(sl) + D cos(gb) sin(gl)
r sin(hb) = rs*cos(sb) + D sin(gb)

r,hb,hl = heliozentr. (Sonnenmittelpunkt bezogene) ekliptikale Entfernung, Breite u. Länge des Gestirns; rs, sb, sl = ekl. Koordinaten der Erde=diametrale ekl. Sonnenkoordinaten (rs=Entfernung Erde-Sonne in AE, ekl. Br. Erde sb = ekl. Breite - Sonne -sb, ekl. Länge Erde sl = ekl. Länge Sonne sl+PI; D, gb, gl = geozentrische (Erdmittelpunkt bezogene) Entf., Br. u. Länge des Gestirns.

x = rs cos(sb) cos(sl) + D cos(gb) cos(gl)
y = rs cos(sb) sin(sl) + D cos(gb) sin(gl)
z = rs cos(sb) + D sin(gb)

Entfernung r = SQR(x^2+y^2+z^2)
Breite: arcsin hb = z/r oder arctan hb = z/sqr(x^2+y^2).
Länge hl (quadrantenrichtig) = arctan ((D cos(hb)+x)/y)*2, falls hl<0, 2*PI RAD (DEG +360°) addieren. Oder Quadrant aus:
x=x/(cos(hb)*D)
y=y/(cos(hb)*D)
hl=ATN((y-(ABS(y)<1.0E-07)*x)/(1+x+(x*(x=<-1)*1.0E-100)))*2; falls hl<0, 2*PI (RAD) oder +360 (DEG) addieren.

Entfallen die Entfernungswerte und setzen r=1, treffen die Ausführungen ebenfalls für die Einheitskugel (Radius = 1) zu.
Formel zur Berechnung von Höhe und Atimut:

sin h = sin f sin d + cos f cos d cos t
cos h sin a = cos d sin t
cos h cos a = sin f cos d cos t - cos f sin d

h = Höhe über dem Horizont (h<0 unter dem Horizont), a = Azimut (ab Süden über Westen 0 bis 360°), f = geograph. Breite, d = Deklination.

z=cos(h); y = sin a/(z-(z=0)*1E-20); x = cos a/(z-(z=0)*1E-20); Quadrant: a = ATN(y/(1+x))*2 (a<0, DEG +360° oder RAD PI*2).

Alle Rechte vorbehalten (all rights reserved), auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien, Translation usw. Dasselbe gilt für das Recht der öffentlichen Wiedergabe. Spaceglobe ist für fremde Inhalte externer Internetseiten nicht verantwortlich. Copyright © by H. Schumacher, Spaceglobe.

Sternbeobachter - Sterntagebuch - Produktinformation - www.spaceglobe.de