F
Fu Limin
In what ways is your language distinctive?
Well, I think the most distinctive feature is the integration of powerful
text processing ability and powerful numerical computation with a
simple syntax for them. I also try to support a simple and transparent
interface to C++. Though there is still a long way to go, I think the
status of Tao is promising, in fact I already benefit from it in my
research where both text processing and numerically computation are
important, for which I "suffered" a lot from using Perl in the beginning,
which drived me to design my own one ^_^
How does developing your own
philosophy, and something have already got complicated. So I think it
would be more difficult for me to dive into them. Anyway, I believe it
worth trying to design a new language, if I found it more usesful in some
work than the other languages, somebody will also find this. A new option
is not bad thing.
suggestions.
know it is also used in C/C++.
But for byte type numeric array, I used unsigned char.
are the same as other types of objects.
deosn't conform to the version number which increased too rapidly
In fact, I spent much time on implementing them, and they contributed
to half of the size of the compiled codes. I believe this part is one
of the best implemented part. Some of the operations for numeric
arrays are even more convenient than Matlab. Now a very simple
and transparent interface is supported to pass numeric types to and
from C++ modules, so the next step to support powerful numeric
computation in Tao is to find somebody or by myself to write
bindings to some commonly used numerical packages.
mainly used for passing Tao data types to C++ modules, where each Tao
object can be copied and converted into its C++ equivalent object
(though internally they are all C++ objects, but the object used in C++
modules is different from the one used in Tao interpreter, e.g. TaoHash is
used in the interpreter, while TcHash is used in C++ module, the conversion
or copying keep its structure including cyclic ones).
But for class or routine objects, no, I will support this when I started to
support multi-threading.
I should point out (since I am afraid I misunderstood something
of you in this point), the assignment in Tao is simpily a new binding
of object to pointer even if the objects in two side of assignment are
or the same type (except for assign new values to numeric array elements).
type of numeric arrays and objects of Tao class. Though now
Tao can well check the types of two objects are the same or
different, e.g., if aa is an object of class AA and bb is an object
of class BB, aa=?AA, bb=?BB, will give true, and aa=?bb will give
false.
them, I had thought about supporting this, but it simply slipped my mind.
You remind me ^_^
Best regards,
Limin
Well, I think the most distinctive feature is the integration of powerful
text processing ability and powerful numerical computation with a
simple syntax for them. I also try to support a simple and transparent
interface to C++. Though there is still a long way to go, I think the
status of Tao is promising, in fact I already benefit from it in my
research where both text processing and numerically computation are
important, for which I "suffered" a lot from using Perl in the beginning,
which drived me to design my own one ^_^
How does developing your own
For the existing languages, I think they have already stabilized a kind oflanguage (as opposed to making stronger one of the languages whose
newsgroups you've posted to) make the sum of human experience richer?
philosophy, and something have already got complicated. So I think it
would be more difficult for me to dive into them. Anyway, I believe it
worth trying to design a new language, if I found it more usesful in some
work than the other languages, somebody will also find this. A new option
is not bad thing.
Yes, thank you for your time to make these observations/question andAnd do any of these observations/questions below help you explain these
larger matters? :^)
suggestions.
My using of ^ as power is influenced by Matlab. In the beginning I didn'tOdd things I've noticed in a quick trawl through your docs:
* What no bit-ops? And why give ^ a non C/C++ meaning?
know it is also used in C/C++.
For strings, I use stl::string, so I didn't care about this.* What sort of characters are you using?
But for byte type numeric array, I used unsigned char.
In Tao constants are also represented by objects, their passing by reference* How does passing by reference square with constant arguments?
are the same as other types of objects.
Right. I haven't concentrated on this part. The status of IO support* Your I/O interface has a /long/ way to go!
deosn't conform to the version number which increased too rapidly
Yes, this is one of the important features I intended to have in Tao.* The complex number and matrix stuff seems reasonable.
In fact, I spent much time on implementing them, and they contributed
to half of the size of the compiled codes. I believe this part is one
of the best implemented part. Some of the operations for numeric
arrays are even more convenient than Matlab. Now a very simple
and transparent interface is supported to pass numeric types to and
from C++ modules, so the next step to support powerful numeric
computation in Tao is to find somebody or by myself to write
bindings to some commonly used numerical packages.
Yes, I will do it.* It is probably a good idea to add something like a C/C++ switch; it
might only be syntactic sugar around if, but good syntax makes a
difference.
If you mean data object, yes, but it's not available for users yet. Now it is* Given that you are using mutable objects, do you have a way for
someone to force a duplicate of an arbitrary object? That would make
doing things like security separation much easier.
mainly used for passing Tao data types to C++ modules, where each Tao
object can be copied and converted into its C++ equivalent object
(though internally they are all C++ objects, but the object used in C++
modules is different from the one used in Tao interpreter, e.g. TaoHash is
used in the interpreter, while TcHash is used in C++ module, the conversion
or copying keep its structure including cyclic ones).
But for class or routine objects, no, I will support this when I started to
support multi-threading.
I should point out (since I am afraid I misunderstood something
of you in this point), the assignment in Tao is simpily a new binding
of object to pointer even if the objects in two side of assignment are
or the same type (except for assign new values to numeric array elements).
Not yet. Yes, I should support it, it can be useful for checking* The ~~ operator is neat.
* Do you have some kind of subtype operator?
type of numeric arrays and objects of Tao class. Though now
Tao can well check the types of two objects are the same or
different, e.g., if aa is an object of class AA and bb is an object
of class BB, aa=?AA, bb=?BB, will give true, and aa=?bb will give
false.
Yes, they are all objects. But no mechanism is provided to introspect* Are classes, namespaces and modules all objects? Can you introspect
on them to discover what exists and what you can do with them?
them, I had thought about supporting this, but it simply slipped my mind.
You remind me ^_^
Best regards,
Limin