Project DescriptionA general purpose script engine platform for hosting scripting languages of multiple levels, with a set of predefined script languages and a library for building new script languages. Also, linq on C++ and a high level string processing library(including regex) are provided.
Please go to "Source Code" page and download the latest version of the
source code and documentation.
Contact Me - 联系我next release target
- ManagedX
- document for NativeX and ManagedX
In Vczh Library++ 3.0 there are
- [done] Both x86 and x64 supports
- [done] a lightweight and fast script language virtual machine
- [done] a general compiler component library (type manager, symbol table, visitor pattern macros, etc..)
- [done] an extensible basic script language supports for languages like C (which compiles to the VM code)
- [done] basic language supports (structure, function, template, concept, concept instance, variable, type rename, constant declaration, constant expression, exception handling, etc..)
- [done] multi assembly supports (loading and running, linking to a single assembly, metadata for reflection)
- [done] a common library for basic script language (memory, string, math, gc, thread pool/task/thread/synchronization)
- [done] interop between C++ codes and basic script functions by language provider framework
- [developing] an extensible managed script language supports for languages like C# or Java (which compiles to basic script language)
- [done] design language elements
- [developing] convert managed description to basic language
- [developing] two phase code generation (rewrite complex elements to simple elements, like enum to class + static property)
- [developing] semantic analyzing
- [done] core language
- [developing] symbol table <==> assembly metadata
- core extension
- extension method
- dynamic support
- compile time interface proxy code generation
- continuation (including yield return)
- rewrite ManagedX code from phase 1 to phase 2 which contains only core language
- choose a layer to support continuation (1. managed -> basic -> non-continuation-basic, 2. managed -> non-continuation-managed -> basic)
- external method (pure basic language implemented managed method)
- [done] library for predefined types
- library for common operations
- function body code generation
- an extensible dynamic script language supports for languages like Javascript (which compiles to managed script language)
- [continuing] Language parsers
- [done] NativeX
- [done] ManagedX
- [planning] further improving
- improve gc memory manager (to be thread safe + fragment arrangement)
- extend basic language to support continuation
- debugger interface
- symbol file
- debugger interruption
- enable C++ code to initialize generic function
- instruction level optimization
- [paused] a language provider framework to support communication between different languages
- [developing] API for basic script languages
- [done] compiling interface
- [done] tree<==>code interface
- [done] header generation interface
- tree<==>xml interface
- assembly metadata ==>xml interface
- API for managed script languages
- API for dynamic script languages
- [developing] Building intellisense supports for NativeX (IDE by WinForm, in .NET 4.0)
- [done] All necessary intellisense features
- Researching how to improve the GUI performance
- Researching how to generate intellisense code from grammar
Vczh Library++ 3.0 Core Library there are
- [done] regular expression, parser combinator builder and text encoder/decoder
- [done] an extensible stream system
- [done] a collection library with Linq implemented in C++
- [done] a reflection library on C++
- [done] a lightweight unit test framework(only tens of lines of code) for C++
- [done] multi-threading/synchronization supports/thread pool/task library
- [developing] querable tree data provider (supports xml, json, strong-typed-object-representation)
- [done] ITreeQuerable and a default implementation
- [done] xml <==> xml ITreeQuerable
- [done] json <==> json ITreeQuerable
- [done] xml,json <==> strong-typed-object ITreeQuerable
- [developing] general querier on ITreeQuerable (it is a modified XPath)
Vczh Library++ 3.0 contains the following code generators:
- [done] FpMacro.exe: functional macro system for generate complex C++ code files
- [done] StrGen.exe: resource generator for generating C++ programs of different languages(Chinese, English, ...).
- [developing] DocWrite.exe: text file group generator with optimizations for writing documentation and references
THE PROJECT IS DEVELOPING