Difference between revisions of "Assignment: Semantic Analysis"
Jump to navigation
Jump to search
(Created Page for Type Checking project) |
(→Notes) |
||
Line 3: | Line 3: | ||
== Notes == | == Notes == | ||
− | Our [[Concurrent MiniJava Grammar|modifications to MiniJava]] require an additional step for initializing the class and type environments. The class environment must be initialized with a type-descriptor containing each of the method types in class [[Xinu Helper Class|''Xinu'']], and the type environment must be initialized with a binding of identifier ''Xinu'' to this class type. | + | Our [[Concurrent MiniJava Grammar|modifications to MiniJava]] require an additional step for initializing the class and type environments. The class environment must be initialized with a type-descriptor containing each of the method types in class [[Xinu Helper Class|''Xinu'']], and the type environment must be initialized with a binding of identifier ''Xinu'' to this class type. With this, the type checker can verify that external calls are programmed properly and also verify that only external calls which the compiler knows how to map to the underlying runtime are being used in the program. |
Revision as of 23:26, 29 July 2010
Overview
In this project students implement a semantic analysis (type checking) pass for our modified MiniJava language.
Notes
Our modifications to MiniJava require an additional step for initializing the class and type environments. The class environment must be initialized with a type-descriptor containing each of the method types in class Xinu, and the type environment must be initialized with a binding of identifier Xinu to this class type. With this, the type checker can verify that external calls are programmed properly and also verify that only external calls which the compiler knows how to map to the underlying runtime are being used in the program.