Search
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.

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 Sep 28 2011 at 6:29 PM by vczh, version 258
Updating...
© 2006-2012 Microsoft | Get Help | Privacy Statement | Terms of Use | Code of Conduct | Advertise With Us | Version 2012.1.11.18365