taoscript-lang Mailing List for Tao Language
Status: Beta
Brought to you by:
phoolimin
You can subscribe to this list here.
2005 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
(11) |
Jun
(12) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
---|
From: Limin Fu <fu....@gm...> - 2005-06-21 20:00:16
|
Hi! On 6/20/05, Josef 'Jupp' SCHUGT <ju...@gm...> wrote:=20 >=20 >=20 > I don't know about the general case but in Germany it is not checked > if a trademark has already been registered. As long as nobody cries > "Hey! That is *mine*!" Nothing will happen. On the other hand any of > the companies that registered the TM can ask you to stop using their > TM (wired but true). Perhaps, it is also like this in other countries. I am not sure if that is a general case because Germany is known to > have quite stupid rules. To get permission to stay in Germany to > study, non-EU citizens need to proof that they are inscribed at a > university. To inscribe at a university you need to proof that you > have permission to stay in Germany. Sounds logical, doesn't it? Maybe that's due to bureaucracy - each department of the government makes= =20 rule so that they will not be reponsible if something goes wrong. That's=20 what often happens in Chinese bureaucracy.=20 By the way, I registered a new SF project called daoscript, and I started= =20 to use Dao as the new name for the language in the project. A new mailing= =20 list is also created in that project. Maybe we can start to use that mailin= g=20 list:-) Limin |
From: Josef 'J. S. <ju...@gm...> - 2005-06-20 21:29:30
|
Hi! At Sun, 19 Jun 2005 17:33:29 +0200, Limin Fu wrote: > I don't worry about trademarks, I wonder if such single general word > can be registered as a trademark. 'Kraft' is German for force, 'Heinz' is a German first name, 'Kinder' is German for 'children'. All three words are trademarks. Some gay rights group used "Wir geh=F6ren zur Familie" (we belong to the family) and were sent a letter by the company that owned that trademark. > You mention TAO is a trademark, but it's different from Tao, TAO > stands for some kind of technology, but Tao not. So I think even if > I continue to use Tao, there should be no legal problem. And even > TAO is registered as trademark by different companies or people in > different places(Google told me this)! I don't know about the general case but in Germany it is not checked if a trademark has already been registered. As long as nobody cries "Hey! That is *mine*!" Nothing will happen. On the other hand any of the companies that registered the TM can ask you to stop using their TM (wired but true). Of course "Tao" and "TAO" are different but at least in Germany it is sufficient if they are similar enough (whatever that means). I am not sure if that is a general case because Germany is known to have quite stupid rules. To get permission to stay in Germany to study, non-EU citizens need to proof that they are inscribed at a university. To inscribe at a university you need to proof that you have permission to stay in Germany. Sounds logical, doesn't it? Josef 'Jupp' SCHUGT --=20 Your computer seems to have been infected by "nTOSkrnl.exe" (the "New Tramiel Operating System" is a revised version of the Atari ST/TT operating system and is known not to run on a PC). Please make sure to remove any file with that name... |
From: Josef 'J. S. <ju...@gm...> - 2005-06-20 21:29:17
|
Hi! At Sun, 19 Jun 2005 12:08:20 +0200, Limin Fu wrote: > The name of the language is something disturbed me from time to > time. I found it's very hard to find a good name for it, it seems > good names are always used by somebody for something :-(. Before I > used another name Yuan for this language, but it is also used as > certain terminologies in Chinese(e.g. Yuan language, also means meta > language), in addition, I found if difficult for non-chinese to > pronounce it correctly. It is usually difficult for any non-native to pronounce words correctly. > One candidate name is Dao, which is essentially the same as Tao in > Chinese, Dao is the official pronouncation of that Chinese word, > while Tao the is the pronouncation in some dialect. If I use Dao, I > don't need to change its Chinese name :-). So far I only knew 'Dao' as a first name of the fictional character "Dao Lin-H'ay" that occurs in the German SF series 'Perry Rhodan' - before you ask: she definitely cannot be Chinese because she is a feline extraterrestrian. Josef 'Jupp' SCHUGT -- Your computer seems to have been infected by "nTOSkrnl.exe" (the "New Tramiel Operating System" is a revised version of the Atari ST/TT operating system and is known not to run on a PC). Please make sure to remove any file with that name... |
From: Limin Fu <fu....@gm...> - 2005-06-19 15:33:34
|
Hi! I spent some time to check things on Dao, all of them have nothing to do=20 with programming language. The only thing worried me is DAO(Data Access=20 Object), it turn out to be an older technology owned by Microsoft, it's not= =20 a language, but just a programming interface for accessing Access database.= =20 And on its website, it seems that DAO will be replaced by a technology=20 called ADO(ActiveX Data Objects):=20 http://msdn.microsoft.com/library/default.asp?url=3D/library/en-us/odeopg/h= tml/deovrmicrosoftofficedataaccesstechnologies.asp I don't worry about trademarks, I wonder if such single general word can be= =20 registered as a trademark. You mention TAO is a trademark, but it's=20 different from Tao, TAO stands for some kind of technology, but Tao not. So= =20 I think even if I continue to use Tao,=20 there should be no legal problem. And even TAO is registered as trademark b= y=20 different companies or people in different places(Google told me this)! Anyway, I'm not going to register the name of this language as a trademark,= =20 so I should be free to use any name. To avoid similar names on similar thin= g=20 is just a matter of clarity. I think changing from Tao to Dao should be the= =20 right thing. In the following days, I will try to register a new sourceforge project wit= h=20 the new name, hopefully, this is the last time I do this kind of things^_^.= =20 And within two months, I will make a new release with the new name and the= =20 new multi-threading feature! Cheers, Limin |
From: Limin Fu <fu....@gm...> - 2005-06-19 10:08:24
|
SGkhCgpUaGUgbmFtZSBvZiB0aGUgbGFuZ3VhZ2UgaXMgc29tZXRoaW5nIGRpc3R1cmJlZCBtZSBm cm9tIHRpbWUgdG8gdGltZS4gSSAKZm91bmQgaXQncyB2ZXJ5IGhhcmQgdG8gZmluZCBhIGdvb2Qg bmFtZSBmb3IgaXQsIGl0IHNlZW1zIGdvb2QgbmFtZXMgYXJlIAphbHdheXMgdXNlZCBieSBzb21l Ym9keSBmb3Igc29tZXRoaW5nIDotKC4gQmVmb3JlIEkgdXNlZCBhbm90aGVyIG5hbWUgWXVhbiAK Zm9yIHRoaXMgbGFuZ3VhZ2UsIGJ1dCBpdCBpcyBhbHNvIHVzZWQgYXMgY2VydGFpbiB0ZXJtaW5v bG9naWVzIGluIENoaW5lc2UoCmUuZy4gWXVhbiBsYW5ndWFnZSwgYWxzbyBtZWFucyBtZXRhIGxh bmd1YWdlKSwgaW4gYWRkaXRpb24sIEkgZm91bmQgaWYgCmRpZmZpY3VsdCBmb3Igbm9uLWNoaW5l c2UgdG8gcHJvbm91bmNlIGl0IGNvcnJlY3RseS4KCkl0IGhhcyBiZWVuIHBvaW50ZWQgb3V0IG9u Y2UgYmVmb3JlIHRoYXQgdGhlcmUgaXMgYW5vdGhlciBsYW5ndWFnZSBjYWxsZWQgClRBTywgeW91 IGFyZSB0aGUgc2Vjb25kLCBzbyBub3cgSSB0aGluayBpdCdzIGEgYmV0dGVyIGlkZWEgdG8gY2hh bmdlIHRoZSAKbmFtZSwgb3RoZXJ3aXNlLCBpbiB0aGUgZnV0dXJlLCB3aGVuIHRoaXMgVGFvIGxh bmd1YWdlIGJlY29tZSBtb3JlIGtub3duLCAKbW9yZSBwZW9wbGUgd2lsbCByZWFsbHkgZ2V0IGNv bmZ1c2VkLgoKU28gSSB0aGluayBJIHdpbGwgY2hhbmdlIHRoZSBuYW1lIGFnYWluIChZdWFuLT5U YW8tPlghKSwgSSB3YW50IHRoaXMgaXMgdGhlIApsYXN0IHRpbWUgdG8gY2hhbmdlIHRoZSBuYW1l Xl9eLiAKCk9uZSBjYW5kaWRhdGUgbmFtZSBpcyBEYW8sIHdoaWNoIGlzIGVzc2VudGlhbGx5IHRo ZSBzYW1lIGFzIFRhbyBpbiBDaGluZXNlLCAKRGFvIGlzIHRoZSBvZmZpY2lhbCBwcm9ub3VuY2F0 aW9uIG9mIHRoYXQgQ2hpbmVzZSB3b3JkLCB3aGlsZSBUYW8gdGhlIGlzIHRoZSAKcHJvbm91bmNh dGlvbiBpbiBzb21lIGRpYWxlY3QuIElmIEkgdXNlIERhbywgSSBkb24ndCBuZWVkIHRvIGNoYW5n ZSBpdHMgCkNoaW5lc2UgbmFtZSA6LSkuIEkgc2VhcmNoZWQgd2l0aCBHb29nbGUsIHRoZSBvbmx5 IHRoaW5nIHJlbGF0ZWQgdG8gY29tcHV0ZXIgCnNjaW5jZSB3aXRoIG5hbWUgREFPIChub3QsIERh bykgaXMsIERhdGEgQWNjZXNzIE9iamVjdCwgaXQncyBhIGRhdGFiYXNlIApxdWVyeSBtb2RlbCwg YSBmZXcgKHZlcnkgZmV3KSB3ZWJwYWdlcyBjYWxsIGl0IERBTyBxdWVyeSBsYW5ndWFnZSBvciBE QU8gCmxhbmd1YWdlLiBJIHRoaW5rIGlmIEkgdXNlIERhbyBhcyB0aGUgbmFtZSBvZiB0aGUgc2Ny aXB0aW5nIGxhbmd1YWdlLCB0aGVyZSAKc2hvdWxkIGJlIGxpdHRsZSBjaGFuY2UgdG8gY29uZnVz ZSBwZW9wbGUgOi0pLgoKSWYgSSBoYXZlIHRvIHVzZSBhIG5hbWUgb3RoZXIgdGhhbiBEYW8sIEkg dGhpbmsgVGFkYW8oVGhlIEFjZSBEYW9eX14pIGNvdWxkIApiZSBhbiBvcHRpb24sIGxpa2UgVGhl IEFjZSBPcmIoVEFPKS4gCgpMaW1pbgoKT24gNi8xNi8wNSwgSm9zZWYgJ0p1cHAnIFNDSFVHVCA8 anVwcEBnbXguZGU+IHdyb3RlOgo+IAo+IEhpIQo+IAo+IFRBTyBpcyBhIHRyYWRlbWFyayBvZiBB bGVuaWEgU3BhemlvIFMucC5BLiB0aGF0IGlzIHVzZWQgYXMgdGhlIG5hbWUgb2YKPiBhIHByb2dy YW1taW5nIGxhbmd1YWdlLiBUbyBtYWtlIGNvbmZ1c2lvbiBwZXJmZWN0IHRoYXQgYWltcyBhdAo+ IHNjaWVudGlmaWMgdXNlLiBGb3IgbW9yZSBzZWU6Cj4gCj4gaHR0cDovL3d3dy16ZXV0aGVuLmRl c3kuZGUvYXBlL2h0bWwvQVBFbWlsbGUvRG9jdW1lbnRhdGlvbi9Tb2Z0d2FyZS9UQU8vCj4gCj4g T2J2aW91c2x5IGV2ZW4gaWYgb25lIGRvZXMgbm90IGZlYXIgdHJhZGVtYXJrIGlzc3VlcyB0aGUg cHJvYmxlbQo+IGNoYW5jZXMgYXJlIGdvb2QgdG8gY29uZnVzZSBib3RoIGxhbmd1YWdlcyBhdCBm aXJzdCBzaWdodC4KPiAKPiBIb3VzdG9uLCB3ZSd2ZSBnb3QgYSBwcm9ibGVtLi4uCj4gCj4gVHdv IHJlbWFya3M6Cj4gCj4gREVTWSBtZWFucyAnRGV1dHNjaGVzIEVsZWt0cm9uZW4tU1luY2hyb3Ry b24nIC0gJ0dlcm1hbiBlbGVjdHJvbgo+IHN5bmNocm90cm9uJwo+IAo+ICJUaG91IHNoYW4ndCBj YWxsIHRoeSBsYW5ndWFnZSAndGFvJyIgZXNzZW50aWFsbHkgbWVhbnMgdGhlIHNhbWUgYXMKPiAi ZG8gbm90IGNhbGwgeW91ciBsYW5ndWFnZSAndGFvJyIgYnV0IGlzIHdyaXR0ZW4gaW4gdGhlIGxh bmd1YWdlIG9mCj4gdGhlIHRlbiBjb21tYW5kbWVudHMgKCJ0aG91IHNoYWxsIG5vdCBraWxsIiwg Imhvbm9yIHRoeSBtb3RoZXIgYW5kIHRoeQo+IGZhdGhlciIsIC4uLikuCj4gCj4gSm9zZWYgJ0p1 cHAnIFNDSFVHVAo+IC0tCj4gWW91ciBjb21wdXRlciBzZWVtcyB0byBoYXZlIGJlZW4gaW5mZWN0 ZWQgYnkgIm5UT1Nrcm5sLmV4ZSIgKHRoZSAiTmV3Cj4gVHJhbWllbCBPcGVyYXRpbmcgU3lzdGVt IiBpcyBhIHJldmlzZWQgdmVyc2lvbiBvZiB0aGUgQXRhcmkgU1QvVFQKPiBvcGVyYXRpbmcgc3lz dGVtIGFuZCBpcyBrbm93biBub3QgdG8gcnVuIG9uIGEgUEMpLiBQbGVhc2UgbWFrZSBzdXJlIHRv Cj4gcmVtb3ZlIGFueSBmaWxlIHdpdGggdGhhdCBuYW1lhQo+IAo+IAo+IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBTRi5OZXQgPGh0dHA6 Ly9TRi5OZXQ+IGVtYWlsIGlzIHNwb25zb3JlZCBieTogRGlzY292ZXIgRWFzeSBMaW51eCAKPiBN aWdyYXRpb24gU3RyYXRlZ2llcwo+IGZyb20gSUJNLiBGaW5kIHNpbXBsZSB0byBmb2xsb3cgUm9h ZG1hcHMsIHN0cmFpZ2h0Zm9yd2FyZCBhcnRpY2xlcywKPiBpbmZvcm1hdGl2ZSBXZWJjYXN0cyBh bmQgbW9yZSEgR2V0IGV2ZXJ5dGhpbmcgeW91IG5lZWQgdG8gZ2V0IHVwIHRvCj4gc3BlZWQsIGZh c3QuIGh0dHA6Ly9hZHMub3Nkbi5jb20vP2FkX2lkdDc3JmFsbG9jX2lkFjQ5MiZvcGNsaWNrCj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBUYW9zY3Jp cHQtbGFuZyBtYWlsaW5nIGxpc3QKPiBUYW9zY3JpcHQtbGFuZ0BsaXN0cy5zb3VyY2Vmb3JnZS5u ZXQKPiBodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby90YW9zY3Jp cHQtbGFuZwo+Cg== |
From: Josef 'J. S. <ju...@gm...> - 2005-06-17 20:19:01
|
Hi! TAO is a trademark of Alenia Spazio S.p.A. that is used as the name of a programming language. To make confusion perfect that aims at scientific use. For more see: http://www-zeuthen.desy.de/ape/html/APEmille/Documentation/Software/TAO/ Obviously even if one does not fear trademark issues the problem chances are good to confuse both languages at first sight. Houston, we've got a problem... Two remarks: DESY means 'Deutsches Elektronen-SYnchrotron' - 'German electron synchrotron' "Thou shan't call thy language 'tao'" essentially means the same as "do not call your language 'tao'" but is written in the language of the ten commandments ("thou shall not kill", "honor thy mother and thy father", ...). Josef 'Jupp' SCHUGT --=20 Your computer seems to have been infected by "nTOSkrnl.exe" (the "New Tramiel Operating System" is a revised version of the Atari ST/TT operating system and is known not to run on a PC). Please make sure to remove any file with that name=E2=80=A6 |
From: Josef 'J. S. <ju...@gm...> - 2005-06-16 16:13:04
|
Hi! A (more or less) recent freshmeat announcement pointed me to a programming language called 'Frink'. It is written in Java and has some interesting features that perhaps may inspire further development of Tao. > Frink is a practical calculating tool and programming language > designed to help us all to better understand the world around us, to > help us get calculations right without getting bogged down in the > mechanics, and to make a tool that's really useful in the real > world. > > Tracks units of measure (feet, meters, tons, dollars, watts, etc.) > through all calculations and allows you to add, subtract, multiply, > and divide them effortlessly, and makes sure the answer comes out > correct, even if you mix units like gallons and liters. > > Arbitrary-precision math, including huge integers and floating-point > numbers, rational numbers (that is, fractions like 1/3 are kept > without loss of precision,) and complex numbers. > > Advanced mathematical functions including trigonometric functions > (even for complex numbers,) factoring and primality testing, and > base conversions. > > Unit Conversion between thousands of unit types with a huge built-in > data file. > > Date/time math (add offsets to dates, find out intervals between > times,) timezone conversions, and user-modifiable date formats. > > Translates between several human languages, including English, > French, German, Spanish, Portuguese, Dutch, Korean, Japanese, > Russian, Chinese, Swedish, and Arabic. > > Calculates historical buying power of the U.S. dollar and British > pound. > > Calculates exchange rates between most of the world's currencies. > > Powerful Perl-like regular expression capabilities and text > processing. > > Supports Unicode throughout, allowing processing of almost all of > the world's languages. > > Supports Interval Arithmetic (also known as Interval Computations) > in calculations, allowing you to automagically calculate error > bounds and uncertainties in all of your calculations. > > Reads HTTP and FTP-based URLs as easily as reading local files, > allowing fetching of live web-based data. > > Frink is a full-fledged programming language with arrays, > dictionaries, functions, loops, even object-oriented programming and > self-evaluation. > > Frink allows Object-Oriented Programming, which allows you to create > complex data structures that are still easy to use. Unfortunately I am not yet sure about the license of Frink - it seems as if one has to look at the jar file to find it out :-< Frink is at http://futureboy.homeip.net/frinkdocs/ All for now, Josef 'Jupp' SCHUGT -- Your computer seems to have been infected by "nTOSkrnl.exe" (the "New Tramiel Operating System" is a revised version of the Atari ST/TT operating system and is known not to run on a PC). Please make sure to remove any file with that name... |
From: Limin Fu <fu....@gm...> - 2005-06-13 09:33:34
|
Hi! What mail user agent (aka mail client) do you use? I use wanderlust > and rather happen to send answers to too many recipents - Per default > it addresses answers both to the author of a message and to the list > the messages was delivered to - which only makes limited sense because > the author of a message usually is subscribed to that list and > therefore receives the message twice. That is one of the few things > mutt is better at :-) Usually I use the web browser to check and send email in my gmail acount, I= =20 find it is enough convenient, because it can group emails according to=20 topics, like a forum does. Another reason is, when I register this gmail=20 account, it didn't support POP client, though now it does. Last time I replied your post in the list by clicking "reply" instead of=20 "reply all", so it just sent it to you. This time I clicked "reply all", an= d=20 you will receive it twice :) BTW: You should consider not to use TOFU - (your) *t*ext *o*n-top, > *f*ull-quote *u*nderneath (it)[1]. There are several reasons why one > should not use it. The most important (at least to me) is that > switching back and forth between the answer and the original message > takes more time and is more confusing than reading the question that > is immediately followed by the answer. Yes, sometime I also reply in this way of breaking the original message and= =20 inserting answers, especially when there are too many questions to answer.= =20 It's really more convinient to discuss something by email in this way. The best way of finding lacking features of a programming language is > writing programs in it. If one finds out that something cannot be done > one has to decide if one wants to implement the feature(s) require for > that task or to refrain from supporting it.=20 You are right, that's what I'm doing. I started to use Tao language in my= =20 work since March, since then, Tao really improved a lot.=20 Recursion is such a > feature: FORTRAN 77 does not support it - by intention. Such design > decisions should not to be fixed for eternity but should be overhauled > now and then. Guess what? Fortran 90 *does* support recursion. I think there were something similar in Tao, which I thought were not reall= y=20 necessary, but in the end, when I started to writing program in Tao, I foun= d=20 it was important to have them in Tao :-) [1] The correct etymology of the acronym is German "Text oben > Fullquote unten" (I tried my best to provided an appropriate > translation that results in the same acronym). You did it! Limin |
From: Josef 'J. S. <ju...@gm...> - 2005-06-10 19:16:52
|
Hi! At Mon, 6 Jun 2005 11:08:35 +0200, Limin Fu wrote: > This is a re-sended message which was not previously sent to this > mailing list by mistake :) What mail user agent (aka mail client) do you use? I use wanderlust and rather happen to send answers to too many recipents - Per default it addresses answers both to the author of a message and to the list the messages was delivered to - which only makes limited sense because the author of a message usually is subscribed to that list and therefore receives the message twice. That is one of the few things mutt is better at :-) BTW: You should consider not to use TOFU - (your) *t*ext *o*n-top, *f*ull-quote *u*nderneath (it)[1]. There are several reasons why one should not use it. The most important (at least to me) is that switching back and forth between the answer and the original message takes more time and is more confusing than reading the question that is immediately followed by the answer. > I understand your motivation for having such capabilities. Your > suggestions are very good, by myself alone I can't have prevision > for all possible important features for the language. Thank you for > the suggestions :-) The best way of finding lacking features of a programming language is writing programs in it. If one finds out that something cannot be done one has to decide if one wants to implement the feature(s) require for that task or to refrain from supporting it. Recursion is such a feature: FORTRAN 77 does not support it - by intention. Such design decisions should not to be fixed for eternity but should be overhauled now and then. Guess what? Fortran 90 *does* support recursion. [1] The correct etymology of the acronym is German "Text oben Fullquote unten" (I tried my best to provided an appropriate translation that results in the same acronym). All for now, Josef 'Jupp' SCHUGT --=20 Your computer seems to have been infected by "nTOSkrnl.exe" (the "New Tramiel Operating System" is a revised version of the Atari ST/TT operating system and is known not to run on a PC). Please make sure to remove any file with that name=E2=80=A6 |
From: Limin Fu <fu....@gm...> - 2005-06-06 11:31:22
|
Hi! To solve the problem pointed out be Jupp, I have enable read() function to= =20 read multi-lines until a user-define "EOF" is met in a _single_ line. The= =20 syntax is like the following: # from standard input: string =3D read( "<<MyEOF" ); # the user-defined "EOF" should be prefixed b= y=20 "<<" read( string, "<<MyEOF" ); # the order of the parameters is not important, # but should not be more than 2. # from files: string =3D file.read( "<<MyEOF" ); file.read( string, "<<MyEOF" ); The new binaries for linux can be downloaded from cvs in SF: http://cvs.sourceforge.net/viewcvs.py/taoscript/TaoScript/bin/ (pay attention to the time tag of the files) Cheers, Limin |
From: Limin Fu <fu....@gm...> - 2005-06-06 09:09:18
|
This is a re-sended message which was not previously sent to this mailing= =20 list by mistake :) Hi! The feature in your first question is not implemented, I will do it.=20 The command line arguments are stored in an array named COMARG, which has t= o=20 be accessed by the current namespace"this", namely, this.COMARG or=20 this::COMARG.=20 This command argument accessing was not elegantly support, probably it will= =20 be changed. And probably in the following ways, "this" will be given the=20 same meaning as in C++ to mean the current object, the current namespace=20 will be accessed with "here"; A special namespace will be used to store=20 command line arguments, environment variables etc... For convenience,=20 accessing classes and routines in a namespace will not require expilicit=20 specifying its namespace, they will be searched automatically from current= =20 namespace and other namespace accessable from the current namespace. "rot[rot.#] =3D x" fails on purpose ( I should have let it give a warning),= =20 since "rot" is an array. If "rot" and "x" are strings, "rot[rot.#] =3D x" w= ill=20 insert "x" to the end of "rot". This kind of operation is not supported for= =20 array because if "x" is also an array, "rot[rot.#] =3D x" will be ambiguous= ,=20 since "x" can be inserted into "rot" as a whole or element by element. I understand your motivation for having such capabilities. Your suggestions= =20 are very good, by myself alone I can't have prevision for all possible=20 important features for the language. Thank you for the suggestions :-) Limin FU On 6/1/05, Josef 'Jupp' SCHUGT <ju...@gm...> wrote: >=20 > Hi! >=20 > At the end of this message I added rot13 written in Tao. If you do not > know it: rot13 is a Cesar encoding; an implementation of rot13 using > standard Unix tools is >=20 > tr '[a-zA-Z]' '[n-za-mN-ZA-M]' >=20 > The Tao script works flawlessly - for a single line. I am an old Linux > hand so I have two questions not answered by the documentation. >=20 > - How to make the program iterate over all input provided via > standard input unless EOF is encountered?=20 >=20 > - How to access command line arguments? >=20 > The reason is obvious: Without these two means it is impossible to > write Unix style tools in Tao that are capable of both processing > input streams and files. Bad.=20 >=20 > I am pretty sure most people who know why this is bad but perhaps not > all do. I therefore describe my motivation for having such > capabilities. >=20 > A typical problem when dealing with data is this: >=20 > You have to implement operation F on data of the same type that is > provided by different sources and need to be provided to other people. > While the data are in principle always of the same type you have to > deal with input formats i1, i2, i3, ..., iN and output formats o1, o2,=20 > o3, ... oM. If you implement all functionality in one program you end > up with always modifying the program whenever a new source is added. > Bad. A data processing program should only be modified if the > information it processes, the information it extracts or the way in=20 > which the information input is transformed into the information output > (i.e. the algorithm) changes but it should *never* need to be modified > if the representation of the data is changed without actually > modifying the informational content. It's simply the "never change a=20 > winning team" (aka "never touch a running system") issue. It is much > better to have filters that transform i1, i2, i3, ..., iN into a > generic input format I, then process this input with a program that=20 > produces some generic output format O and have this output then > transformed by other filters into any of o1, o2, o3, ..., oM. >=20 > A great example of tools that follow this style is netpbm that comes > with filters that transform an awful lot of graphics formats into a=20 > PBM (a trivial graphics format) and others that transform PBM into an > awful lot of output formats (there are also programs that can do > quantization and the like so F is known to exist as well :-). If > netpbm does not support your format simply write two tools: One that=20 > transforms the format to PBM and one for the opposite direction. Now > netpbm supports your format. >=20 > Enough motivation, here's code (note that it does not work on EBCDIC > systems!): >=20 >=20 >=20 > a =3D read();=20 > orig =3D unpack(a); > rot =3D { }; > foreach(orig:x) { > if (x >=3D unpack("a")[0] && x <=3D unpack("z")[0]) { > x =3D (x + 13 - unpack("a")[0]) % 26 + unpack("a")[0];=20 > } else if (x >=3D unpack("A")[0] && x <=3D unpack("Z")[0]) { > x =3D (x + 13 - unpack("A")[0]) % 26 + unpack("A")[0]; > } > rot.insert(x); > } > print (pack(rot), "\n");=20 >=20 >=20 >=20 > Before I forget to ask: Does "rot[rot.#] =3D x" fail on purpose instead > of meaning the same as "rot.insert(x)"? >=20 > Josef 'Jupp' SCHUGT > -- > "NO" to the European constitution means "YES" to democracy, not "NO" to= =20 > Europe - presently Europe as a whole is governed by a central committee > while the parliament only has very limited power. Thank you, France. >=20 >=20 > ------------------------------------------------------- > This SF.Net <http://SF.Net> email is sponsored by Yahoo. > Introducing Yahoo! Search Developer Network - Create apps using Yahoo! > Search APIs Find out how you can build Yahoo! directly into your own > Applications - visit http://developer.yahoo.net/?fr=3Doffad-ysdn-ostg-q22= 005 > _______________________________________________ > Taoscript-lang mailing list > Tao...@li... > https://lists.sourceforge.net/lists/listinfo/taoscript-lang > |
From: Josef 'J. S. <ju...@gm...> - 2005-06-02 08:41:59
|
Hi! At the end of this message I added rot13 written in Tao. If you do not know it: rot13 is a Cesar encoding; an implementation of rot13 using standard Unix tools is tr '[a-zA-Z]' '[n-za-mN-ZA-M]' The Tao script works flawlessly - for a single line. I am an old Linux hand so I have two questions not answered by the documentation. - How to make the program iterate over all input provided via standard input unless EOF is encountered? - How to access command line arguments? The reason is obvious: Without these two means it is impossible to write Unix style tools in Tao that are capable of both processing input streams and files. Bad. I am pretty sure most people who know why this is bad but perhaps not all do. I therefore describe my motivation for having such capabilities. A typical problem when dealing with data is this: You have to implement operation F on data of the same type that is provided by different sources and need to be provided to other people. While the data are in principle always of the same type you have to deal with input formats i1, i2, i3, ..., iN and output formats o1, o2, o3, ... oM. If you implement all functionality in one program you end up with always modifying the program whenever a new source is added. Bad. A data processing program should only be modified if the information it processes, the information it extracts or the way in which the information input is transformed into the information output (i.e. the algorithm) changes but it should *never* need to be modified if the representation of the data is changed without actually modifying the informational content. It's simply the "never change a winning team" (aka "never touch a running system") issue. It is much better to have filters that transform i1, i2, i3, ..., iN into a generic input format I, then process this input with a program that produces some generic output format O and have this output then transformed by other filters into any of o1, o2, o3, ..., oM. A great example of tools that follow this style is netpbm that comes with filters that transform an awful lot of graphics formats into a PBM (a trivial graphics format) and others that transform PBM into an awful lot of output formats (there are also programs that can do quantization and the like so F is known to exist as well :-). If netpbm does not support your format simply write two tools: One that transforms the format to PBM and one for the opposite direction. Now netpbm supports your format. Enough motivation, here's code (note that it does not work on EBCDIC systems!): a = read(); orig = unpack(a); rot = { }; foreach(orig:x) { if (x >= unpack("a")[0] && x <= unpack("z")[0]) { x = (x + 13 - unpack("a")[0]) % 26 + unpack("a")[0]; } else if (x >= unpack("A")[0] && x <= unpack("Z")[0]) { x = (x + 13 - unpack("A")[0]) % 26 + unpack("A")[0]; } rot.insert(x); } print (pack(rot), "\n"); Before I forget to ask: Does "rot[rot.#] = x" fail on purpose instead of meaning the same as "rot.insert(x)"? Josef 'Jupp' SCHUGT -- "NO" to the European constitution means "YES" to democracy, not "NO" to Europe - presently Europe as a whole is governed by a central committee while the parliament only has very limited power. Thank you, France. |
From: Limin Fu <fu....@gm...> - 2005-05-19 22:06:28
|
Hi! On 5/18/05, Josef 'Jupp' SCHUGT <ju...@gm...> wrote: >=20 > Hi! >=20 > At Tue, 17 May 2005 17:15:04 +0200, Limin Fu wrote: >=20 > > class ClassInChinese >=20 > Klasse! >=20 > I should explain this: 'Klasse' is German for 'class'. As an > exclamation it means 'Great!' :-> >=20 > Problem: How to describe the character encoding used? Suggestionq an > initial line using the comment character of most scripting languages > as the first character reading something like this: >=20 > # charset=3Dutf-8 > # charset=3Diso2022-cn > # charset=3Diso8859-15 >=20 > The 'charset=3D' was taken from HTML. If the encoding for the keyword file and script file are the same, there is= =20 no need to specify the charset, the interpreter doesn't care what they=20 encoded, it just compares the bytes directly when necessary.=20 Indeed, it would be nice if it can allow users to specify the charset=20 explicitly, but to do this, it requires a decoder for each charset to map= =20 different charsets to a standard charset. So far I don't know how to do it,= =20 I don't know if it's possible to use the same decoders used by web-browsers= . However, it should be easy for people to use the same charset in the keywor= d=20 and script files, since all systems and editers have some kind of default= =20 charset for themselves. Even if some files happened to have different=20 charset, one can use web brower to open it, and copy&paste in an editor to= =20 save in certain charset. FU Limin |
From: Josef 'J. S. <ju...@gm...> - 2005-05-19 20:22:57
|
Hi! At Tue, 17 May 2005 17:15:04 +0200, Limin Fu wrote: > class ClassInChinese Klasse! I should explain this: 'Klasse' is German for 'class'. As an exclamation it means 'Great!' :-> Problem: How to describe the character encoding used? Suggestionq an initial line using the comment character of most scripting languages as the first character reading something like this: # charset=utf-8 # charset=iso2022-cn # charset=iso8859-15 The 'charset=' was taken from HTML. Josef 'Jupp' SCHUGT |
From: Limin Fu <fu....@gm...> - 2005-05-17 15:15:06
|
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 |
From: Limin Fu <fu....@gm...> - 2005-05-17 12:11:42
|
Now it's working, and the message posted to taoscript-lang in SF is also posted to TaoScript group on google! On 5/17/05, Limin Fu <fu....@gm...> wrote: >=20 > To see if the problem of posting from gmail account is fixed. > |
From: Limin Fu <fu....@gm...> - 2005-05-17 08:10:21
|
To see if the problem of posting from gmail account is fixed. |
From: Limin Fu <ful...@ya...> - 2005-05-07 11:49:12
|
test! Homepage for Tao Language: http://taoscript.sourceforge.net Tao Language project at sourceforge.net: http://sourceforge.net/projects/taoscript Yahoo! Mail Stay connected, organized, and protected. Take the tour: http://tour.mail.yahoo.com/mailtour.html |
From: Josef 'J. S. <ju...@gm...> - 2005-05-06 01:14:49
|
Hi! I am sorry, usually I set a subject before starting to write a message. This time I delayed this and - of course forgot to set one. Josef 'Jupp' SCHUGT |
From: Josef 'J. S. <ju...@gm...> - 2005-05-04 22:05:02
|
Hi! The problem that=20 > g++ (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6) fails to compile tao has not yet been solved but fortunately the Linux binary that comes with 0.9.0_1_beta is compatible to my system so I can work through the draft version of 'An_Introduction_to_Tao_Language.pdf'[1] Observations on Section 2.1 already are enough for a mail because two of them may be seen as an error in Tao :-| 1. Before starting to provide examples one should state that the semicolon at the end of a line is *required* and this even if one only provides one command. Some languages do not use any semicolons, others do not require them, others require them if on writes several commands on a line, others to separate commands (so that one does not need a semicolon for only one command) and others require them to end each command (even if it is the only one). Used to Ruby's and C's syntax I know both extremes. 2. Use of 'const'. I do not think it is a good idea to use 'const' for an object that can be modified afterwards. I think a word like 'freeze' would be more mnemonic. freeze c =3D "old"; c =3D "new" # Warning: Redefinition of frozen value freeze c =3D "new"; Note that the exclamation 'Freeze!' means 'Stop moving!' - one would typically hear it in restricted areas of the "use of deathly force permitted" type. 3. Lists. It should be noted that the last list element can be followed by a comma. This may seem unimportant but if you initialize an array using primes =3D { "Charly", "Juliet", "Mike", "Oscar", }; and want to provide the values in a sorted manner, it is very helpful that all lines can end in a comma - this makes it possible to use the editor's sort function without any post-editing (i.e. removing comma on last line, adding comma where it is missing). 4. Parentheses. It should be stated that they are not optinal in Tao. 5. number(). I do not think that the following is intended behavior: a=3D"ff"; b=3D"FF"; print(number(a,16), "\n"); print(number(b,16), "\n"); 255 -289 It is highly unexpected that a) the results are differnt and b) the second one negative. 6. unpack() behaves unexpectedly as well: a=3D"abc"; print(unpack(a), "\n"); b=3D"=E4=F6=FC"; print(unpack(b)); results in: { 97, 98, 99 } { -61, -92, -61, -74, -61, -68 } Now the latter cannot be. Of course using Unicode the umlauts map to *two* values but in no case the result should be negative. Let's take a look at the correct values and do a well educated guess on the reason for the discrepancy: ruby -e 'a=3D"=E4=F6=FC";(0..a.length-1).each{|n| puts a[n]}' 195 # 195 - 256 =3D -61 164 # 164 - 256 =3D -92 195 # 195 - 256 =3D -61 182 # 182 - 256 =3D -74 195 # 195 - 256 =3D -61 188 # 188 - 256 =3D -68 Guess has shown to be correct: It's the old signed char vs. unsigned char issue. Nothing SAR[2] cannot fix. [1] Nothing very serious but: I am no native speaker of English and yet I stumble over 'to Tao Language' - AFAIK one usually writes 'An Introduction to the Tao Language', 'An Introduction to Tao', 'Introducing Tao'. So much for now, Josef 'Jupp' SCHUGT |
From: Josef 'J. S. <ju...@gm...> - 2005-05-02 20:41:58
|
Hi! Seemingly sourceforge was a bit slow. It took some time before I received the message on needs to answer to subscribe this list. I became interested in Ruby by a posting to c.l.ruby/ruby-talk. Unfortunately I did not manage so far to actually try out Tao - it does not compile on my system 8-| Josef 'Jupp' SCHUGT -- Intended side-effect of this message: Have a reference message for setting up a procmail recipe :-) |
From: Limin Fu <ful...@ya...> - 2005-01-11 14:02:23
|
A test of mailing list. ===== Homepage for Tao Scripting Language: http://taoscript.sourceforge.net Tao Scripting Language project at sourceforge.net: http://sourceforge.net/projects/taoscript __________________________________ Do you Yahoo!? Yahoo! Mail - 250MB free storage. Do more. Manage less. http://info.mail.yahoo.com/mail_250 |