RHODES UNIVERSITY


November Examinations - 2001


Computer Science 301 - Programming Language Translation

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.


Rules and information


Section B - Seen question [85 / 180]

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.


Examinable material at the end of the year

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


Definitions and Terminology

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


Provisional examination allocations - Monday 12 November 2001

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    |                      


Home  © P.D. Terry