1. Describe the relationships between application development methodologies, models, and tools. 2. Compare and contrast the various generations of programming languages. 3. What is instruction explosion? What types of programming languages have the most instruction explosion? What types of programming languages have the least instruction explosion? 4. What are the differences between source code, object code, and executable code? 5. Compare and contrast assemblers, compilers, and interpreters. 6. What does a compiler do when it encounters data declarations in a source code file? Data (manipulation) operations? Control structures? 7. Compare execution of compiled programs with interpreted programs in terms of CPU and memory utilization. 8. What is a link editor? What is a compiler library? How and why are they useful in program development? 9. What types of programming language statements are likely to be translated into machine instructions by a compiler? What types are likely to be translated into library calls? 10. Compare error detection and correction facilities of interpreters and compilers. 11. Compare static and dynamic linking. 12. With respect to the requirements of modern applications, what are the shortcomings of 3GLs? 13. What are the primary differences between object-oriented programming languages and more traditional programming languages? 14. What components are normally part of an IDE? In what ways does an IDE improve programmer productivity? 15. What is a CASE tool? What is the relationship between a CASE tool and a system development methodology? 16. What is the difference between a front-end CASE tool and a back-end CASE tool?