Reading Guide for Programming Languages --------------------------------------- This is to give some idea of the material which I think you should be familiar with on December 15th. I think after all I will decide to make this an open book exam. That way you know there will not be straight simple memory type questions on the exam. I am not giving any specific schedule of reading, you know best how to arrange your schedule. Also you know what parts are familiar to you and what you need to read up on. Pratt and Zelkowitz (required) ------------------------------ chapter 1 all chapter 2 all skip chapter 3 (this will be covered in compiler course) chapter 4 all chapter 5 5.1 5.2 5.3 (skip 5.4) chapter 6 6.1 6.4 (skip 6.2 6.3) chapter 7 all chapter 8 all chapter 9 9.2 only chapter 10 10.2 (should be familiar already) chapter 11 all chapter 12 12.1 (should be familiar by now!) 12.2 (this is only a survey, more needed!) chapter 13 13.1 (but really the Scheme report covers this) 13.2 and 14.1 are also very valuable, but not specifically required Stansifer (Optional) -------------------- chapter 1 all chapter 2 2.2 only chapter 3 all chapter 4 all chapter 5 all Sethi (Optional) ---------------- chapter 1 (all) chapter 3 (all) chapter 4 (all) chapter 5 (all) chapter 6 (all) chapter 7 (all) chapter 12 (all) chapter 15 (all) Barnes (Optional) ----------------- You clearly need to study source material for Ada, definitely do NOT expect that the examples handed out in class and the discussion in class is enough. Reading Barnes is an excellent way to learn all of Ada. If you have studied the Feldman book, this is not quite as comprehensive, but if you know all the material in Feldman, that's fine. In particular Feldman emphasizes the notion of package abstractions, so assignment 1 should be comfortable from following this approach. Other approaches are certainly possible. There are other Ada books, and there is a wealth of material on line (the site at www.adapower.com is a good starting point as I have mentioned in class a few times). In particular there are some very helpful online tutorials. Gosling, Joy, Steele (Optional) ------------------------------- Simiularly, you need to study source material on Java. The Gosling book is an excellent one I think, but there are many others. In Gosling, I would read the first 11 chapters. chapters 12,13 are about execution environments chapters 14 and 15 are certainly important, as is chapter 16. You should read and understand chapter 17, and indeed read this chapter carefully in detail if you decide to do assignment 2 in Java. You can skip chapter 18 and 19 I would say. As for chapters 20-22 (350 pages out of an 800 page book, these cover the standard library. No need to try to read these pages systematically, just read through the index pages at the start and get a feel for what is covered, then you can go look up anything specific you need to use. Stroustrup (Optional) --------------------- This is by far the best book on C++, not surprising, since it was written by the designer of C++, and he happens to be an excellent writer as well. For sure read chapters 1,2,3 (the notes and the tour). If you are unfamiliar with C++, then you need to read most of the material through chapter 15. If you know C++ well, then at least pick up the sections on features you don't know well, in particular chapter 8 (namespaces and exceptions -- remember that no one had used namespaces in the class). As in the Java case, chapters 16 on are the standard library, and take up nearly half the book. I would look at least at chapters 16,17, and 19, but you definitely are not expected to remember all this material! Scheme Report (Required) ------------------------ This will be available on our home page shortly. It is immediately available on the home page of the honors section (Goldberg). It is amazingly short compared to the tomes on Ada, Java, and C++, and is only some 35 pages long. You should become familiar with this entire document (and thus aspire to know 100% of scheme, something that is close to impossible for the other languages).