Little language processing, an alternative to courses on compiler construction

An ternative to the traditional compiler construction course is described, which cover s that part of language and automata theory applicable to command language processing. The aim of the course is to teach the techniques of rational design and implementation o f languages of the level of complexity that might be used for interactive application s programs, or as command languages for applications and systems software. However th e content is such that it may also serve as a preparation for an aavanced course in compile r construction, which would thus be free to concentrate on the real issues of compile r implementation. Histor y The ;d ueensland Institute of Technology has offered a computer science major since 1973. The curriculum was based firmly on ACM's Curriculum 68 [1]. Early version of the progra m listed the elective course " Compiler Construction", but in fact the elective was neve r offerea and was later withdrawn and replaced by a compulsory course "Pr.oject Work". Among the reasons for non-offer of this course was the observation that given the ver y small proportion of students who forgo the rewards of immediate employment to proceed t o graduate studies, the incorporation of subjects of practical impact was a higher priority. This argument has a certain universality at the present time, particularly for thos e smaller colleges which cannot offer a broad range of elective courses. It seems that par t of the problem with compiler construction courses, or the roughly equivalent CS 15 "Theor y of Programming Languages" course in curriculum 78 [2], is the difficulty of dealing wit h anything but the theory of compiler construction even in a senior level course. Indee d Curriculum 7a specifically advises against the attempt to incorporate programming project s (read "practical aspects") into this course. Unfortunately the absence of such a course may deprive the student of the opportunity t o come to grips with the theory and practice of language processing. This is a sever e loss, since language processing is deeply involved in many applications other tha n compiler construction. The design of editors, document processors, pre-processors an d indeed all interactive programs involves aspects of language processing with which th e well prepared graduate should be familiar. It was with these ideas in mind that a "Special Topics" course in language processing wa s planned, and offered for the first time during …