Eine kleine Übersicht:

imperativ / objektorientiert deklarativ
(C), C++, C#, Java, Java-#, Pascal/Delphi, PHP, Basic/VB(A), ...

Haskell, LISP, Prolog, SQL, ...

hinsichtlich mathematischer Algorithmen auch Computer-Algebra-Systeme (CAS) => blackbox (TI-nspire, TI-89)

Im Vordergrund steht das WIE. Der Programmierer gibt an, in welcher Reihenfolge der Computer was machen soll. Im Vordergrund steht das WAS. Der Programmierer übergibt dem Computer meist einen Ausdruck, den er ausgewertet haben möchte und der Computer kümmert sich um die Ausführung.

Wie funktioniert Programmieren überhaupt?

Am Beispiel eines Frameworks:

Quellcode

Compiler übersetzt in

Zwischencode

Linker (Java: Java-Runtime-Environment (jre), C#: .Net-Framework) übersetzt in

Maschinencode

Kann vom Computer ausgeführt werden

Vorteil der "Zwischencodelösung" ist, dass lediglich die Frameworks/Runtime-Environments an die Prozessorarchitekturen angepasst werden müssen und der vom Programmierer geschriebene Quell-/Zwischencode entsprechend auf jeder unterstützten Architektur meist ohne Anpassungen ausgeführt werden kann.

Nachteile:

  • systemnahe Programmierung meist nicht möglich bzw. nur schwierig umsetzbar

  • meist etwas langsamer als direkt für den Prozessortyp erzeugter Maschinencode