Hochsprache und Maschinensprache Unterschied?

5 Antworten

Kleine Ergänzung noch: In Maschinensprache entspricht jede Zeile genau einem Befehl der jeweiligen CPU.


PWolff  24.11.2017, 12:57

Maschinensprache kennt keine Zeilen, nur Speicherzellen.

Bei 8-Bit-Prozessoren bestehen viele Maschinenbefehle aus mehreren Bytes.

1

Hochsprachen sind wesentlich mehr abstrahiert (zB C, C++, Java, etc). Maschinensprache sind sehr "maschinennah", beispielsweise Assembler (zB "kopiere Register A nach Register B in der CPU)

Woher ich das weiß:Berufserfahrung – Arbeit als Programmierer

PWolff  24.11.2017, 12:47

C ist noch nicht unbedingt eine Hochsprache.

0
Royce  24.11.2017, 12:59
@PWolff

Selbstverständlich ist sie das. 
Das kommt jetzt wieder auf die persönliche Definition an. Jede abstrahierende Programmiersprache ist in meinen Augen eine Hochsprache

0
Piotr127  24.11.2017, 21:14
@PWolff

C ist portables assembler. Das "portabel" macht es zur hochsprache ;) ernsthaft: alles was mindestens einen compiler oder interpreter hat,  gilt formal als hochsprache. 

0

Die Maschinensprache ist sehr hardwarenah, man steuert also 1:1 die Maschine mit entsprechenden Befehlen. Eine Hochsprache abstrahiert die Hardware und ist meist weitestgehend unabhängig von dieser.

Maschinensprache besteht aus OPCodes oder den zugeordneten Mnemonics. Du schreibst hier wirklich genau Schritt für Schritt das auf, was der Prozessor tun soll.

Eine Hochsprache abstrahiert das.

Nehmen wir beispielsweise mal einen fiktiven Befehl PRINT "...", der den Text in Anführungszeichen einfach auf dem Bildschirm ausgeben soll (gehen wir mal davon aus, dass es keine Fenster gibt, sondern quasi nur eine Textausgabe).

In einer Hochsprache könntest Du schreiben PRINT "Hallo". Der Text würde ausgegeben.

In Maschinensprache übersetzt würde das aber zu folgendem führen (sehr stark vereinfachter Pseudocode):

Lade Adresse von konstantem Text "Hallo" in das Register x
Rufe Grafikkartenfunktion auf, die Text aus Register x lädt
Rufe Grafikkartenfunktion auf, die Text an aktuelle Position schreibt
Rufe Grafikkartenfunktion auf, die aktuelle Position um Länge des Textes verschiebt

Das hier wäre beispielsweise das Hello-World-Programm in Assembler:

 org 100h
start:
mov dx,hello_world
mov ah,09h
int 21h
mov al, 0
mov ah,4Ch
int 21h
section .data
hello_world: db 'hello, world', 13, 10, '$'

Alles klar, oder? Dasselbe jetzt in Java:

public static void main(String[] args)
{
  System.out.printLn("Hello World");
}


Die Interpretation. Die Maschinensprache kann keinen Kontext übertragen, berücksichtigen, sondern führt Befehle aus. Die Hochsprache vermittelt Kontext und Sinn.


ohwehohach  24.11.2017, 11:09

Es geht um Programmiersprachen. Nicht um natürliche Sprache.

0