r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Topaz] The Topaz Language

Gabriele
20-Jul-2011
[66x6]
Brian: a clarification, Topaz is both an interpreter and a compiler, 
and although you can compile whenever you need speed (so in principle 
there won't be much need to manually optimize functions for the interpreter), 
in most cases you're running in an interpreter very like REBOL.
The issue of parens: i think that no matter what the precedence rules 
are, you'll find cases where you need parens.


Now, one of the things I want to try doing in Topaz is TCO, so maybe 
parens will have less overhead in the future than in REBOL, but it's 
hard to predict whether this is possible at all in the interpreter. 
They will probably not have significant overhead if you compile.


I vote we worry about readability first though, there's always going 
to be alternatives when performance is required. (Eg. the fact that 
something is available as an op! does not mean that it is not also 
available as a regular function; like in REBOL you have both AND 
and AND~. In fact, Topaz requires that you pass a function! or native! 
to make op! - so such function version has to exists anyway.)
Max: if append a  "ouch" =  append b "ouch"

I wonder how would you ever find that readable.
(TCO = taill call optimization)
*tail
Note, it would be possible to use any unicode character for the IN 
etc. ops to make them stand out visually... but then they would not 
be easy to type.
Geomol
20-Jul-2011
[72x2]
My C book is open at page 53 too most of the time. Operator precedence 
is crap!
That might be a drastic announcement. Letting = have higher precedence 
than the rest could be a good idea, but might be hard to implement 
and/or have performance hit.
Kaj
20-Jul-2011
[74]
I think Max wants it to have lower precedence :-)
Geomol
20-Jul-2011
[75]
Ah, sure. :)
Kaj
20-Jul-2011
[76x2]
Having no precedence is the most brilliant way to solve all precedence 
disputes :-)
The thing that mesmerised me most in the Dragon Book was the implementation 
of expression evaluation with precedence rules. I think since then, 
everyone was hypnotised to think that it needs to be implemented 
in every language. Maybe Carl never read the book :-)
Geomol
20-Jul-2011
[78x2]
I wonder, who first introduced operator precedence in math?
http://mathforum.org/library/drmath/view/52582.html


Mathematicians needed to write ax^2 + bx + c as easily as possible.
Kaj
20-Jul-2011
[80]
Nice find
Gabriele
21-Jul-2011
[81x2]
operator precedence makes sense... but it is not worth the trouble.
I guess the common use:

   if 'word in context [...]

makes sense, while the common use:

   var: (...) to string!


is a bit unpleasant. OTOH, maybe this'd give a reason to the various 
to-* functions, so you'd use

    var: to-string ...

still, "to-string" is not a verb... so, i'm not convinced yet. :/
Endo
21-Jul-2011
[83]
But if TO is an OP then var: (...) to string! looks ok. Just like
var: 3 + 5

does not lead var is 3. variable assigment has lower precedence than 
any other.
Gabriele
22-Jul-2011
[84]
Endo: think about the fact that the (...) is usually a long expression, 
but more importantly, there is no clue that TO is an op rather than 
a function, other than it not being a verb (which is not obvious).


The IN case is much easier to read, and IN is used in a similar way 
in other languages. TO might confuse both rebolers and non-rebolers... 
:)


I still like the idea of them being ops, i'm just worried about it 
being too unreadable and forcing parens most of the time. would anyone 
prefer using some kind of symbol? eg. similar to the <- suggested 
above.
Endo
22-Jul-2011
[85]
Normally all op!s are somehow related with math, as we can consider 
equality tests (=, !=, > etc) and logical operations (xor, and etc.) 
as math operations.

TO and IN are different by this way, they are not related any math 
operation, they don't test, they don't calculate anything.

And one of them should have a precedence the other, or we should 
use parens, or can we say always left-to-right:

