Unterschied Maschinensprache, Programmiersprache, Hochsprache(bzw. höhere Programmiersprache)?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Maschinensprache ist eine Folge von Nullen und Einsen - ein s.g. Binärcode. Da Menschen sich diese langen binären Folgen schlecht merken können wurden Assembler entwickelt die im Grunde nichts weiter tun als leichter merkbare Abkürzungen (die Mnemonics) in Maschinencode umzuwandeln.

Maschinensprache wird daher umgangssprachlich auch gern für diverse Assembler-Dialekte verwendet.

So steht zB inc eax (inkrementiere den Inhalt des Registers EAX) für den OpCode 0x40 (hex) bzw. 1000000 (binär).

Du siehst also weder 0x40 noch 1000000 wären wirklich einprägsam und ein Programm aus zig Zeilen solcher Codes wäre sehr schwer lesbar...

Hochsprachen sind eine Weiterentwicklung der Assembler-Sprachen. In Assembler programmiert man jeden Prozessorbefehl aus. Das kann bei komplexen Programmen zu einer Unmenge an Code führen. Hierzu ein Beispiel:

Hallo Welt in nasm für Linux:

section data
hello db  "Hallo Welt!", 0xa
len   equ $-hello

    section text
    global  _start

_start:
    ; Print text with a system-call
    mov eax, 4 
    mov ebx, 1
    mov ecx, hello
    mov edx, len
    int 80h

    ; Exit programm
    mov eax, 1 
    mov ebx, 0
    int 80h

Hallo Welt in C++:

#include <iostream>

int main(){
    std::cout << "Hallo, du schöne Welt!" << std::endl;
    return 0;
}

Hallo Welt in Python:

print("Hallo Welt")

... du siehst also, dass Hochsprachen wie C++ oder Python quasi mehrere Maschinenbefehle zu einem Befehl zusammenfassen. Das hat zwei Vorteile:

  1. Man ist schneller und benötigt weniger Code
  2. Das gleiche Programm kann ohne Anpassung auf verschiedenen Prozessoren kompiliert werden, was mit der prozessorspezifischen Maschinensprache nicht geht (zumindest nicht außerhalb einer Prozessorfamilie)!

Programmiersprachen ist der Überbegriff für alles womit man Programme schreibt.

Woher ich das weiß:Berufserfahrung – Softwareentwickler f. Web, Win. & Linux (seit 2001)

Maschinensprache ist der Code, den ein Rechner versteht, Programmiersprachen gibt es viele, z.B. Assembler, die am nächsten an der Maschinensprache ist und einen geringen Abstraktionslevel hat. Hochsprachen haben einen hohen Abstraktionslevel, d.h. sind weit von dem entfernt, was die Maschinensprache ist.

Woher ich das weiß:Studium / Ausbildung
obrixen 
Fragesteller
 16.12.2019, 18:49

Sind Maschinensprachen und Hochsprachen gleichzeitig Programmiersprachen?

0
odine  16.12.2019, 18:50
@obrixen

...da in diesen Sprachen programmiert wird: Ja.

1