1 / 32

Language Levels and Translation

Language Levels and Translation. http://www.pds.ewi.tudelft.nl/~iosup/Courses/2012_ti1400_Reader.ppt. See also: Blackboard >> Course Material >> Reader (Dictaat) http://www.pds.ewi.tudelft.nl/vakken/in1705/cos2007.pdf. IT Industry Competitiveness. Q: Good/Bad news for you ?.

gage-macias
Télécharger la présentation

Language Levels and Translation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. IT Industry Competitiveness Q: Good/Bad news for you? NL only Top-20, see 2011 index Source: The Economist, Benchmarking IT industry competitiveness 2009 http://portal.bsa.org/2009eiu/study/2009_eiu_global.pdf

  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

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

  5. The Simplest(?) Problem: How to Program Computers? • So far • Design them from scratch • Assembly • This lecture • Language levels • Translation • The compiler sequence

  6. Language levels • A computer has severallanguage 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. Program transformations • Need for program transformations • Semanticsof programsmust remain the same • Two ways of transformation: • compilation: first translate, then execute • interpretation: interleave translation and execution

  8. Type of translators Java Java Java interpret byte code compile to assembler compile to machine language JVM compile IA-32 assembler IA-32 assembler assemble assemble machine instructions machine instructions machine instructions

  9. Types of interpreters Combination: interpret system calls HW Interpreter SW Interpreter HW/SW Interpreter (I)PC IPC program program PC program PC PC inter- preter run-time system/ OS Q: How can you create a SW interpreter? many steps of PC for one step of IPC

  10. Compilation vs. Interpretation vs. Just-in-Time Compilation Q: Example when interpretation is better than compilation? Vice-versa? • Advantages interpretation • Direct edit/execute cycle (5-10x) • Debugging on the level of interpreted language • Less memory requirements for programs • Advantage compilation • Faster execution (50-100x) • Semantic checks during compilation process

  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 Q: How can you create an NVIDIA Tesla simulator?

  12. Programs and machines In exchanging programs and machines three notionsare relevant: • Compatibility • Portability • Conversion

  13. Compatibility Compatibilityis functional independence of implem. • machine versions with same instruction set • Downward (BWD):new sys accepts input generated for/incorporates functionality of old sys • Code compiled on old system will run on new system • DVD readers are backwards-compatible with CDs • Upward (FWD) compatibility: • Code compiled on new system will run on old system • CDs are FWD-compatible with DVD readers

  14. Portability (1) Portabilityis 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. Portability (3) • Steps: • making readable on new system • adapt to new OS • recompile • Performancecharacteristics can change

  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. 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. 0-49k 50-199k 200-499k Outsourcing 500k+ Web 2+yr Java Ent. 1-2yr Stop Mobile 0-1yr Services Embedded Outsourcing: The Dutch Market Story Q: Good/Bad news for you? Source: European IT Outsourcing Intelligence Report 2011: The Netherlandshttp://www.itsourcing-europe.com/uploads/Dutch_ITO_Intelligence_Report_2011.pdf

  19. Levels of abstraction ....... Language level Assembler level Operating System translate Machine-program level Microprogram level interpret Digital logic level

  20. Virtual machines (1) Virtual machine Mn with machine language Ln Virtual machine M3 with machine language L3 Virtual machine M2 with machine language L2 Real machine M1 with machine language L1

  21. Virtual machines (2) • A language defines a virtual machine • The machines M2,...,Mnare virtual • Machine M1is real • At Mi we need an interpreter or a compiler to translate programs written in Li+1to Li • Hardware and software are equivalent

  22. Compiler structure Source program Intermediate-code generation Lexicographical analysis Syntactic analysis Code optimization Semantic analysis Code generation Target program

  23. Lexicographical analysis (1) Goal: reading program text and group characters into tokens int SUM = 0; 10 characters i n t S U M = 0 ; 5 tokens = int SUM 0 ;

  24. Lexicographical analysis (2) Tokens are classified: • Keywords (for, if,....) • Identifiers (SUM, ...) • Constants (0, 3.14, “char”) • Delimiters ({,;) • Operators (+, =, ...)

  25. Lexicographical analysis (3) • Identifiers and constants are stored in the symbol table: entry name kind type value .. .. .. .. .. 100 SUM ident int .. .. .. .. .. .. 200 PI const real 3.1415

  26. Syntactic analysis • Check of correctnessof program with respect to the grammar of the language • Also called parsing • Building of so called parse tree = total + 3 * total = 3 + (2*5) 2 5

  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 by0)

  28. Intermediate code (1) • Reasons for intermediate code level: • simplify compilation process • 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. 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 gotoL1 L3:

  30. Code generation (1) MOV EAX, <RHS >(0) MOV <LHS >, EAX <LHS>= “total” = MOV EAX, 3 ADD EAX, <2*5 > 3 + <2*5> MOV EAX, 2 MOV EBX, 5 IMUL EAX, EBX 2*5

  31. Code generation (2) communication via stack MOV EAX, 2 load 2 in EAX MOV EBX, 5 load 5 in EBX IMUL EAX,EBX multiply PUSH EAX push result on stack MOV EAX, 3 load 3 in EAX POP EBX pop from stack ADD EAX,EBX addition PUSH EAX push result on stack POP EAX pop from stack MOV total(0),EAX do final assignment

  32. Code optimization omit communication via stack MOV EAX, 2 load 2 in EAX MOV EBX, 5 load 5 in EBX IMUL EAX,EBX multiply MOV EBX, 3 load 3 in EBX ADD EAX, EBX addition STW total(0), EAX do final assignment

More Related