Closed

BASIC Interpreter - repost

This project received 12 bids from talented freelancers with an average bid price of $175 USD.

Get free quotes for a project like this
Employer working
Project Budget
N/A
Total Bids
12
Project Description

Project will consist of 1 implementation in Java.

**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 lexical analyzer and parser in executable form as well as complete source code of all work done.
2) 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).

Grammar of program is as follows:

→

→ |

→ EOLN

→ | | | |

→ LET =

→ GOTO

→ IF GOTO

→ PRINT

→ STOP

→ 0 .. 999

→ 'A' .. 'Z'

→

→ < | | >= | == |

→ + | - | * | / | |

→ 0 .. “maxint”

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online