info:jimpi
This is an old revision of the document!
Table of Contents
JIMPI - Java IMP Interpreter
In the lecture Formal Methods and Functional Programming we were reasoning about a simple language called IMP. The JIMPI project implements a parser, interpreter and bytecode emitter. The source is available as an Eclipse project from http://dev.antiguru.de/jimpi.zip
Language
The language grammar:
Number: '0'..'9'+; Symbol: 'a'..'z'|'A'..'Z' (a'..'z'|'A'..'Z'|'0'..'9')* File: Procedure* Statement*; Procedure: 'procedure' Symbol '(' (symbol (',' symbol)*)? ';' (symbol (',' symbol)*)? ')' 'begin' Statement* 'end'; Statement: While | Until | For | Scope | Assign; While: 'while' Expression 'do' Statement* 'end'; Until: 'repeat' Statement* 'until' Expression; For: 'for' Assign 'to' Expression 'do' Statement* 'end'; Scope: 'var' Assign 'in' Statement* 'end'; Assign: Symbol ':=' Expression; Expression: '(' Expression BinOp Expression ')' | Number | Symbol BinOp: '+' | '-' | '*' | '=' | '#' | '>' | '>' | '>=' | '<=' | 'and' | 'or';
License
Jimpi is published under the tems of EPL 1.0.
info/jimpi.1272961753.txt.gz · Last modified: 2010/05/04 08:29 by moritz