[an error occurred while processing this directive]

Einführung in die Aufgabe eines Übersetzers (Compilers) (Übersetzer, Compiler), Lektion, Seite 720305
http://www.purl.org/stefan_ram/pub/programmieren_compiler_de ist die kanonische URI dieser Seite.
Startseite

Übersetzer

Eine Programmiersprache, die für Menschen und deren typische Problemen gestaltet wurde, nennt man eine höhere Programmiersprache  oder eine problemorientierte Programmiersprache. Damit soll sie von der „niedrigen“ Maschinensprache unterschieden werden, die vom Prozessor verstanden wird. Zur Ausführung eines Programms muß ein Programm in einer höheren Programmiersprache aber erst in Maschinensprache übersetzt werden. Die Übersetzung kann durch ein Übersetzungsprogramm  (Compiler ) erfolgen.

Ein Übersetzer liest eine Übersetzungseinheit  (eine Quelldatei ) und schreibt dann eine Objektdatei, die Maschinencode enthält, der dem Quellcode entspricht.

maschinelle Uebersetzung
        _____ 
.-' '-. 
.' '. 
/ \ 
; ; 
| Uebersetzungs- | 
; Einheit ; 
\ / 
'. .' 
'-._____.-'  


.-------------------. 
| | 
| Uebersetzer | 
| | 
'-------------------' 

__V__ 
.-' '-. 
.' '. 
/ \ 
; ; 
| Objektcode | 
; ; 
\ / 
'. .' 
'-._____.-'

Die Übersetzungszeit  ist die Zeit, zu der ein Programm übersetzt wird. Ein Übersetzungszeitfehler  ist ein Fehler in einem Programm, der schon während der Übersetzung des Programms vom Übersetzer erkannt werden kann. Dies sind meistens die Syntaxfehler. Aber auch zu große Ausdrücke können beanstandet werden, wenn deren Wert schon zur Übersetzungszeit erkannt werden kann.

Einer der ersten Übersetzer war der formula translator  fortran. Er wurde 1954-1957 von einer ibm-Gruppe unter der Führung von John W. Backus erstellt. Anweisungen konnten unter Zuhilfenahme der gewohnten mathematischen Notation geschrieben werden.

ein FORTRAN-Programm
INTEGER		Y, X 
X = 7 
Y = X *( X + 3 ) 
PRINT Y 
STOP

Die Übersetzung der „Formeln“ in Maschinensprache kann man sich wie in der folgende Auflistung vorstellen, in der aber die Codes der Maschinensprache bereits durch besser lesbare Merkwörter ersetzt wurden.

Assembler-Code (Intel Pentium)
MOVL	$7,-4(%EBP) 
MOVL -4(%EBP),%EDI 
MOVL %EDI,%ESI 
ADDL $3,%ESI 
IMULL %ESI,%EDI 
MOVL %EDI,-8(%EBP) 
PUSHL -8(%EBP) 
CALL _PRINT 
RET

Seiteninformation und Impressum   
Formular für diese Seite betreffende Mitteilungen an den Herausgeber   
Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. slrprd, PbclevtugFgrsnaEnz