Project Description
A 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.

The GacUI code in candidate folder is moved to another codeplex project Gac Library.

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

Last edited May 8, 2012 at 8:07 AM by vczh, version 260