Hi,
During the past weeks, I have made some progress in the development of Tao,=
=20
including splitting subindexing operations from the numeric array types and=
=20
starting to implement multi-threading supporting, simplifying the interface=
s=20
for extending and embedding Tao, and supporting scripting in non-english=20
languages. In particular, the last two are almost done.
Now the interfaces for extending and embedding are very simple, and easy to=
=20
use, because the interfaces are abstracted as pure virtual class, and all=
=20
the internal Tao data types are subclassed from these pure virtual class. S=
o=20
most of the Tao data objects can be directly passed to and from C++ modules=
,=20
and with abstract interfaces these Tao objects can be easily manipulated in=
=20
C++ modules. Only two _very_small_ header files taoBase.h and
taoPlugin.hare required to build a loadable C++ module, no need to
link to additional
libraries.
The embedding of Tao is even simpler than extending. The kernel of Tao is=
=20
compiled into a dynamic loading library, which are also accessable through=
=20
abstract interfaces defined in a header file. It's also true that one can=
=20
embedding Tao with only 4 _very_small_ header files _without_ linking to Ta=
o=20
library! One can have a look into file taoMain.cpp as an instance for=20
embedding.
For non-english languages, Tao allow users to provide a set of alternate=20
keywords in any languages as an alternate keyword file ( *.akw ). As a=20
result, one can write Tao script in any language he/she prefers (I have=20
tried in Chinese, it works well. And this feature was done in a few hours!)=
.=20
The only requirement is that the character encoding of the akw file should=
=20
be the same as the encoding for the source file.
This file can be provided to the Tao interpreter by option -k, if this=20
option is not present, a default akw file with the same name as the source=
=20
file is searched in the current directory. akw file should include two=20
columns, for example,
class ClassInChinese
routine RoutineInChinese
...
By providing this file to the interpreter, one can use keyword=20
"ClassInChinese" instead of "class". However, "class" is always available a=
s=20
the keyword.
All these features are only available in the CVS version of Tao.
Cheers,
FU Limin
|