>> o: context [a: "3"]
>> 'a in o to integer!
Kaj
22-Jul-2011
[86]
I like TO better than a symbol, which would also be non-standard, 
but maybe we can have both
Bas
12-Aug-2011
[87]
Gabriele will give a presentation about Topaz during Software Freedom 
Day 2011, wednesday 14th september, at the Centrum Wiskunde & Informatica 
(CWI), Science Park Amsterdam: http://www.softwarefreedomday.eu/
Dockimbel
12-Aug-2011
[88]
That is a very good news!
shadwolf
12-Aug-2011
[89x7]
I like this idea print  "hello " .  myvar . " !" or print "hello 
" + myvar + " !"  over the print rejoin ["hello " myvar " !" ] ... 
In web area a rebol inspired language using more "advanced" less 
pompous string concatenating method will be noticed I think...
I like the perl way to deal with bash expression on linux ...
myvar=`ls  /home/myname/mydir`  foreach file myvar [ print "file 
name: " + file ]
arriving to do something like that in a rebol inspired script language 
would be terrific ... I know I'm just giving some thought and no 
code ... well ... I have not your talent for those thing :)
oh last remark ... I noticed most of the time scripting language 
tends to be differenciated by their affectation symbol  example lua 
use var ::= 1 rebol var: 1 perl var= 1, PL/SQL var:=1;  etc ... I 
like the rebol way of affectation and since that one of the sign 
of a rebol script I think it's important to keep in in spin off languages 
...
ok one last remark with red, borron, and red isn't that too much 
spin off language to handle for this community ? I understand there 
is a lot to research on this very interesting field ... but don't 
you fear that those project  will in a short term stop growing cause 
complexity level reach and there is noone to keep them on the progressing 
curve. Can eventually  those project be merged into one single project 
keeping the other two less advanced  as research ground and the BIG 
thing being granted with the best ideas proven in the "research" 
project ?
I fear that being 3 totally seperated projects on their own they 
won't liveon ... and somehow collide  ... Ok I'm not clear on this 
...
Gabriele
13-Aug-2011
[96x2]
Shadwolf, something like "bla" . "bla" . "bla" cannot be optimized 
in an interpreter like Topaz, moreover, why the hell should i have 
to write . a hundred times and have an error when i forget it? So, 
no, you won't get this in Topaz.
Re: SFD: I hope to have something to demo as well, but i can't guarantee 
that as Topaz still has a long way to go before 1.0. Worst case, 
i'll just talk about it in general and accept questions.
shadwolf
16-Aug-2011
[98x2]
gabriele I think the perl/php  apraoch print "myvqr bla blah myothervar" 
is not in your plans neither ... Well I gived you just a list of 
the kind of things I think rebol could do better no offense ...
take them as overall general comments and particular taste of someone 
used to program in around 20 languages ...
Gabriele
21-Aug-2011
[100x2]
I've significantly reorganized the Topaz source code. A bit more 
manageable this way.
https://github.com/giesse/Project-SnowBall
Gabriele
25-Aug-2011
[102]
just added ERROR!... next: optional function arguments etc. I think 
i'll have enough to show at the SFD :-)
Kaj
25-Aug-2011
[103]
We're looking forward to it
Gabriele
27-Aug-2011
[104x3]
Pushed optional function arguments (interpreter only right now).
For a sneak peak of how it works, see the comments in: https://github.com/giesse/Project-SnowBall/blob/master/topaz/types/function.topaz
You can play with it at http://www.colellachiara.com/soft/topaz/try-topaz.html
Gabriele
12-Sep-2011
[107]
It was a race against time... but Topaz is now ready for the SFD. 
:-) See Github for all the changes.

Now... i need to put together a couple slides... :-)
Bas
12-Sep-2011
[108]
Great!
GrahamC
12-Sep-2011
[109]
And the slides are going up on github too ?
Gabriele
12-Sep-2011
[110]
The slides will be on the web, hopefully even before my presentation, 
but in the worst case as soon as i'm back.
Kaj
13-Sep-2011
[111]
I'll try to report the Topaz and Red talks here tomorrow
GrahamC
13-Sep-2011
[112]
The talk is 2day?
Bas
14-Sep-2011
[113x2]
Yes.
Less than twelve hours to go :)
Henrik
14-Sep-2011
[115]
http://www.colellachiara.com/soft/topaz/SFD2011.html