FJKarli.ch Informatik  
 Programmieren
Geschichte
 
© 2016 Franz-Josef Karli
 26.06.2016 Programmiersprachen
   
 Maschinencode

Programmiersprache 1. Generation
Der Maschinencode oder die Maschinensprache ist eine Programmiersprache, die der Computer unmittelbar versteht. Maschinensprachen sind für Menschen schwer verständlich und unübersichtlich. Sie bestehen aus binären oder hexadezimalen Zahlen.
Das könnte etwa so aussehen:
0202 03E8 0203 03E8 0602 1801 10FD
Dieses Programm veranlasst einen bestimmten Computer, auf tausend zu zählen.
Ein Kompromiss sind die Assemblersprachen, in denen die Zahlen durch leicht merkbare Buchstabengruppen dargestellt werden.
Die Maschinensprache ist die unterste Stufe der Computerprogrammierung und die einzige Sprache, welche ein Computer ohne Hilfe eines anderen Programmes ausführen kann.
Programme in Maschinensprache werden für einen bestimmten Rechner oder Rechnertyp entwickelt und sind nicht damit nicht auf anderen Rechnern ausgeführt werden können. D. h. sie sind nicht portabel.

Beispiele von Programmiersprachen:M68000, 386

 Assembler

Programmiersprache 2. Generation
Symbolische, maschinenorientierte Sprache bzw. Übersetzungsprogramm.
Eine Maschinensprache, bei der die einzelnen Befehle durch leicht merkbare Buchstabengruppen dargestellt werden.
Das folgende Assemblerprogramm weist den Computer an, auf tausend zu zählen:


Die Assembler-Sprache stellt für jeden elementaren Maschinenbefehl einen mnemotechnischen, maschinengebundenen Code bereit. Dabei bedeutet „mnemotechnisch“ erlernbar, verständlich, indem z. B. für den Maschinenbefehl 03EF der Assemblerbefehl INC benützt wird, was soviel bedeutet wie „addiere 1 zum Inhalt des Rechenregisters“.
Das Assemblerprogramm oder der Assembler übersetzt den Source-Code oder Quellkode (Assembler - Code) in Maschinencode um, welcher direkt ausgeführt werden kann.
Auch beim Assembler gilt, dass Assembler - Programme für einen bestimmten Rechner oder Rechnertyp geschrieben werden und damit nicht auf anderen Rechnern ausgeführt werden können.
Diese Schwachstelle versuchte man mit einem Cross-Assembler zu umgehen, indem der Cross-Assembler Assembler-Code in Maschinen-Code eines anderen Rechners umsetzt. Damit werden Assemblerprogramme (bedingt) portierbar.
Unter „SOURCECODE“ wird auch die Datei verstanden, welche die Anweisungen des Programms enthält.

Beispiele von Assemblersprachen sind: MAKRO, MASM, Turbo Assembler

 INTERPRETER
 COMPILER
 LINKER

Programmiersprache 3. Generation
Prozedurale Sprachen für spezielle Anwendungsbereiche. Symbolische, problemorientierte Sprachen bei welchen der Ablauf eines Programms durch die Reihenfolge der Anweisungen festgelegt wird (nicht mehr maschinenorientiert, portabel).
INTERPRETER
Ein Maschinenprogramm, das einzelne Befehle einer höheren Sprache in Maschinensprache übersetzen und direkt ausführen kann, also eine Art Simultanübersetzer. Einige höhere Sprachen lassen die Anwendung eines Interpreters nicht zu; das Programm muss als Ganzes übersetzt werden. Dazu dient der Compiler.
BASIC ist eine Interpreter-Sprache, Pascal nicht. Programme in Pascal muss man mit einem Compiler übersetzen.
Bei der Programmausführung wird jeweils die aktuelle Programmzeile des Sourcecodes in Maschinen - Code übersetzt und sofort ausgeführt.
2. COMPILER
Der Sourcecode wird in Maschinencode übersetzt und in Dateien mit Objectcode abgespeichert. Diese Module müssen mit dem Linker zu einem ausführbaren Programm zusammengefügt werden.
3. LINKER
Der Linker fügt verschiedenen Objectcode mit weiteren Resourcen (Modulen, Bibliotheken, usw.) zu einem ausführbaren Programm zusammen.

Beispiele von Programmiersprachen der 3. Generation sind: BASIC, COBOL, FORTRAN, PASCAL, MODULA-2, ADA, C, OCCAM, PL/I, RPG II usw.

  Programmiersprache 4. Generation
Nichtprozedurale Sprachen für unterschiedliche Anwendungen. Nicht – von – Neumann - Sprachen.
Symbolische, problemorientierte Sprachen, bei welchen Angegeben wird, was das Programm tun soll, ohne jedoch anzugeben, wie dies im einzelnen zu geschehen hat (Deskriptivität, Objekt - Orientiert)
Beispiele von Programmiersprachen der 4. Generation sind: ORACLE, BRICK, SQL (für Informationssysteme), PARADOX, dBase, ObjektVision, C++, TurboPascal V6, MODULA-2 V3, APL.(Integrierte Programme für PC's) FrameWork, Symphony 1-2-3, Open Access.
  Programmiersprache 5. Generation
AI Artificial Inelligence
KI Künstlichen Intelligenz
Beispiele von Programmiersprachen der 5. Generation: LISP, PROLOG, SMALLTALK, LOGO.
   
  RAD - Rapid Application Developpment
Mit der horrenden Verbreitung graphischer Oberflächen (im Besonderen Windows) wurden vermehrt graphisch und Objekt–orientierte Sprachen bzw. Entwicklungs­umgebungen durch, wie dies z. B. mit Visual Basic von Microsoft auf der einen und Delphi bzw. CBuilder von Inprise (Borland) der Fall ist. Dabei werden alle Windows basierten Teile so gekapselt, dass der Entwickler sich lediglich noch mit seinem Code beschäftigen muss.
   
  Webbasierte Programmentwicklung
Während in den Anfängen Interpreter kaum eine Chance hatten, erleben diese mit immer schnelleren Prozessoren eine ungeahnte Renaissance, indem Internet-Browser prozedurale Programme langsaam verschwinden lassen. Grundlagen sind die Seitenbeschreibungssprache HTML und Sprachen wie PHP, Java, usw.
Mittlerweile stehen AMP-Systeme kostenfrei zur Verfügung, um lokal einen Webserver (Apache), ein Datenbanksystem (MySQL) und einen PHP Interpreter zu betreiben.
Ebenso stehen verschiedene webbasierte Entwicklungsumgebungen völlig kostenfrei zur Verfügung. Beispiel sind NetBeans, Eclipse, usw.
Gleichzeitig stehen immer mehr Programmpakete oder Frameworks zur Verfügung, welche den Programmieraufwand für Web-Anwendungen auf das absolut Wesentliche reduzieren – ein Bespiel ist Laravel.