home
work
Welcome to the DDL homepage on Sparksite

DDL - Data Defintion Langauge
.Net: System.DDL 

Current Version: Beta 1

 

 

 

If you have tried the DDL  please do drop us mail : users@ddl.sscli.net 
Also to contact the authors directly you may mail: spark@sscli.net and dolly@sscli.net 

Important Links:
The Public DDL project page:     http://ddl.sscli.net 
Pooja's DDL Homepage:      http://www34.brinkster.com/mpooja/work/Other/ddl/index.htm
DDL dev news at:     http://ddl.sscli.net/servlets/ProjectNewsList 
DDL Future Enhancement/wish-list:     ddl_wish.htm
DDLC - DDL compiler design page:     ../ddlc/ddlc_design.htm

 

The DDL is a few thousand lines of code provided to you as an example of the implementation of language aimed at being able to represent data in arbitrary formats and to be able to read data from data sources that confirm to a format specification. The DDL is a RAD tool for developing software that deals with complex file/data formats.

The current distribution of the DDL provides the DDL interpreter as a mixed mode assembly that can be hosted by your .Net application. For traditional C++ hosts the DDL would be provided as C++ library file and headers. The host application would interact with the DDL interpreter/engine using the API for the DDL interpreter.

The DDL language is a simple intuitive language that lets you define arbitrary data formats. The host application of the DDL engine would use a DDL source file as input to the engine and then instruct the engine to use that information to read data from various source files.

The DDL is provided as a System.DDL.dll - a library written in managed C++. In effect the language is hosted by an application that is hosted under the CLR.

In the spirit of community, we wish that the DDL is a practically useful tool and that in time, it moves beyond the original authors and be developed into a more robust and generally useful tool.

Welcome to the DDL!

 

Documents

These document will help you get started on the DDL. 
Word doc format versions of the documents are also provided for ease of download and printing.

Guide to the Documents:

If you are just interested in playing around with the DDL,

download: 

and read:

If you want to get a good overall idea of the DDL 

read:

For the enthusiast and the developer are the whole set of documents. 

The paper on the IRA would be of interest to future developers of the DDL as it outlines one of the central algorithms used for resolving dependant pieces of information.

Here are the docs:

DDL Concepts  [word doc]
        - contains the basic concept of the DDL to get a feel of what it does.

DDL Console Tutorial [word doc]
        - contains a tutorial to using the DDL console program. This program can be downloaded below. It is  an example of hosting the DDL and a tool to test new DDL scripts.

DDL Language [word doc]
        - contains the language specifications and introduces you to programming the DDL

DDL Hosting and API [word doc]
        - reference document on how to host the DDL engine in your own applications and the API that the DDL exposes.

DDL Internals - Iterative Resolution Algorithm (IRA) [word doc]
        - The IRA is the algorithm that is the heart of the DDL's data interpretation process. This is brief description of the algorithm.

DDL Uses [word doc]
        - Details and mulls over some of the possible uses of the DDL in future.

DDL Data structures (incomplete)
       - document details some of the internal data structures used by the DDL engine. This would be of interest only to the DDL developer or someone interested in the upcoming DDL compiler project. (this is a Visio .vsd file)

Downloads

This is the System.DDL.dll assembly, the DDL interpreter itself.
(System.DDL.dll ~ Beta 1 Build 1)

This is the DDLConsole. The DDLConsole is a sample C# application that hosts the DDL. It gives you a command line interface to the DDL interpreter and lets to test run your scripts and learn about the DDL.
(System.DDL.dll ~ Beta 1 Build 1)
(DDLConsole ~ 0.81)
 

 

Authors & Credits

The DDL was originally developed as part of a larger academic project in mostly in the month of July 2002, when we were in college. For all our efforts those days it felt that no one had noticed the work we had put in. The development on the DDL stayed dormant till early August 2003, we we decided to revamp the code, fried some old fish, plugged some old leaks, wrote a pile of new docs and repackaged it, in its shiny new managed C++ .Net wrapper.

Roshan James (me). email : spark@sscli.net 
I had developed the original draft concept of the DDL and stayed through with much of the implementation.

Pooja Malpani. email: dolly@sscli.net 
Pooja had been co developer for a while and is the major reason the project woke up after a year. Also this phoenix version wouldn't have been possible without her.

I must also mention Rakesh Nandakumar and Tony Sakariya of our original project team in college. Rakesh had co-developed a script language for running large amounts of equations using arbitrary variable specifications on data retrieved by the DDL. Tony had written the GUI application that hosted the DDL. (screenshot - unfortunately we don't have this anymore).

 

Roshan James