Zum Inhalt

Grundbegriffe

Programmiersprachen

Eine Programmiersprache ist eine formale Sprache zur Formulierung von Algorithmen die von Computern ausgeführt werden können. Für die Tätigkeit der Softwareentwicklung sind Programmiersprachen als Werkzeug zu verstehen, um die Lösung einer Problemstellung in ein ausführbares Programm zu überführen.

Tätigkeit der Softwareentwicklung

Programmierparadigma

Einer Programmiersprache liegt zumeist ein sog. Programmierparadigma zu Grunde. Als Programmierparadigma versteht man dabei einen fundamentalen Ansatz bzw. fundamentale Prinzipien wie mittels einer Programmiersprache programmiert wird. Grob unterscheidet man zwischen dem imperativen und dem deklarativen Programmierparadigma.

Als imperative Programmierung versteht man die "klassische" Art des Programmierens. Dabei wird mit dem Programm beschrieben, welche Anweisungen und Operationen der Computer in welcher Abfolge durchführen soll. Dem Rechner wird das "WIE", also der genaue Lösungsweg, beschrieben. Programmiersprachen, welche diesem Paradigma unterliegen, verfügen über sog. Kontrollstrukturen um diese Beschreibung zu realisieren. C, Java oder Python können diesem Paradigma zugeordnet werden.

Im Gegensatz dazu wird bei der deklarativen Programmierung der Fokus auf die Beschreibung des "WAS" gelegt. Dem Computer wird genau beschrieben wie die Lösung aussehen soll, den Lösungsweg errechnet der Computer dann eigenständig. Die mengenorientierte Sprache SQL wäre diesem Paradigma zuzuordnen. Die logische Programmiersprache Prolog wäre auch diesem Paradigma zuzuordnen.

Programmiersprache Python

Python ist eine universelle, üblicherweise interpretierte, höhere Programmiersprache.

Universelle Programmiersprache

Python kann für die unterschiedlichsten Vorhaben eingesetzt werden. Folgend einige Beispiele um dies zu verdeutlichen:

Interpretierte Programmiersprache

Python wird zur Laufzeit über einen Interpreter ausgeführt und (üblicherweise) nicht vorher in Maschinensprache kompiliert. CPython ist die Referenzimplementierung des Python Interpreters, welcher von der Python Software Foundation bereitgestellt wird. Im folgenden Schaubild soll die grundlegende Funktionsweise des Interpreters etwas genauer erläutert werden:

CPython Architektur

Der Python Programmcode, welcher innerhalb von .py Dateien geschrieben wird, wird als Input an den Python Interpreter übergeben. Im Inneren des Python Interpreters wird der Python Programmcode in kompilierten Bytecode als Zwischenrepräsentation überführt. Dieser Bytecode wird innerhalb von .pyc Dateien gespeichert, sodass dieser Vorgang beim mehrmaligen Ausführen des selben Python Programmcodes nur einmalig ausgeführt werden muss (Caching). Der Bytecode wird auf der integrierten virtuellen Machine ausgeführt und erweckt das Programm so zum Leben. Externe Programmbibliotheken (zB TensorFlow) können als Bytecode bereitgestellt werden und werden von der virtuellen Machine geladen.

Neben der CPython Implementierung des Python Interpreters gibt es noch eine Vielzahl weiterer Community-Implementierungen, folgend einige Beispiele:

  • Jython ist ein Python Interpreter, welcher Java Bytecode erzeugt und diesen auf der Java Virtual Machine ausführt
  • IronPython überführt Python in die .net Welt von Microsoft
  • PyPy ist ein alternativer und schnellerer Python Interpreter

Höhere Programmiersprache

Python nutzt Abstraktionen von Konstrukten der Maschinensprache bzw. Assemblersprache um die Programmierung für Menschen einfacher zu gestalten.

Im folgenden wäre beispielhaft demonstriert, wie Assemblercode für ein einfaches Hello, World! in Python aussehen würde:

global _start   
_start: 
xor eax, eax

jmp short string    
code :  
pop esi
push byte 15
push esi
push byte 1
mov al, 4
push eax
int 0x80

xor eax, eax
push eax
push eax
mov al, 1
int 0x80

string :    
call code   
db‘Hello, world!’, 0x0a

Interaktive Python Benutzung

Python kann interaktiv genutzt werden. Dies ist vorallem für Programmieranfänger:innen hilfreich um die Programmiersprache schnell und einfach auszuprobieren. Mit Installation des Python Interpreters wird auch die Python REPL installiert. In der Kommandozeile kann die REPL mit dem Befehl python gestartet werden:

Python REPL

Alternativ kann eine Python Laufzeitumgebung im Web-Browser geöffnet werden. Online Python wäre ein Beispiel einer interaktiven Laufzeitumgebung im Web-Browser.