Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Language Levels and Translation See also: Blackboard >> Course Material >> Reader (Dictaat)

Similar presentations


Presentation on theme: "1 Language Levels and Translation See also: Blackboard >> Course Material >> Reader (Dictaat)"— Presentation transcript:

1 1 Language Levels and Translation http://www.pds.ewi.tudelft.nl/~iosup/Courses/2011_ti1400_11.ppt See also: Blackboard >> Course Material >> Reader (Dictaat) http://www.pds.ewi.tudelft.nl/vakken/in1705/cos2007.pdf

2 TU-Delft TI1400/11-PDS 2 IT Industry Competitiveness Source: The Economist, Benchmarking IT industry competitiveness 2009 http://portal.bsa.org/2009eiu/study/2009_eiu_global.pdfhttp://portal.bsa.org/2009eiu/study/2009_eiu_global.pdf

3 TU-Delft TI1400/11-PDS 3 The Netherlands: A Top IT Industry Source: The Economist, Benchmarking IT industry competitiveness 2009 http://portal.bsa.org/2009eiu /study/2009_eiu_global.pdf http://portal.bsa.org/2009eiu /study/2009_eiu_global.pdf

4 TU-Delft TI1400/11-PDS 4 But … Where’s the Human Capital? “A longer-term challenge for some European countries is encouraging more graduates to choose science-related subjects.” -NL is 27 th in HC Source: The Economist, Benchmarking IT industry competitiveness 2009 Q: Good/Bad news for you?

5 TU-Delft TI1400/11-PDS 5 The Simplest(?) Problem: How to Program Computers? So far -Design them from scratch -Assembly This lecture -Language levels -Translation -The compiler sequence

6 TU-Delft TI1400/11-PDS 6 Language levels A computer has several language levels: -machine language -assembler language (e.g., Intel/Pentium assembler) -higher-level language (e.g., Java) -application-specific language (e.g., MatLab) Close the gap between problem description and machine program

7 TU-Delft TI1400/11-PDS 7 Program transformations Need for program transformations Semantics of programs must remain the same Two ways of transformation: 1.compilation: first translate, then execute 2.interpretation: interleave translation and execution

8 TU-Delft TI1400/11-PDS 8 Type of translators Java machine instructions Java IA-32 assembler machine instructions Java IA-32 assembler machine instructions JVM compile to machine language interpret byte code compile to assembler compile assemble

9 TU-Delft TI1400/11-PDS 9 Types of interpreters program PC program inter- preter IPC PC program run-time system/ OS (I)PC PC many steps of PC for one step of IPC combination: interpret system calls

10 TU-Delft TI1400/11-PDS 10 Compilation versus Interpretation Advantages interpretation -Direct edit/execution cycle -Debugging on the level of interpreted language -Less memory requirements for programs Advantage compilation -Faster execution (factor of 50-100) -Semantic checks during compilation process

11 TU-Delft TI1400/11-PDS 11 Simulation versus Emulation Mimicking of hardware or software Through program: simulation Through hardware: emulation Example: -PowerPC simulation on Intel Pentium -Virtual machines such as KVM and VMware

12 TU-Delft TI1400/11-PDS 12 Programs and machines In exchanging programs and machines three notions are relevant: 1.Compatibility 2.Portability 3.Conversion

13 TU-Delft TI1400/11-PDS 13 Compatibility Compatibility: functionality of system is independent of implementation -machine versions with same instruction set Upward (FWD) compatibility: new version of system incorporates functionality of old system -Code compiled on old system will run on new system -CDs are FWD-compatible with DVD readers -(DVD readers are backwards-compatible with CDs)

14 TU-Delft TI1400/11-PDS 14 Portability (1) Portability is the ease of transferring a program to different machines and operating systems. Problems: -Different machine instructions -Different OS calls -Other compiler with deviating conventions

15 TU-Delft TI1400/11-PDS 15 Portability (3) Steps: -making readable on new system -adapt to new OS -recompile Performance characteristics can change

16 TU-Delft TI1400/11-PDS 16 Conversion Conversion is adaptation of applications to a different language or (operating) system -Faster code execution Conversion problems: -expressiveness of new language -different operating systems -different network environment -different machine precision

17 TU-Delft TI1400/11-PDS 17 Portability/Conversion Cost An example -Mid-size game studio has 25+ game titles -4 languages, 25 x 4 = 100 releases -100 platforms (mobiles etc.) -$1,000/release x 100 x 100 = $10,000,000 all Q: How would you address this situation?

