Project will consist of 3 implementations: the first implementation will be in Java, the second in Ada95, and the third implementation will be in a non object oriented language.
**Basic Interpreter Project**
This project will be to write an interpreter for a minimal form of BASIC. The major project for the quarter will be to write an interpreter for a minimal form of BASIC. This minimal form of BASIC has only 1 data type, integer, and the only identifiers are single capital letters (i.e. there are only 26 possible identifiers). There are only 6 types of statements in this form of BASIC:
1) LET statement LET {variable} = {expression}
2) IF statement IF {expression} GOTO {line number}
3) GOTO statement GOTO {line number}
4) PRINT statement PRINT {variable}
5) STOP statement
6) END statement
Each statement must be preceded by a line number. For convenience, each line number must be between 1 and 999. Also, the expressions will be either a variable, a constant, or a simple arithmetic operation (addition, subtraction, multiplication, or division). The interpreter will parse the BASIC program and build some intermediate data structures. These data structures will then be interpreted to execute the program. The parsing algorithm should detect any syntactical or semantic error. The first such error discovered should cause an appropriate error message to be printed, and then the interpreter should abort. Run-time errors should also be detected with appropriate error messages being printed.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request.
3) Exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
Java, ADA and a non object oriented language.