General Links
SDS Homepage
General Documentation
Main index
Copyright notices
What is SDS
Installing SDS
Using SDS
Language frontends
Plans/further releases
Developer Documentation
Architecture description
Developer How-To
XML-system for classes
CSF Specification
CSF DTD Documentation
Develop code in Lisp
Email page maintainer
Hosted at

SF project page


What is SDS

Notice: SDS should be considered to be of alpha quality.

The basics

SDS, which means "Software Development Foundation", is nothing new or original. It is merely a framework for extracting essential information from your program source and allow this information to be easily presented in many ways. More specifically, you can currently use SDS:

  • To extract and present documentation in a style very similar to Javadoc or Doxygen.
  • To extract and present call-trees (which functions call which)
  • As a back-end for source navigation (there's already an emacs hook)
  • As a basis for some kinds of code metrics

The core of SDS is language independent, but to extract the information from language X, a language X front-end is required. Currently, there are semi-working front-ends for C, C++, Common Lisp, Python and Java. IDL-support is planned.

The foundation of SDS

The core of SDS is XML and most communication between the tools of SDS is done through XML. SDS has a framework which makes the use of XML to be trivial and worthwhile for most tools. Currently the XML framework in SDS is implemented in Python, C++, Java and Common Lisp, and should not be too hard to extend to other languages. This is a guarantee that SDS is made to be portable and usable from several languages, and is not restricted to one OS and/or one language.

Who should consider using SDS?

This might vary, and since we're in the early stage of development not all "users" will find SDS to be equally useful. Those that currently will have the most benefit is:

  • Language developers
  • Developers of development tools

The first group, the language developers, will get access to a set of powerful tools for development for their new language by letting e.g their compilers spit out data that SDS understands. This allows new languages to catch up with more popular languages and languages which has fancy tools.

The second group, the developers of development tools, get free access to a good framework to get information from several languages and thereby reduce the time needed to develop parsers and information-gatherers for their tools.

A more precise description may be found in the architecture description.