Episode 57: Compile-Time Metaprogramming with Laurence Tratt

Episode 57: Compile-Time Metaprogramming with Laurence Tratt

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.

Denne episoden er hentet fra en åpen RSS-feed og er ikke publisert av Podme. Den kan derfor inneholde annonser.

Episoder(726)

Episode 133: Continuous Integration with Chris Read

Episode 133: Continuous Integration with Chris Read

In this episode Markus discusses with Chris Read basics and some advanced topics in the space of continuous integration. We cover concepts, some tools, as well as a number of best practices.

26 Apr 200950min

Episode 132: Top 10 Architecture Mistakes with Eoin Woods

Episode 132: Top 10 Architecture Mistakes with Eoin Woods

This is a discussion with Eoin Woods about his collection of top 10 software architecture mistakes. Looking at things that don't work is always a good way to learn what you should actually do.

16 Apr 200947min

Episode 131: Adrenaline Junkies with Tom DeMarco and Peter Hruschka

Episode 131: Adrenaline Junkies with Tom DeMarco and Peter Hruschka

Recording Venue: OOP Guest(s): Tom DeMarco and Peter Hruschka This episode is an interview with Tom DeMarco and Peter Hruschka about the new book of the Altantic Systems Guild: Adrenaline Junkies and...

6 Apr 200948min

Episode 130: Code Visualization with Michele Lanza

Episode 130: Code Visualization with Michele Lanza

This episode is a discussion about code and metrics visualization with Michele Lanza. Michele invented the Code Cities idea about which he talks in this episode.

27 Mar 200932min

Episode 129: F# with Luke Hoban

Episode 129: F# with Luke Hoban

This episode is a discussion about F# with Microsoft's F# program manager Luke Hoban.

17 Mar 200925min

Episode 128: Web App Security with Bruce Sams

Episode 128: Web App Security with Bruce Sams

The majority of hacker attacks (70 %) are directed at weaknesses that are the result of problems in the implementation and/or architecture of the application. This session shows how you can protect yo...

7 Mar 200959min

Episode 127: Usability with Joachim Machate

Episode 127: Usability with Joachim Machate

This episode is an introduction to user interface design with Joachim Machate of UID. We talk about the importance of user interface design, about its relationship to the overall software engineering ...

25 Feb 200950min

Episode 126: Jetbrains MPS with Konstantin Solomatov

Episode 126: Jetbrains MPS with Konstantin Solomatov

In this episode we take a brief look at Jetbrains' Meta Programming System, a language workbench for creating external DSLs or for extending existing languages (such as Java). In a brief telephone dis...

15 Feb 200917min

Populært innen Fakta

fastlegen
dine-penger-pengeradet
relasjonspodden-med-dora-thorhallsdottir-kjersti-idem
rss-bisarr-historie
foreldreradet
treningspodden
jakt-og-fiskepodden
rss-strid-de-norske-borgerkrigene
mikkels-paskenotter
rss-sunn-okonomi
rss-kunsten-a-leve
sinnsyn
hverdagspsyken
dopet
rss-kull
lederskap-nhhs-podkast-om-ledelse
fryktlos
hagespiren-podcast
gravid-uke-for-uke
hr-podden-2