Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!samsung!uunet!motcid!murphyn From: murphyn@cell.mot.COM (Neal P. Murphy) Newsgroups: comp.software-eng Subject: Re: Theory vs. Practice in CS Education Summary: Richard is merely flaming out Message-ID: <419@cherry5.UUCP> Date: 20 Nov 89 15:08:26 GMT References: <4967@ae.sei.cmu.edu> <1989Nov17.090716.11068@cs.eur.nl> <4994@ae.sei.cmu.edu> Organization: Motorola Inc. - Cellular Infrastructure Div., Arlington Heights, IL 60004 Lines: 40 From two of the references, Richard writes, >>What good are compiler courses? Well, when writing code I want to run > >Nonsense -- this has nothing to do with software engineering, the original >topic. At the engineering level, you don't care what the compiler is doing >with the code anymore than an architect cares how electricity flows through >wires. and Reino writes, > >-Although a compiler course is relevant to software engineers, if only to >-understand more about designing languages and their implementation. >-Didn't someone once say: >- each program is in fact an interpreter for a language (where the >- language defines all legal input to the program, and the semantics >- of the various inputs) >-If noone ever said it, how about your comments ? > >I'm sorry -- If this is directed to me, I am unable to answer you as I do >not understand the point you are trying to make. First, Reino eloquently stated that every program written is a compiler, and knowledge of compilers will enable one to write better programs. Second, I must point out that an architect really couldn't tell you if his design is constructable. It remains the responsibility of the civil engineer to ensure that a building built to look like that which the architect envisioned will not collapse or be blown over in a strong wind. I do agree with Rich, an architect doesn't care how electricity flows through wires. He probably couldn't tell you how even if he wanted to. However, at the software engineering level, one should care very much what the compiler is doing. For example, I know of a compiler that generates a 32-bit address offset for an instruction that only uses a 16-bit address offset. One would care very much when that is the only compiler one has to use. Knowing how the compiler works allows a software engineer to design code that *will* compile, thereby allowing him to concentrate on ensuring that the code does what it should. NPN