inst eecs berkeley edu cs61c Overview Lecture 18 Running a Program I Interpretation vs Translation CS61C Machine Structures aka Compiling Assembling Linking Loading CALL 2004 10 11 Translating C Programs Compiler Assembler Lecturer PSOE Dan Garcia www cs berkeley edu ddgarcia Finally Tivo for the radio Griffin Technologies released their new radioSHARK for 70 that allows you to pause live radio and timeshift your radio shows Easily download them easily to your iPod cool Linker next time Loader next time An Example next time griffintechnology com products radioshark CS 61C L18 Running a Program aka Compiling Assembling Loading Linking CALL I 1 Garcia Fall 2004 UCB Language Continuum Scheme Java bytecode C Garcia Fall 2004 UCB Interpretation vs Translation Java C CS 61C L18 Running a Program aka Compiling Assembling Loading Linking CALL I 2 Assembly machine language Interpreter Directly executes a program in the source language Easy to program Efficient Inefficient to interpret Difficult to program In general we interpret a high level language if efficiency is not critical or translated to a lower level language to improve performance CS 61C L18 Running a Program aka Compiling Assembling Loading Linking CALL I 3 How do we run a program written in a source language Garcia Fall 2004 UCB Interpretation Translator Converts a program from the source language to an equivalent program in another language For example consider a Scheme program foo scm CS 61C L18 Running a Program aka Compiling Assembling Loading Linking CALL I 4 Garcia Fall 2004 UCB Translation Scheme program foo scm Scheme program foo scm Scheme Compiler Executable mach lang pgm a out Scheme Interpreter Hardware Scheme Compiler is a translator from Scheme to machine language CS 61C L18 Running a Program aka Compiling Assembling Loading Linking CALL I 5 Garcia Fall 2004 UCB CS 61C L18 Running a Program aka Compiling Assembling Loading Linking CALL I 6 Garcia Fall 2004 UCB Interpretation Interpretation vs Translation Easier to write interpreter Any good reason to interpret machine language in software Interpreter closer to high level so gives better error messages e g SPIM SPIM useful for learning debugging Translator reaction add extra information to help debugging line numbers names Apple Macintosh conversion Switched from Motorola 680x0 instruction architecture to PowerPC Interpreter slower 10x but code is smaller 1 5X to 2X Could require all programs to be retranslated from high level language Instead let executables contain old and or new machine code interpret old code in software if necessary Interpreter provides instruction set independence run on any machine CS 61C L18 Running a Program aka Compiling Assembling Loading Linking CALL I 7 Apple switched to PowerPC Instead of retranslating all SW let executables contain old and or new machine code interpret old code in software if necessary Garcia Fall 2004 UCB Steps to Starting a Program C program foo c CS 61C L18 Running a Program aka Compiling Assembling Loading Linking CALL I 8 Garcia Fall 2004 UCB Compiler Input High Level Language Code e g C Java such as foo c Compiler Assembly program foo s Output Assembly Language Code e g foo s for MIPS Assembler Object mach lang module foo o Note Output may contain pseudoinstructions Linker Pseudoinstructions instructions that assembler understands but not in machine last lecture For example Loader mov s1 s2 or s1 s2 zero lib o Executable mach lang pgm a out Memory CS 61C L18 Running a Program aka Compiling Assembling Loading Linking CALL I 9 Garcia Fall 2004 UCB Upcoming Calendar Week Mon Garcia Fall 2004 UCB Administrivia Midterm in 1 week 2004 10 18 7 10pm in 1 Piminitel Covers labs hw proj lec up to Caches Last sem midterm answers on www Bring Thurs Lab Fri 7 Running Running This week Program I Program II Running Program Caches NO backpacks cells calculators pagers PDAs Caches Caches Caches 2 Pens we ll provide write in exam booklets Midterm grades out One handwritten both sides 8 5 x11 paper One green sheet corrections below to bugs from Core Instruction Set 8 Midterm week Wed CS 61C L18 Running a Program aka Compiling Assembling Loading Linking CALL I 10 Caches Midterm 7pm 1 Pimintel 1 Opcode wrong for Load Word It should say 23hex not 0 23hex 2 sll and srl should shift values in R rt not R rs i e sll srl R rd R rt shamt CS 61C L18 Running a Program aka Compiling Assembling Loading Linking CALL I 11 Garcia Fall 2004 UCB CS 61C L18 Running a Program aka Compiling Assembling Loading Linking CALL I 12 Garcia Fall 2004 UCB Administrivia Other stuff Where Are We Now C program foo c Bug in Friday s slides slide 19 WAS ori at zero lower 16 bits SHOULD BE ori at at lower 16 bits Grades in for Homework XX Proj YY You have one week to request official regrade from reader specify reason Reader will then regrade entire HW Proj grade may go down In exceptional cases can appeal to TA to intervene Compiler Assembly program foo s Assembler Object mach lang module foo o Linker Executable mach lang pgm a out If no appeal generated within a week grade frozen no way to change after that Regrade could still be pending tho CS 61C L18 Running a Program aka Compiling Assembling Loading Linking CALL I 13 Garcia Fall 2004 UCB Assembler lib o Loader Memory CS 61C L18 Running a Program aka Compiling Assembling Loading Linking CALL I 14 Garcia Fall 2004 UCB Assembler Directives p A 51 to A 53 Give directions to assembler but do not produce machine instructions Input Assembly Language Code e g foo s for MIPS Output Object Code information tables e g foo o for MIPS Reads and Uses Directives Replace Pseudoinstructions Produce Machine Language Creates Object File CS 61C L18 Running a Program aka Compiling Assembling Loading Linking CALL I 15 Garcia Fall 2004 UCB Pseudoinstruction Replacement text Subsequent items put in user text segment data Subsequent items put in user data segment globl sym declares sym global and can be referenced from other files asciiz str Store the string str in memory and null terminate it word w1 wn Store the n 32 bit quantities in successive memory words CS 61C L18 Running a Program aka Compiling Assembling Loading Linking CALL I 16 Garcia Fall 2004 UCB Producing Machine Language 1 2 Asm treats convenient variations of machine language instructions as if real instructions Pseudo Real subu sp sp 32 addiu sp sp 32 sd a0 32 sp sw a0 32 sp sw a1 36 sp mul t7 t6 t5 mul t6 t5 mflo t7 addu t0 t6 1 addiu t0 t6 1 ble t0 100 loop slti
View Full Document
Unlocking...