ACDK is a development framework with a similar target of Microsoft's .NET or Sun's ONE platform, but instead of using Basic/C# or Java as programming language, it bases C++ as core implementation language.
ACDK implements the standard library packages, including acdk::lang, acdk::lang::reflect, acdk::util, acdk::io, acdk::text (including regexpr), acdk::net, acdk::sql, acdk::xml and more. Today's technologies like flexible Allocator/Garbage Collection, Threading and Unicode are implemented in the core of ACDK.
With the extensions of ACDK C++ objects are available for reflection, serialization, aspect oriented class attributes and [D]ynamic [M]ethod [I]nvocation. This DMI act as an universal object oriented call interface to connect C++ with scripting languages (Java, Perl, Tcl, Python, CfgScript, Lisp, Visual Basic, VBScript) and standard component technologies (CORBA, COM+).
With acdk::wx a rich platform independ GUI-library is available for C++ and Scripting languages.
Here are some key features of "ACDK":
Java like language constructs in C++
· Garbage Collection for Objects
· Java like object modell with classes and interfaces
· Source code is pure C++
Provided for many major plattforms:
· Windows 95 - Windows XP
Java like core library
· java.lang -> acdk::lang
· java.lang.ref -> acdk::lang::ref
· java.lang.reflect -> acdk::lang::reflect
· java.io -> acdk::io (with limitation)
· java.util -> acdk::util
· java.util.logging -> acdk::util::logging
· java.text -> acdk::text
· java.net -> acdk::net
· java.locale -> acdk::locale (additionally character encodings)
· java.security -> acdk::security
· java.sql -> acdk::sql
· org.xml.sax, org.w3c.dom -> org::xml::sax, org::w3c::dom, org::w3c::dom::xpath.
Standard Java Features
· Unicode support with several character encodings.
· Objects with wait and notify/notifyAll
· Synchronization of methods or blocks
· Exceptions with Backtrace
· Java like arrays from classes and basic atomic types (like int)
· Enhancement relative to Java
· Object variables as stack variables with better performance
· Function attribute oneway
· Function argument attributes IN, OUT, INOUT, BYVAL, BYVALIN, BYVALOUT, BYVALINOUT
· Enhanced Allocator concept and customizable Garbage Collection.
· Connectable Information to every language definition part (classes, methods, parameter, and so on) as Attributes.
Runtime Information about:
+ class name, namespace, base classes and public/private
+ Member, static, public/protected/private, Type of member, name of member
+ Constructor with arguments (see methods)
+ Methods, static, public/protected/private, with type of of return value, type and name of argument, throw specifications.
+ Attributes similar to to C# Attributes and Java Annotations.
· Load classes and library by name
Dynamic Method Invocation Interface (DMI).
· create objects by class name
· Read/Write normal and static member variables identified by name
· Invoke normal and static methods, identified by name.
Serialization and Persistenz
· Serialisation of objects
· Save Objects to binary or XML.
· serialized_clone (shallow and deep)
· Java compatible serialization of Objects (included in acdk_java).
Further library based features
Enhanced IO library byte and char based
· All IO-Classes implements Reader/Writer CharReader/CharWriter interfaces
· all IO-Classes implements FilterReader/FilterWriter or Storage interface
· Free combination and chaining of Readers/Writers
Enhanced File interface
- Interface to different file systems.
+ Normal OS file system
+ Ressource file system embedded in an executable or library
+ ZIP file system for ZIP archives
+ TAR file system for TAR archives
+ FTP file system for remove internet file access
· Regular Pattern matching.
· Regular Pattern matching
· Parsing using SAX(2) Interfaces
· Parsing to DOM
· Validating XML files
· Selecting XML using XPath
· Building in memory DOM trees
· Serialize/Deserialize ACDK Objects to/from XML
· dom4j like extentions for the standard dom modell.
JDBC like Database connectivity
· ODBC database on Windows
· Configuration - Tests - Debugging
· Plattform neutral make files, generating Makefiles for gmake, bsd make, nmake, Microsoft Visual Studio (.dsw/.dsp).
· Regression tests through a unit test concept.
· Documentation system following JavaDoc convention
· Online Reference and HTML-Help.
· Integrated Tracing and Logging with log4j like framework.
Online Debugger (Alpha)
· view Dump of all ACDK objects in a hierarchical view grouped in static global data and working sets of the threads.
· Modify value while system is running.
· Trace monitor.
· Object Tracer
· Garbage Collector Monitor
· Object Profiler
· Telnet Lisp/CfgScript console to
+ inspect data
+ modify data
+ calling Objects methods
Integration of Scripting
All ACDK object can be invoked with scripting languages without any further stub or interface code using ACDK DMI facility.
· with Lisp (build in interpreter)
· with Java
· with Perl
· with Tcl
· with Python
· with VBScript (Windows only)
· with Visual Basic (Windows only)
Embedding a full featured script interpreter into ACDK:
· with CfgScript