Examiners: Time: 3 hours Prof P.D. Terry Marks: 180 Prof E.H. Blake Venue: Braae Laboratory
A copy of this document is available on the course web page. That copy will contain any past minute alterations to seating plans, so make sure you study it closer to the time.
The question will be revealed in its entirety at 08h00 on the day (provisionally Sunday 11 November) before the examination. No details will be given until then, but it is safe to assume that it will be a question that you could answer in a laboratory situation, similar in complexity and content to exercises you have done this year
You might like to have a look at the old examinations on the Web Pages to see the sort of standard expected - but remember that old exam papers are "context sensitive" as they apply to a particular course at a particular time that covered material in slightly different ways to the course done this year. These problems were all designed so that everyone should have been able to do at least the basic solutions, with scope given for top students to demonstrate their understanding of the subtler points of parsing, scanning and compiling. Each year I have been astounded at the quality of some of the solutions received, and I trust that this year will be no exception!
Please note that there will be no obligation to produce a machine-readable solution in the examination (in fact doing so is quite a risky thing, if things go wrong for you, or if you cannot type quickly!). The tools will be provided before the examination so that you can try out your ideas, and if you feel bold, then reproduce a complete working solution with all misteaks eliminated during the examination.
Please take note of the following summary of those sections of the textbook that are examinable:
Chapter 1 - All Chapter 2 - All Chapter 3 - All Chapter 4 - All except 4.3 Chapter 5 - All except 5.10 and 5.11 Chapter 6 - Not examinable Chapter 7 - Not examinable Chapter 8 - All Chapter 9 - All Chapter 10 - All except 10.6 Chapter 11 - All except 11.5 Chapter 12 - All, but this chapter will be available as "free information" Chapter 13 - Not examinable (we have done other case studies instead) Chapter 14 - All except 14.8 Since we concentrated on Coco/R generated systems, sub- sections 14.2.1, 14.4.1, 14.5.1. 14.6.1 which refer to hand-crafted compilers, are effectively irrelevant. Chapter 15 - All except 15.3 Chapter 16 - Not examinable in detail, but you should understand the broad outlines of using stack frames and allocating memory for multi-function programmes. Chapter 17 - Not examinable Chapter 18 - Not examinable
There are many terms that you should make sure you understand and can define accurately, such as:
Abstract syntax tree (AST) One and a half address code Alphabet Optimization Ambiguity Orthogonality Analytic phase Overflow Attribute Phrase structure Back end Portability Backpatching Postfix notation Backtracking Pragma BNF Precedence Character handler Produces directly Chomsky hierarchy Productions Closure Program counter Cocol Pseudo-code Code generation Range checks Compile-time Regular expression Constraint analysis Regular grammar Context condition Reverse Polish Cycle-free grammar Run-time Dangling else Scanner Decompiler Scope Decorated tree Self-embedding Defining occurrence Semantic action Dereferencing Semantic attributes Deterministic finite automaton (DFA) Semantic driven parser Dynamic semantics Semantic error detection EBNF Semantic overtones Emulator Semantics Environment Sentence Fetch-execute cycle Sentential form Finite state automata (FSA) Source handling FIRST function and sets Source language FOLLOW function and sets Stack frame Frame file Stack pointer Front end Start symbol Goal symbol State diagram Grammar State variable High-level translator Static semantics Host language Symbol Instruction set Symbol table Intermediate code Syntactic class Interpreter Syntax Keywords Syntax directed translation Kleene closure Systems program Language T-diagram Lexeme Table-driven algorithm Lexical analyser Target language Lexicon Terminal start sets LL(1) conflict resolution Terminal successors LL(1) restrictions Three-address code LL(k) parsing Token Macro assembly Top-down parsing Native code Two-address code Non-terminal Type checking Null production Vocabulary Nullable Weak separator Object language Weak terminal One-address code Zero address instruction
This list has tried to accommodate the requests made by people who attended the lecture where you were asked to indicate a preference.
If you wish to change, you will have to find someone who is prepared to make an exchange with you, as the seating in the lab is very tight. Please advise of changes as soon as possible. No changes will be allowed after the day before tha examination at 10h00.
The morning session will run from 08h30 until 11h30. Candidates must be in the Struben Building from 08h15, and will not be allowed to leave before 11h30.
The afternoon session will run 12h00 until 15h00. Candidates must gather in the Hamilton Building by 11h15, as we have to make sure that there is no collaboration between sessions.
afternoon 699A0124 Abrey, DM | morning 698M1813 Matlock, JA afternoon 697A1002 Adar, AO | morning 698M1871 Miya, SC morning 699A0269 Alli, S | morning 697M6120 Mkuzangwe, NNP morning 699A0928 Amtha, P | morning 699M2744 Moeca, WT afternoon 699A0564 Anderson, ML | morning 699M0761 Morkel, C afternoon 699A1450 Armstrong, MEG | morning 699M0158 Mpofu, AC morning 698A1083 Asafo-Adjei, T | afternoon 699N3374 Nadasen, KG morning 69750204 Bhe, U | afternoon 698N3985 Naidoo, D morning 697B3411 Brown, DE | morning 699N0776 Naidoo, O afternoon 699C1815 Cave, ML | afternoon 699N0640 Naidoo, P morning 699D2774 Dada, A | afternoon 699N0225 Nel, LG morning 699E1291 Everett, KA | afternoon 699N0587 Nyamadzawo, F morning 699K1690 Eyambe, LK | morning 699O2038 Okai-Tettey, HA morning 699F0023 Ferguson, BA | afternoon 698P3127 Parbhoo, NH afternoon 698F4230 Futshane, Z | afternoon 699P1968 Parbhu, P afternoon 699G1912 Gaul, T | morning 699P1628 Pare, JR morning 699G0578 Goodenough, TW | morning 699P3117 Proske, H morning 699H3447 Haig, D | afternoon 699R2070 Rampertab, M afternoon 699H1589 Hatting, CA | afternoon 698R1293 Rana, B morning 698H1625 Hone, GJ | morning 698R3067 Renwick, MR morning 699J1570 Jogee, ZS | morning 699R0191 Rudraraju, U afternoon 698J4312 Jones, EB | morning 699S2055 Seedat, RG morning 699K2455 Keildson, J | afternoon 699S2711 Shepherd, J morning 699K0958 Kieser, SJ | morning 699S1482 Sigsworth, R morning 699K3906 Krijger, HGL | afternoon 600S1452 Smit, NK afternoon 697K5261 Ku, YJ | morning 699S0115 Sterne, PJ afternoon 698L3455 Leong Son, JMJ | afternoon 600T4417 Thomas, JJ afternoon 699M1325 Mabvudza, FTL | afternoon 699U1402 Ubogu, CO afternoon 699M1260 Machimana, TD | afternoon 699V1803 Van Berkel, GG afternoon 699M0302 Mackie, DS | afternoon 699V0697 Vanda, NM afternoon 69731436 Mahluza, NLN | afternoon 699W0746 Wasswa, PJK afternoon 698M6232 Manners, PJ | afternoon 699Y1212 Yazdani, N morning 699M0189 Manyindo, SN | morning 699Y1855 Yong, RAH morning 699M1972 Mathebula, DW |