The TUNES HLL- Subproject
For bootstrap purposes, we define a subset of the HLL that we can easily implement.
Syntax
We want to keep the syntax as trivial as possible, so that initial lexing and parsing will not be a problem. There are two kinds of obvious choices:
- Forth-like
- Trivial lexing, trivial parsing: the system tokenizes one word and executes the according code to parse it. But that's very low-level and if the only standard, yields dirty reflectivity.
- Lisp-like
- Easy lexing, easy parsing: the source is made of constructed objects, with a trivial s-exp constructor syntax.
Semantics
Core
- Structures
- explicit constructors and destructors
- Lambda Calculus
- implicit binding and reduction
- Logical Constraints on Objects
- explicit specifications and proofs
- Modular Scoping
- explicit binding
- Reflection
- absorption and reification of features
- Perspectives
- point of views on objects that describe what is or isn't relevant about the object.
Derived
- Continuations
- explicit rest of computations after return
- Side-Effects
- implicit environment parameters
- Exceptions
- implicit alternate continuations in environment
- Simple pattern-matching,
- Annotations on objects
- implicit constructors
- Typing
- implicit constraint analysis and enforcement
- Automatic partial pattern matching
- implicit destructors
- Functors
- functions returning types
- Fluid binding
- Inheritance
- implicitly realizing sub-interfaces
- Guarded Partial Evaluation
- implicitly optimizing a program for specialized environments.