This project has been divided into three main stages. We are currently finishing the first one. If you want to participate in one of the stages, see the Participate section:
Stage 1. Features of this stage are described in the Getting Started section: Implicit
var references with multiple types, static duck typing, separation of the dynamism concern, implicit generics by means of type reconstruction, static and dynamic typing interaction, and alias analysis.
Stage 2. The main feature to be added in stage 2 is dynamic structural reflection. This feature offered by dynamic languages permits the dynamic addition, deletion and modification of classes and objects. StaDyn will analyze concrete type evolution by means of its alias analysis mechanism. Only dynamic references will permit type evolution. When the name of the member to be added, removed or modified is known statically, it will be used to modify the concrete type. Otherwise, a dynamic type inference system will be used with dynamic references.
Stage 3. The last functionality to be added to StaDyn is dynamic code generation. Code could be produced at runtime. Design-time and runtime will be mixed up. Since the compiler API will be added to the runtime, types will be inferred at runtime. If some compile error exists, the execution of this code will throw an exception.
Usability Stage. Although this is not a research issue, it is important to include StaDyn into a development environment. This stage could be developed at any moment. Two important features that the environment must support are: 1) Attribute-oriented documentation of constraints of method parameters; 2) An intellisense-based mechanism that uses the type reconstruction mechanism of StaDyn to facilitate the development of applications.
If you are interested in contribute to the development of StaDyn, please see the Participate section.