010 introduction
Post on 31-Oct-2015
20 Views
Preview:
DESCRIPTION
TRANSCRIPT
-
. 2011-2012
-
3 ( )
70% . 4-5 . Java. .
, 14-16 .
2/22
-
Alfred V. Aho, Monica S. Lam, Ravi Sethi and Jeffrey D. Ullman.Compilers: Principles, Techniques, and Tools. 2nd edition.Addison-Wesley, 2007. http://dragonbook.stanford.edu/ ., .. , . , . . : . 2004.http://delab.csd.auth.gr/~katsaros/CompilersBook.htm
3/22
-
Andrew W. Appel, Modern Compiler Implementation in Java. CambridgeUniversity Press, 1998.http://www.cs.princeton.edu/~appel/modernAndrew W. Appel, Modern Compiler Implementation in C. CambridgeUniversity Press, 1998.http://www.cs.princeton.edu/~appel/modernSteven S. Muchnick, Compiler Design and Implementation, MorganKaufmann Publishers, 1997.Allen I. Hollub, Compiler Design in C, Prentice Hall, 1990.
4/22
-
.
sourceprogram compiler
targetprogram
errormessages
.
5/22
-
C/C++JavaPythonRubyScala: : :
-
.
6/22
-
1950 . Fortran 18 - .
.
, .
7/22
-
binary translation: hardware synthesis: , . VHDL (Very high-speed integrated circuitHardware Description Language)Databases: Structured Query Language (SQL)
8/22
-
-
1 .
2 .
9/22
-
, .
lexical analyzer
source program
target program
syntax analyzer
semantic analyzer
intermediate codegenerator
code optimizer
code generator
error handlersymbol-tablemanager
10/22
-
3 .
lexical analyzer
source program
target program
syntax analyzer
semantic analyzer
intermediate codegenerator
code optimizer
code generator
error handlersymbol-tablemanager
10/22
-
3 .
lexical analyzer
source program
target program
syntax analyzer
semantic analyzer
intermediate codegenerator
code optimizer
code generator
error handlersymbol-tablemanager
10/22
-
, (identifiers) , ...
lexical analyzer
source program
target program
syntax analyzer
semantic analyzer
intermediate codegenerator
code optimizer
code generator
error handlersymbol-tablemanager
10/22
-
.
lexical analyzer
source program
target program
syntax analyzer
semantic analyzer
intermediate codegenerator
code optimizer
code generator
error handlersymbol-tablemanager
10/22
-
position := initial + rate * 60
lexical analyzer
id1 := id2 + id3 * 60
11/22
-
syntax analyzer
id1 := id2 + id3 * 60
id1
:=
+
id2 *
id3 60
11/22
-
semantic analyzer
id1
:=
+
id2 *
id3
60
id1
:=
+
id2 *
id3 60
inttoreal
11/22
-
intermediate code generator
id1
:=
+
id2 *
id3
60
inttoreal
temp1 := inttoreal(60)temp2 := id3 * temp1temp3 := id2 + temp2id1 := temp3
11/22
-
code optimizer
temp1 := inttoreal(60)temp2 := id3 * temp1temp3 := id2 + temp2id1 := temp3
temp1 := id3 * 60.0id1 := id2 + temp1
11/22
-
code generator
temp1 := id3 * 60.0id1 := id2 + temp1
MOVF id3, R2MULF #60.0, R2MOVF id2, R1ADDF R2, R1MOVF R1, id1
11/22
-
, , .
. (preprocessor)
12/22
-
library,relocatableobject files
loader/link-editor
assembler
relocatable machine code
compiler
target assembly program
preprocessor
source program
skeletal source program
absolute machine code
13/22
-
.
:1 Macro processing. .
2 File inclusion. .
preprocessor. C++ templates preprocessor.
14/22
-
Assembler
assembly assembler .
(relocatable) (loader/link-editor).
15/22
-
Assembly Code
assembly ( opcodes) .
.MOV a , R1ADD #2 , R1MOV R1 , b
b = a + 2;
16/22
-
Two-Pass Assembly
assembler .
1 .
2 .
.
L .
17/22
-
Assembly
:http://www.faqs.org/docs/Linux-HOWTO/Assembly-HOWTO.htmlhttp://asm.sourceforge.net/http://sources.redhat.com/binutils/http://www.nasm.us/
18/22
-
Loader/Linker
.
.
19/22
-
Front-end & Back-end , .
back-end.
20/22
-
. .
, .
21/22
-
.
.
22/22
top related