# ANN: Dao 1.0 preview version is released

**URL:** <https://www.ruby-forum.com/t/ann-dao-1-0-preview-version-is-released/135898>\
**Category:** Ruby\
**Created:** [April 26, 2008, 12:11am UTC](https://www.ruby-forum.com/t/ann-dao-1-0-preview-version-is-released/135898 "2008-04-26T00:11:32Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Limin\_Fu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/54ee81/32.png) [@Limin\_Fu](https://www.ruby-forum.com/u/Limin_Fu)\
**Post date:** [April 26, 2008, 12:11am UTC](https://www.ruby-forum.com/t/ann-dao-1-0-preview-version-is-released/135898/1 "2008-04-26T00:11:32Z")

</div>

Hi,

I am please to announce a preview release of Dao (1.0). Dao is a  
simple yet powerful object-oriented programming language featured by,  
optional typing, BNF-like macro system, regular expression,  
multidimensional numeric array, asynchronous function call for  
concurrent programming etc.

Since the last beta release (2006 november), a number of new features  
have been added to the language with some significant improvements on  
the implementation. Here I will just list some of them:

1. Added a new typing system, so that the type of an variable can be  
either declared explicitly or inferred implicitly, and type checking  
is performed at compiling time when possible. More over the type  
information is used for function overloading and function  
specialization (with type-optimized VM instructions) according to  
paramter types. Some types can be compounded into new types, e.g.,  
list, tuple\<int,map\<string,int\>\>…

2. A flexible macro-system that allows writting macro in a form close  
to BNF, and can be used to define new syntax;

3. Added Asynchronous Function Call (AFC) and Message Passing  
Interface (MPI) for further support for concurrent and distributed  
programming (still experimental);

4. Added a few new data types, in particular, among which, there is  
the new tuple type in which each of the items is typed independently,  
for example, if a tuple is consisted of an integer and a string, then  
the type of the tuple will be tuple\<int,string\>; Moreover the items of  
a Dao tuple can have field names.

5. The internal data storage scheme is improved to reduce memory  
overheads for simple types.

6. Added special support for the main() function, so that the comand  
line arguments are mapped to the function parameters, and are checked  
against the paremeter types of main().

7. Improved representation of C/C++ types, so that their inheritance  
relationships can be still valid in Dao, and they can be derived by  
Dao classes directly.

Moreover, this release has included a tool (tools/autobind.dao) which  
can do semi-automated wrapping of C/C++ libraries. In fact, many of  
the modules released this time are generated by this tool. Just to  
list the modules released this time:  
DaoCamellia (image processing),  
DaoCGI (CGI Web programming),  
DaoCLoader (running time wrapping of C libraries, slightly similar to  
the ctype module of Python),  
DaoDataModel (database handling, can be used to set up mappng between  
data tables and Dao class types),  
DaoFastCGI (CGI Web programming),  
DaoLapack (linear algebra library),  
DaoMagick (image processing),  
DaoMGL (math plotting),  
DaoMySQL (database),  
DaoOpenGL (3D graphics),  
DaoSDL (multi-media),  
DaoTCC (embedding C codes into Dao scripts),  
DaoXML (handling XML documents and fetching web pages from web  
servers),  
DaoZlib (compression),  
DaoVTK (3D data and model visualization).

I believe this release has become suitable for some practical  
applications, and worth to be tried out. Then a formal release of the  
1.0 version will be made available during this august or september. I  
would be very grateful, if anyone can give me some suggestions for  
improvement, and feature requests are of couse also welcome. Thanks  
and

enjoy,

Limin

homepage: [http://www.xdao.org](http://www.xdao.org)  
sourceforge project: [Dao Language download | SourceForge.net](http://sourceforge.net/projects/daoscript/)  
download:  
[Dao Language - Browse /dao-1.0/daovm-1.0-preview at SourceForge.net](https://sourceforge.net/project/showfiles.php?group_id=141871&package_id=273540&release_id=594971)
