Ayende @ Rahien

Hi!
My name is Ayende Rahien
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:

ayende@ayende.com

+972 52-548-6969

@

Posts: 5,947 | Comments: 44,539

filter by tags archive

Recursive Meta Programming


I am currently writing a DSL that is used to meta program another DSL that is used to to do some action (it is actually turtles 7 layers deep, but we will skip that). It gets to be fairly interesting, although trying to draw that as a diagram is... a bit challenging.

Oh, and there are at least a few parts that rewrite itself.

Ever tried to do incremental method munging? That is when you take code from several places and start applying logic to where to put it. Only useful because of a lot of interesting constraints that we have to deal with in this project, and probably will be actively harmful on other scenarios. And that is only one technique that I am using there.

But a damn elegant approach to solve a problem, wow!


Comments

Jeff Moser

In my latest post, http://www.moserware.com/2008/08/meta-fizzbuzz.html , I do something similar where I use OMeta# (a DSL for building languages) to build a a DSL for the FizzBuzz problem. It's a simplified version of what you're talking about in the first paragraph.

OMeta# itself is written in OMeta# which sometimes leads to problems where the language no longer works and I have to revert back the bootstrapped version using source control.

It's fun when things work, but when they don't it can be frustrating.

Comment preview

Comments have been closed on this topic.

FUTURE POSTS

  1. RavenDB Sharding - Adding a new shard to an existing cluster, splitting the shard - 31 minutes from now

There are posts all the way to May 22, 2015

RECENT SERIES

  1. RavenDB Sharding (2):
    21 May 2015 - Adding a new shard to an existing cluster, the easy way
  2. The RavenDB Comic Strip (2):
    20 May 2015 - Part II – a team in trouble!
  3. Challenge (45):
    28 Apr 2015 - What is the meaning of this change?
  4. Interview question (2):
    30 Mar 2015 - fix the index
  5. Excerpts from the RavenDB Performance team report (20):
    20 Feb 2015 - Optimizing Compare – The circle of life (a post-mortem)
View all series

RECENT COMMENTS

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats