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.