Opal Compiler: Requirements
This page describes which features the first version of the Opal compiler will attempt to support. The minimum feature set will definitely be supported but the hope is that the goal feature set will be supported. The goal set bring the compiler into a full blown view of Opal with all entities as object. In the event that extra time is available the bonus features may be implemented. Finally a list of features that will not be supported is listed.
BUGBUG - need to rework to current status
Minimum
- Full Lexer
- Functions
- Expressions
- Basic Control Flow (if, else, for, while, switch, etc.)
- Operators on primitives
- Properties
- Primitives & Literals
- Basic GC (don't delete?)
Goal
- Patterns
- Functions/Methods
- Types, Classes, Interfaces
- Virtual Patterns
- Self, This, Outer
- Creation Code
- Destruction Blocks
- Abstract
- Anonymous Patterns
- Objects
- Create Methods
- Strings
- ASAP Garbage Collection
- Locals Opt
- Owned Opt
- Reference Count Opt
- Standard GC
Bonus
- Functions:
- Method Overloading
- Operator Overloading
- Default Arguments
- Function Properties
- Invariants
- Pointers, References, Locals
- Tail Calls
Not Supported
- Parametric Polymorphism
- Exceptions
- Advanced optimizations
jwalker@cs.oberlin.edu