Summary:
Tao is an object-oriented scripting language with dynamic-typing variables
supporting complex data structures. It has powerful text processing ability
such as string regular expression matching. It provides built-in numerical
data types such as complex number and multi-dimensional numeric array,
and their corresponding operations and computations are very convenient
in Tao. It can be easily extended with C++, through a simple and
transparent interface.
Key Features:
1. Object-oriented ( syntax slightly similar to C++ ).
2. String regular expression with syntax support ( similar to Perl ).
3. Numeric types and their operations ( slightly similar to Matlab ).
4. Extendable with C++ through a simple and transparent interface.
ChangeLog:
+ : added
! : changed
* : fixed
- : removed
Release: tao_0.9.0_beta:
! Matrix type is generalized to numeric array supporting
arbitrary dimensions and different precisions including
byte, short, int, float and double. Many operations are
also provided for numeric array.
+ Some convenient and powerful built-in functions are
implemented to manipulate numeric arrays, including
numarray(), apply(), noapply() and which() etc. Basic
mathematical functions are also supported for numeric
arrays.
+ A feature called transient variable is implemented for
convenient parameter passing in some situations.
+ Some "magic" functions which may take expressions
with transient variables as parameters to do some
computions on arrays and numeric arrays without
explicit looping and subindexing. These functions
include numarray(), apply() and noapply() for numeric
array; iterate() and iterget() for normal array;
and which() for both.
+ Some C++ types are provided for transparent passing
Tao types to C++ modules, so that only two C++
header files("taoCpptype.h" & "taoPlugin.h") are
required to develop C++ modules loadable by Tao
without linking to any additional libraries.
! The base class for TaoPlugin is changed from TaoBase
to TcBase, so that the developing of Tao plugins only
requires another header file "taoCpptype.h".
+ Basic string operations such as substring, insert,
replace and erase by subindexing. And a few functions
are added such as number(), pack() and unpack().
+ Added string regular expression matching for alternate
and grouping such as /(\d|\w)(@1:\D|\c)/.
+ Substring substitution by regular expressions.
! Embedding expression in regular expressions is changed.
+ More convenient subindexing is supported for array and hash.
+ Local variables.
+ yield statement to use routine as generator.
+ Many operators such composite assignment (+=, -=,
*=, /=,etc.), type comparision operators(=?,!?),
right operators( .#,.@,.%, etc.)
+ eval(): evaluate a block of codes represented as a string.
+ Loop control: for(e1,e2,e3), logic control: e1 ? e1:e2;
+ Other functions such as repeat(), about(), import(),
load(), time(), astime() and asctime() etc.
! Many changes including keywords: sub->routine,
continue->skip. commenting symbols are also changed.
* Some bugs.
Download:
http://prdownloads.sourceforge.net/taoscript/tao_0_9_0_beta.tar.gz?download
Document:
http://taoscript.sourceforge.net/An_Introduction_to_Tao_Language.pdf
HomePage:
http://taoscript.sourceforge.net
Contact:
Limin Fu: fu [dot] limin [dot] tao [at] gmail [dot] com