Guest: Laurence Tratt
Host: Markus
Recorded at: JAOO 2006

This episode is about compile-time metaprogramming, and specifically, about implementing DSLs via compile-time metaprogramming. Our guest, Laurence Tratt, illustrates the idea with his (research) programming language called Converge.

We started by talking about the importance of a custom syntax for DSL and took a brief look at the definition of DSLs by a chap called Paul Hudak. We then briefly covered the disctinction between internal and external DSLs.

More to the point of this episode, we discussed the concept of compile-time metaprogramming, and the language features necessary to achieve it: in converge, these concepts are called splice, quasi-quote and insertion. We then looked at how the Converge compiler works, and at the additional features that are required to implement DSLs based on the metaprogramming features mentioned above. Using an example, we then walked through how to implement a simple DSL.

Looking at some of the more technical details, we discussed the difference between the parse tree and the abstract syntax tree and at different kinds of parsers - specifically, the Earley parser used by Converge. In multi-stage languages (i.e. languages that execute programs and meta programs) error reporting is important, but non trivial. We discussed how this is done in Converge. We finally looked at how to integrate Converge's expression language into your DSL and how to package DSL definition for later use.

The last segment look at the process of implementing a DSL in converge and about some of the history and practical experience with Converge. Lessons learned from building Converge wrap up the episode.
Publicize:      Digg this      Post to del.icio.us      Post to Slashdot

Comments[10]

Note that the this page shows only the 50 most recent episodes. If you want to see older episodes, you need to select the appropriate months from the archives.

Donate

Donate some money so we can buy additional audio equipment and improve our sound quality.

Syndication

Spread the Word

Help us advertise for SE Radio by putting logos on your website or posters into your office.
Get materials here!

License

Creative Commons License
This work is licensed under a Creative Commons License.

Please Vote for us!

... at Podcast Alley
... at digg

Go To ...

Categories
Archives
About the Team
Donate
Search Audio/Notes
Thanks
Other Podcasts

Related Links

SE Radio is (and will continue to be) an independent and non-commercial endeavor. Nonetheless, we want to say 'thank you' to the following organizations who help us to publicize the SE Radio podcast.















Categories

- all -
about/news/feedback
code/technology
guest/technology
interview
interview/roundtable
notifications
podcasts
regular/technology

Archives

January
February

January
February
March
April
May
June
July
August
September
October
November
December

January
February
March
April
May
June
July
August
September
October
November
December

Team

This podcast is brought to you by a team of experienced software developers and architects. You can reach the team through


Alexander
Schmid


Arno
Haase


Bernd
Kolb


Eberhard
Wolff


Martin
Lippert


Markus
Voelter
 
Michael
Kircher
 

Search

Search in Show Notes:

Search in Audio Content:
Search Google: Google
Web www.se-radio.net

Thanks...

... to Henning Pauly for poviding the music.
... to LibSyn for hosting and bandwidth.

Other Podcasts

Some interesting podcasts you might want to subscribe to:
Security Now!
Java Posse
This Week in Tech (TWiT)
Futures in Biotech
IT Conversations
TED Talks
HPI Podcast
Tonabnehmer (German)
Manager Tools

Software