World: r3wp
[Dialects] Questions about how to create dialects
older newer | first last |
Fork 27-Jun-2010 [626] | I am driven largely by spite for Perl, to be honest. |
BrianH 27-Jun-2010 [627] | Spite for Perl is a noble motivation :) |
Fork 27-Jun-2010 [628] | But also a desire to get "fringe"/"creative" people to become aware of Rebol. |
BrianH 27-Jun-2010 [629] | That's why making an ultra-cool demo is a priority :) |
Fork 27-Jun-2010 [630x5] | @BrianH, continuing: So I thought "well, Rebol can uncompress, why not make an operator that takes compressed data and uncompresses it". I was surprised that compress was returning significantly larger data than the input for small inputs. What's up with that? |
I assume it's because of using a standard that expected the "do not compress" to be taken care of at a higher level. | |
In any case, the single-character operators in Rebmu are a tricky bunch for reasons I explained above, but one case that they do pop up in is assignments where the left hand is an all-caps target (set-word) and the right hand is a string or block or something. That's when you can get them easily. | |
Although this bunch is in flux, I tried making [^ foo] map to [to-string debase foo]. This means S^"badfjakshdg--" (or whatever) will give you the un-base-64'd string. | |
s: ^ "badfjakshdg--" | |
BrianH 27-Jun-2010 [635] | COMPRESS uses the Deflate algorithm, plus an integer on the end for the length of the uncompressed data, for allocation purposes. It has the same limitations as any other Deflate compressor (zip, gzip, zlib, png, ...). |
Ladislav 27-Jun-2010 [636] | I think there's a big gap between the usefulness of a spanish or Italian localization and a chinese localization. - actually not, as Jerry mentioned some time ago, there are exactly the same reasons why it is not useful |
Fork 27-Jun-2010 [637] | @Ladislav: Tonight I was discussing the Firefox/Mozilla thing with my roommate. It was an issue where Mozilla was building a lot of functional stuff, but they didn't have quite the ability or agility to see and take advantage of opportunities. Some weird dude came along and said "Hey, I'm gonna chop all this stuff off, and insert this stuff, and call it 'Firefox', and let's see what the heck happens..." |
BrianH 27-Jun-2010 [638] | It would have enough overhead that it should not be there by default - LOAD does enough as it is. However, it might be an interesting tool for somebody, and a great demonstration. And it can be an add-on module, which makes it an even better demonstration. |
Fork 27-Jun-2010 [639x3] | The layman today does not know what Mozilla even is. |
Despite it being the very foundation of something they all know -- Firefox. | |
In my opinion, Rebol is a more significant and interesting technical artifact than Mozilla. Bear in mind I have a lot of context, so I'm not saying it's the greatest technology ever, I'm just going to say that on many axes it is essentially the best in its class that we know of. | |
BrianH 27-Jun-2010 [642] | Actually, they called it Firebird, and we saw what happened: They had to change the name again to Firefox :) |
Fork 27-Jun-2010 [643] | :) I skipped a step. |
BrianH 27-Jun-2010 [644] | One interesting related trick: The EXPORT keyword in R3 modules is done with a similar preprocessor in the MAKE-MODULE function. Just a few lines, and it works like magic :) |
Fork 27-Jun-2010 [645] | Bringing it back to dialects, I am serious with the Rebmu thing. I'm fully aware it *looks* like a joke but it is not. |
Rebolek 27-Jun-2010 [646] | Wasn't the first name Phoenix? |
Fork 27-Jun-2010 [647x2] | I'm not compressing random digits here, I'm trying to make a domain demo of a domain that people are (for reasons better or worse) rather interested in. |
And it pains me to read some of these code golf solutions, I know that as with the connect-the-dots I can beat perl and still write coherent code. | |
BrianH 27-Jun-2010 [649] | That's why I like the idea of unrebmu as an implementation strategy - it makes for a more impressive demo :) |
Fork 27-Jun-2010 [650x6] | You guys can do better, you know the language better. I only just learned "Any" and "All". I know the gist of Rebol but I've clocked not too many hours with it, this Rebmu thing is the most time I've ever spent with it to be honest. |
I probably spent less than a week on that Rubol thing, which I think isn't a bad idea either: http://hostilefork.com/rubol/ | |
I spent not only time, but money paying some guy to 3D render this darn logo: http://www.rebol.net/wiki/REBOL_logo | |
As well as experimenting with making the thing out of clay: http://hostilefork.com/shared/rebol/clayrebol_idea.jpg | |
As per Jerry Maguire... "Help me, help you!" :) | |
Moving to chat. | |
Reichart 30-Jun-2010 [656x2] | You do need some award for the Clay one. And the WHOLE photo is simply cool unto itself... |
You do need some award for the Clay one. And the WHOLE photo is simply cool unto itself... | |
gcaplan 13-Jan-2011 [658] | I've a notion to build a business rules parser in Rebol. But as a self-taught hacker with no background in computer science, I'd welcome any advice on flattening the learning curve. The docs cover the low level parsing details well enough, but I'm looking for enlightenment on the higher level issues involved in designing a little domain level language. Given that Carl is pushing Dialects as the Big Idea in Rebol, it's surprisingly difficult to find much on the topic in the Rebol community. Or am I missing something? I'd welcome any Rebol specific or generic resources to help me get up to speed on the whole DSL thing... |
Henrik 13-Jan-2011 [659] | I agree mostly. I would like to see some generic parse rules built into REBOL for general use. |
Ladislav 13-Jan-2011 [660] | geoff, did you read http://en.wikibooks.org/wiki/REBOL_Programming/Language_Features/Parse/Parse_expressions , or some other topics in the book? |
gcaplan 13-Jan-2011 [661] | As I say, the book is fine on the low-level details - it's the higher level issues of designing an effective and usable dialect that I'm hoping to explore |
Ladislav 13-Jan-2011 [662] | For me, it is usually more difficult to design a meaningful dialect, than to parse it. |
gcaplan 13-Jan-2011 [663] | That's my point, I think. As I'm starting from scratch, I'm looking for principles, examples - anything that would help me get up to speed... |
Ladislav 13-Jan-2011 [664] | Examples are the available dialects. |
gcaplan 13-Jan-2011 [665] | The thing that's interesting about business rules is the need to mix declaratory configuration with some functional-style code. So you end up with chains of reasoning involving a mix of data and code. Which is why I though Rebol might be a good way to go. |
GrahamC 13-Jan-2011 [666] | I suggest you think about what you want to do .. write it out as sentences and then refine them |
gcaplan 13-Jan-2011 [667x2] | I guess I should take a look, at the existing dialects, but they're a bit intimidating for a newbie. What would you suggest as Best of Breed examples? Something not too huge, for preference. |
Graham - simple and practical - just the kind of thing I'm looking for | |
GrahamC 13-Jan-2011 [669x3] | Did you look at Carl's examples? |
Also I think the forth dialect examples would also be quite good | |
VID as an example is probably too intimidating | |
gcaplan 13-Jan-2011 [672x2] | Where are Carl's examples - you mean the stuff in the overview? It's pretty minimal. If there's something I've missed I'd appreciate a link |
Also, where is the forth dialect - not coming up on Google... | |
GrahamC 13-Jan-2011 [674x2] | forth is a language ... which also specialises in creating domain specific languages |
It is used in robotics, control systems ( originally astronomy, telescopes ) | |
older newer | first last |