Computer Science 301 - Programming Language Translation
Examiners: Time: 3 hours Prof P.D. Terry Marks: 180 Prof D. Kourie Venue: Braae Laboratory
The question will be revealed in its entirety at 08h00 on the day (Sunday 5 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.
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 may not be the same as 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 on you!). 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:
Abstract syntax tree (AST) Alphabet Ambiguity Analytic phase Attribute Back end Backpatching Backtracking BNF Character handler Chomsky hierarchy Closure Cocol Code generation Compile-time Constraint analysis Context condition Cycle-free grammar Dangling else Decompiler Decorated tree Defining occurrence Dereferencing Deterministic finite automaton (DFA) Dynamic semantics EBNF Emulator Environment Fetch-execute cycle Finite state automata (FSA) FIRST function and sets FOLLOW function and sets Frame file Front end Goal symbol Grammar High-level translator Host language Instruction set Intermediate code Interpreter Keywords Kleene closure Language Lexeme Lexical analyser Lexicon LL(1) conflict resolution LL(1) restrictions LL(k) parsing Macro assembly Native code Non-terminal Null production Nullable Object language One-address code One and a half address code Optimization Orthogonality Overflow Phrase structure Portability Postfix notation Pragma Precedence Produces directly Productions Program counter Pseudo-code Range checks Regular expression Regular grammar Reverse Polish Run-time Scanner Scope Self-embedding Semantic action Semantic attributes Semantic driven parser Semantic error detection Semantic overtones Semantics Sentence Sentential form Source handling Source language Stack frame Stack pointer Start symbol State diagram State variable Static semantics Symbol Symbol table Syntactic class Syntax Syntax directed translation Systems program T-diagram Table-driven algorithm Target language Terminal start sets Terminal successors Three-address code Token Top-down parsing Two-address code Type checking Vocabulary Weak separator Weak terminal Zero address instruction
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 be in the Struben Building from 11h15, as we have to make sure that there is no collaboration between sessions.
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 Sunday Morning at 10h00.
Morning 698C6270 Carter, LS Morning 69610159 Ndlangisa, M Afternoon 69730904 Chari, DP Afternoon 69730217 Ngoasheng, KJ Morning 698D3523 Daya, PJ Morning 698N4624 Noudehou, FSM Morning 698D3070 Dickson, BJ Afternoon 698O6331 Ocker, DHC Afternoon 698E1944 Emmenes, Q Morning 698P1200 Palmer, MN Afternoon 69610658 Erfani-Ghadimi, N Morning 698P1836 Parry, DC Afternoon 698H1711 Hartley, CG Afternoon 69750001 Patel, AS Afternoon 698H3690 Hitchcock, JD Morning 698P1642 Paterson, AI Afternoon 695H7571 Holose, MM Afternoon 69760003 Price, RE Afternoon 69730230 Howis, S Afternoon 698R3067 Renwick, MR Afternoon 698J6219 Jacot-Guillarmod, PF Afternoon 698R6473 Ridderhof, MJ Afternoon 698J6035 Johnson, RD Afternoon 698R1724 Riordan, DD Afternoon 698J4312 Jones, EB Morning 697R6228 Roberts, AW Morning 697K5335 Kao, MN Morning 698R1477 Roberts, K Morning 698K4561 Kavuma, I Afternoon 698S6239 Stavrakis, EA Afternoon 698K6080 Kulesza, K Morning 698S1317 Stevens, BR Morning 69730402 Lalloo, A Afternoon 697S5130 Swales, D Morning 69610870 Louw, JA Morning 698T1375 Tankard, GM Morning 698M3440 Madhoo, V Morning 698T3747 Traas, GRL Afternoon 69730153 Makaya, V Morning 698T4414 Tsegaye, MA Morning 698M2452 Marx, IB Afternoon 69640121 Twala, MEN Morning 69610537 Masekoameng, RP Afternoon 698U6039 Urban, PA Morning 69731187 Mfenguza, N Morning 69610531 Walwyn, GA Afternoon 69731732 Miler, V Afternoon 698W1548 Wells, TJ Morning 698M1394 Motsoeneng, TP Morning 698W4075 Wright, LA Afternoon 698M3016 Mutagahywa, RN Afternoon 693W5688 Wright, MK Morning 698N1103 Naude, R Morning 698Y2081 Yates, SC