Compiler und Linker Flashcards

1
Q

Was ist ein Interpreter?

A

Ein externes Programm, welches zur Laufzeit den geschriebenen Programmcode interpretiert, Schritt für Schritt ausführt und nicht direkt in Maschinencode übersetzt. Beispiele dafür sind Python, PHP, JavaScript und Basic

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind die Vor und Nachteile eines Interpreters?

A

+Plattform-unabhängig (Hardware, Betriebssystem)
+Programmiersprachen weniger strikt und sehr flexibel
-Benötigt Installation eines Interpreter-Programms
-Langsame Ausführung, da Programm interpretiert werden muss
-Kein direkter Zugriff auf Hardware möglich
-Keine Code-Optimierung möglich

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist ein Compiler?

A

Ein Compiler übersetzt das Programm in Maschinencode, sodass es direkt ausgeführt werden kann. Beispiele dafür sind C oder Java

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was sind die Vor- und Nachteile eines Compiler?

A

+ Hocheffizienter, schneller, direkt ausführbarer Code
+ Direkte Nutzung von Hardware-Eigenheiten möglich
+ Code-Optimierung
– Programm nur auf gewählten Zielplattformen lauffähig

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was sind die einzelnen Phasen eines Compilers beim übersetzen?

A
Lexikalische Analyse
Syntaktische Analyse
Semantische Analyse
Zwischencodeerzeugung
Codeoptimierung (optional)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was passiert in der Lexikalischen Analyse?

A

-Zerlegung in Folge von Symbolen
(Namen, Literale, Schlüsselwörter, …)
-Überlesen bedeutungsloser Zeichen
- Lexikalische Korrektheit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was passiert in der Syntaktischen Analyse?

A

-Prüfung auf syntaktische Korrektheit
-Zerlegung der Symbolfolgen des 1. Schritts
in syntaktische Einheiten
(Deklarationen, Anweisungen, Ausdrücke, …)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was passiert in der Semantischen Analyse?

A

-Kontextabhängige Prüfung (z.B. sind
aufgerufene Funktionen definiert,
benutzte Variablen deklariert)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was passiert bei der Zwischencodeerzeugung?

A

Erzeugung der ersten Version des

Ausgabeprogramms

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Welche Compiler Typen gibt es?

A
Prä-Compiler
Cross-Compiler
Just-In-Time Compiler
Nachgeschalteter Assembler
Transpiler (source-to-source compiler)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was macht der Prä-Compiler?

A

eine Vorstufe zum eigentlichen Compiler, z.B. um andere
Quelltextdateien einzubinden, automatisches Ersetzen vor der Übersetzung
durchzuführen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was macht der Cross-Compiler?

A

Das ausgegebene Maschinensprachen-Programm ist für
eine andere Plattform bestimmt, als die Plattform, auf der entwickelt wird
(wird z.B. eingesetzt bei eingebetteten Systeme)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was macht der Just-In-Time Compiler?

A

Der Code wird erst während der Ausführung des

Programms übersetzt (z.B. integriert in einen Interpreter)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was macht der Nachgeschalteter Assembler?

A

Ist die Ausgabe des Compilers Assembler und

nicht Maschinensprache, so muss ein Assemblierer nachgeschaltet werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was macht der Transpiler?

A

Programm wird in andere

Programmiersprache übersetzt (z.B. TypeScript nach JavaScript).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was macht ein Linker?

A

Ein Linker vereinigt die durch den Compiler entstandenen einzelne Dateien zu einem ausführbaren Programm.