18 TU-Delft TI1400/11-PDS 18 Outsourcing: The Dutch Market Story 0-49k 50-199k 200-499k 500k+ Outsourcing Web Java Ent. Mobile Services Embedded Stop 0-1yr 1-2yr 2+yr Source: European IT Outsourcing Intelligence Report 2011: The Netherlands http://www.itsourcing-europe.com/uploads/Dutch_ITO_Intelligence_Report_2011.pdf http://www.itsourcing-europe.com/uploads/Dutch_ITO_Intelligence_Report_2011.pdf Q: Good/Bad news for you?

19 TU-Delft TI1400/11-PDS 19 Levels of abstraction Language level Machine-program level Microprogram level Assembler level Digital logic level Operating System....... interpret translate

20 TU-Delft TI1400/11-PDS 20 Virtual machines (1) Virtual machine M n with machine language L n Virtual machine M 3 with machine language L 3 Virtual machine M 2 with machine language L 2 Real machine M 1 with machine language L 1

21 TU-Delft TI1400/11-PDS 21 Virtual machines (2) A language defines a virtual machine The machines M 2,...,M n are virtual Machine M 1 is real At M i we need an interpreter or a compiler to translate programs written in L i+1 to L i Hardware and software are equivalent

22 TU-Delft TI1400/11-PDS 22 Compiler structure Source program Lexicographical analysis Syntactic analysis Semantic analysis Intermediate-code generation Code optimization Code generation Target program

23 TU-Delft TI1400/11-PDS 23 Lexicographical analysis (1) Goal: reading program text and group characters into tokens intSUM = 0; int SUM=0; intSUM = 0; 10 characters 5 tokens

24 TU-Delft TI1400/11-PDS 24 Lexicographical analysis (2) Tokens are classified: Keywords (for, if,....) Identifiers (SUM,...) Constants (0, 3.14, “char”) Delimiters ({,;) Operators (+, =,...)

25 TU-Delft TI1400/11-PDS 25 Lexicographical analysis (3) Identifiers and constants are stored in the symbol table: entrynamekindtypevalue.......... 100SUMidentint............ 200PIconstreal3.1415

26 TU-Delft TI1400/11-PDS 26 Syntactic analysis Check of correctness of program with respect to the grammar of the language Also called parsing Building of so called parse tree total = 3 + (2*5) = + * 52 3 total

27 TU-Delft TI1400/11-PDS 27 Semantic analysis Static semantics -(part of) type checking -illegal statements Dynamic semantics -done at run-time -remainder of type checking -operator exceptions (e.g., division by 0)

28 TU-Delft TI1400/11-PDS 28 Intermediate code (1) Reasons for intermediate code level: 1.simplify compilation process 2.reuse parts of compiler for different architectures In intermediate code: -a single operation at a time -test on only one condition at a time -while loops replaced by test and branch instructions, and labels

29 TU-Delft TI1400/11-PDS 29 Intermediate code (2): Example while ( (a>b) && (a <= c+d) ) a = a*b; translated into: L1:if (a>b) goto L2 goto L3 L2:h1 = c+d if (a <= h1) goto L4 goto L3 L4:a = a*b goto L1 L3:

30 TU-Delft TI1400/11-PDS 30 Code generation (1) MOVEAX, (0) MOV, EAX MOVEAX, 3 ADDEAX, MOVEAX, 2 MOV EBX, 5 IMULEAX, EBX = 3 + 2*5 = “total”

31 TU-Delft TI1400/11-PDS 31 Code generation (2) MOVEAX, 2 load 2 in EAX MOVEBX, 5 load 5 in EBX IMULEAX,EBXmultiply PUSHEAXpush result on stack MOVEAX, 3 load 3 in EAX POPEBXpop from stack ADDEAX,EBXaddition PUSHEAXpush result on stack POPEAXpop from stack MOVtotal(0),EAXdo final assignment communication via stack

32 TU-Delft TI1400/11-PDS 32 Code optimization MOVEAX, 2load 2 in EAX MOV EBX, 5load 5 in EBX IMULEAX,EBXmultiply MOVEBX, 3load 3 in EBX ADDEAX, EBXaddition STWtotal(0), EAXdo final assignment omit communication via stack


Download ppt "1 Language Levels and Translation See also: Blackboard >> Course Material >> Reader (Dictaat)"

Similar presentations


Ads by Google