Chapter 17: Problem 26
In Exercises \(7.34-7.35,\) we introduced Simpletron Machine Language \((\mathrm{SML}),\) and you implemented a Simpletron computer simulator to execute programs written in SML. In this section, we build a compiler that converts programs written in a high-level programming language to SML. This section "ties" together the entire programming process. You will write programs in this new high-level language, compile them on the compiler you build and run them on the simulator you built in Exercise \(7.35 .\) You should make every effort to implement your compiler in an object-oriented manner. (\text { The Simple Language })\( Before we begin building the compiler, we discuss a simple, yet powerful high-level language similar to early versions of the popular language BASIC. We call the language Simple. Every Simple statement consists of a line number and a Simple instruction. Line numbers must appear in ascending order. Each instruction begins with one of the following Simple commands: rem, input, 1 et, print, goto, if/goto or end (see Fig. 17.22 ). All commands except end can be used repeatedly. Simple evaluates only integer expressions using the \)+,-, *\( and / operators. These operators have the same precedence as in Java. Parentheses can be used to change the order of evaluation of an expression. Our Simple compiler recognizes only lowercase letters. All characters in a Simple file should be lowercase. (Uppercase letters result in a syntax error unless they appear in a rem statement, in which case they are ignored.) A variable name is a single letter. Simple does not allow descriptive variable names, so variables should be explained in remarks to indicate their use in a program. Simple uses only integer variables. Simple does not have variable declarations - merely mentioning a variable name in a program causes the variable to be declared and initialized to zero. The syntax of Simple does not allow string manipulation (reading a string, writing a string, comparing strings, and so on \)) .$ If a string is encountered in a Simple program (after a command other than rem), the compiler generates a syntax error. The first version of our compiler assumes that Simple programs are entered correctly. Exercise 17.29 asks the reader to modify the compiler to perform syntax error checking.
Short Answer
Step by step solution
Key Concepts
These are the key concepts you need to understand to accurately answer the question.