In der Computerprogrammierungsterminologie werden Programmiersprachen oft in "High-Level"- und "Low-Level"-Sprachen unterteilt. Der Unterschied zwischen den beiden ist eine Frage der Hardware-Interaktion. Einfach ausgedrückt befinden sich Low-Level-Sprachen "tiefer" auf dem Computersystem, näher an der tatsächlichen Hardware-Interaktion. Hochsprachen werden von der Hardware abstrahiert. Das Ergebnis dieser Abstraktion kann zu einem schnelleren, besser lesbaren Code, jedoch zu geringeren Geschwindigkeitsvorteilen und weniger Zugriff auf Systemressourcen führen.
Abstraktion
Was Hochsprachen von Niedrigsprachen unterscheidet, ist der Abstraktionsgrad einer Sprache von Systemressourcen. Der tägliche Umgang mit Systemressourcen kann langsam und schmerzhaft werden. Hochsprachen wurden geschaffen, um dieses Problem zu lösen, indem sie das System für den Programmierer handhaben, sie, um komplexere Aufgaben zu erledigen, während sie die kleinsten Details des Systems, wie den Speicher, ignoriert Verwaltung. Dies hat jedoch den Nachteil, dass sich ein Programmierer möglicherweise in einer Situation befindet, in der ein Systemzugriff erforderlich ist und eine Hochsprache diesen Zugriff nicht gewähren kann. Eine Hochsprache ist normalerweise nicht für die Systemprogrammierung geeignet.
Video des Tages
Geschwindigkeit
Hochsprachen sind typischerweise eher "interpretierte" Sprachen als die "kompilierten" niederen Sprachen. "Interpretiert" bedeutet einfach, dass eine Sprache einen Interpreter verwendet, der den Quellcode Zeile für Zeile ausführt, anstatt eine Binärdatei zu kompilieren. Interpreter sind jedoch häufig Programme, die in kompilierten Sprachen geschrieben wurden. Aus diesem Grund läuft die interpretierte Sprache – beispielsweise Python – nur auf dem Python-Interpreter, der in C geschrieben ist. Dies erhöht den Speicher- und Zeitaufwand für interpretierte Programme, und sie werden oft langsamer ausgeführt.
Besonderheiten des Systems
Eine scheinbare Stärke von High-Level-Code ist seine Portabilität. High-Level-Code kann auf jedem System ausgeführt werden, auf dem der entsprechende Interpreter installiert ist. Wenn jedoch ein Programm für einen Computer kompiliert wird, berücksichtigt es bei seiner Kompilierung die gesamte Umgebung dieses Systems. Eine interpretierte Sprache ist bereits so weit vom System abstrahiert, dass das interpretierte Programm nichts über das System weiß, außer dem, was der Interpreter liefern kann.
Programmiergrenzen
Aufgrund der Natur von Hochsprachen gibt es bestimmte Aufgaben, für die sie nicht oder zumindest noch nicht geeignet sind. Ohne Zugriff auf Systemressourcen ist die Entwicklung schneller, betriebssystemnativer Anwendungen schwierig. Darüber hinaus wird sogar die Entwicklung eines Betriebssystems problematisch. Da immer mehr Software online geht, wird diese Tatsache weniger besorgniserregend, aber für den kommerziellen und industriellen Gebrauch arbeiten interpretierte Sprachen möglicherweise zu langsam oder zu weit von der Hardware-Interaktion entfernt.