Clemson University -- CPSC 231 -- Fall 2007 -- Study Guide for Exam 4 Covers remainder of chapter 9 (sections 8-10). 1. Be able to define and discuss these terms: bottom-up testing top-down testing test driver stub separate assembly external references makefile assembler linker loader static linking dynamic linking shared libraries object module executable binary load module memory image symbol table interpretation compilation forward reference command interpreter ABI caller-save callee-save 2. Be able to give the advantages of separate compilation/assembly. 3. Be able to explain why a linker might have a two-pass structure. 4. Be able to explain how a linker uses a symbol table. Distinguish between globally-defined ("PUBLIC" in MASM) and use-of-global symbol ("EXTERN"). 5. Be able to give the advantages for static linking and the advantages for dynamic linking. 6. Be able to draw the compilation model and identify at least four of the six translators we have discussed and also give the types/names of files/ memory contents that each produces. 7. Given a C program and the generated assembly output of a compiler, be able to match assembly language statements to the C statement that they implement. 8. Identify at least five components of an ABI specification.