Home   Archive   Permalink



Dialect Creation Tutorial?

Is there a simple tutorial for creating DSLs or dialects? I keep hearing how this is or of the selling points of Rebol, but don't see it anywhere (trying to avoid learning via reverse engineering). I probably just missed it, but if not, maybe someone could show me a trivial example such as a dialect for a bank account with options to deposit & withdraw? Any help is appreciated as I'm brand new to Rebol/Red

posted by:   Newbius       13-May-2017/14:12:52-7:00



only one thing to say. Even if it will be simpler to do it with a tool that is well equiped with the tools, it will not be a simple task to perform.
    
It is not a question of
if read MYWORD then do SUCHANDSO
and filling the blancs.
    
Do not be mislead in that way. Parse is an excellent tool, way better than using regex cryptocommands, but creating a dialect is not easy.
    
There is no easy recipe to make a dialect available. Just the talk about it " it is easy " by the creator himself.


posted by:   iArnold       13-May-2017/15:09:35-7:00



Ouch! Don't tell me the cake is a lie ;).
    
Is it really that difficult though? I'm guessing Rebol's homoiconic predecessor "Lisp" is where the dialecting came from. If that is the case, you should be able to write a few macros to extend the Rebol base language into a dialect of your choice correct? I've never mastered Lisp macros, but I've seen some of the simple ones like how "and" is just a macro in Clojure and maybe Common Lisp. Does anything make this harder to do in Rebol than lisp?

posted by:   Newbius       13-May-2017/16:48:34-7:00



This is a nice tutorial:
    
http://web.archive.org/web/20130121141033/http://www.rebolforces.com/articles/tui-dialect.html
    
Another:
    
http://web.archive.org/web/20120510120959/http://www.rebolforces.com/zine/rzine-1-02.html#sect7.
    


posted by:   Nick       13-May-2017/20:13:07-7:00



There were some nice examples here, but the links are no longer valid. I have archived copies, but not sure if the authors want them distributed:
    
http://www.codeconscious.com/rebol/dialects.html

posted by:   Nick       13-May-2017/20:16:32-7:00



Frank's scripts are available in his repo https://github.com/fx5/very-old-rebol-scripts

posted by:   Graham       14-May-2017/2:31:01-7:00



Awesome...exactly what I was looking for. Any reason why something like this doesn't show up on the Rebol tutorials page besides the first response on this thread? This would seem important enough to not only be accessible via archive link. Thanks for digging this up everyone! I'll ask more questions after I've digested the articles.

posted by:   Newbius       14-May-2017/7:50:12-7:00



There are some insights available here too:
    
http://www.rebol.org/st-topic-details.r?tag=type//dialect

posted by:   Nick       14-May-2017/14:56:08-7:00



If you want to Brett of codeconscious.com he's often in chat http://chat.stackoverflow.com/rooms/291/rebol

posted by:   Graham       14-May-2017/18:15:30-7:00



Some were forgotten that were on the "USEFUL REBOL DOCUMENTS AND RESOURCES" page of the forum here.
    
Introduction to the idea of creating Rebol dialects:
        
http://re-bol.com/starting_computer_programming_with_rebol.html#section-3
        
Another introductory explanation, with links to articles with code:
        
http://rebolforum.com/index.cgi?f=printtopic&permalink=Nick13-Dec-2013/16:40:11-8:00&archiveflag=new
        
One link included in the topic above is the article by Ingo Hohmann about the TUI dialect, still one of the best articles about creating dialects. Mirrored here:
        
http://rebol2.blogspot.com/2012/01/tui-dialect-dialect-to-print-ascii.html
        
Some others:
        
    
http://www.codeconscious.com/rebol/dialects.html
http://web.archive.org/web/20120510120959/
http://www.rebolforces.com/zine/rzine-1-02.html#sect7.
http://hostilefork.com/2010/01/08/modest-proposal-for-code-golf-in-rebol/
    
posted by: Nick     24-Jan-2014/2:52:17-8:00

posted by:   Sam the Truck       15-Jun-2017/19:54:43-7:00



Name:


Message:


Type the reverse of this captcha text: "5 d m - m a r c - o d - p a m i"



Home