@make[report] @device[x2700] @majorheading[compiler construction] @heading[Peter Stephens] @section[Description] The aim of this course is to confront the problems encountered in producing a production quality compiler; it also introduces students to the quite different problems of programming in a team. Students, working in groups of 3 or 4, are expected to produce an ALGOL 60 compiler on the EMAS Amdahl Service. Groups will be provided with a syntax, run time support package, an object file generation suite and 120 test programs. They will also receive a brief guided tour of the compiler debugging aids on EMAS. They will have to grapple with the "excruciating problems" of stack control and parameter passing in ALGOL. @section[Organisation] The course will consist of 12 lecturers interspersed with 6 tutorials all given by Peter Stephens. There will also be weekly brainstorming sessions at 8.30 a.m. for the benefit of groups with problems. Subjects covered will include - @begin[itemize] The EMAS compiler environment and standards. The problems of ALGOL 60. The 360 architecture and how to overcome its many serious shortcomings. Lexical scanning & parsing (revision). Stack control and addressing. Intermediate Language and code generation. Call by substitution. Run time diagnostics Optimisation (for interest only). @end[itemize] Practical work consists of compiler writing in IMP. @section[Pre Requisites] Candidates will be assumed to have attended (and completely mastered!) the CS2 compiler course, to be able to use EMAS and program in IMP80. Students are advised to prepare for the course by scrutinising minutely the ALGOL report and reading the IBM 316 Principles of Operation. @section[Assessment] This is a practical course and groups will be assessed on the compiler produced. Each group will make a 10 minute presentation in the last week of the Easter term. Early in the summer term each group will hand in compiler listing - proof of performance of 6 test programs and short (individual) write ups. The assessor will submit further unseen tests to the compilers as part of the assessment process. There are no examination questions associated with this course. @section[Restriction] Because of the amount of supervision required the course will be restricted to 5 broups i.e., 15-20 persons. @section[Health Warning] This is an energetic course; the lazy and uncommitted might prefer to select other options!