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.

Tämä jakso on lisätty Podme-palveluun avoimen RSS-syötteen kautta eikä se ole Podmen omaa tuotantoa. Siksi jakso saattaa sisältää mainontaa.

Jaksot(726)

Episode 21: Error Handling Pt. 2

Episode 21: Error Handling Pt. 2

In this Episode, Arno and Michael take a closer look at Exceptions and Error conditions, how to categorize them and how to deal with them. We look at the different levels of guarantee that a piece of ...

4 Heinä 200635min

Episode 20: Interview Michael Stal

Episode 20: Interview Michael Stal

In this Episode, we talk to Michael Stal, a Senior Principal Engineer at Siemens Corporate Technology, POSA 1 and 2 Co-Author and Editor of the german JavaSpetrum magazine. Since Michael's core focus ...

24 Kesä 200643min

Episode 19: Concurrency Pt. 2

Episode 19: Concurrency Pt. 2

In this second part of our concurrency series Michael and Alexander talk about basic patterns for concurrent programming, such as Active and Monitor Object, Scoped Locking and Futures. Further, they d...

14 Kesä 200627min

Episode 18: Resource Management

Episode 18: Resource Management

In this episode Michael and our guest Prashant Jain talk about patterns for resource management. Efficient management of resources is critical in the execution of any kind of software. Ranging from em...

4 Kesä 200643min

Episode 17: Feedback and Roadmap

Episode 17: Feedback and Roadmap

This is a short episode that outlines the upcoming episodes and interviews, as well as reports on some listener feedback.

29 Touko 200614min

Episode 16: MDSD Pt. 3, Hands-On

Episode 16: MDSD Pt. 3, Hands-On

This episode provides a hands-on guided tour through a simple model-driven software project. It is based on an actual code sample (see link below) and takes a look at the typical steps of real-life co...

25 Touko 20061h

Episode 15: The Future of Enterprise Java

Episode 15: The Future of Enterprise Java

A very important area for Java are Enterprise Systems. With the advent of new technologies like Ruby on Rails, Java EE 5 or EJB 3 the landscape for Enterprise Systems appears to be changing a lot at t...

15 Touko 200637min

Episode 14: Interview Ted Neward

Episode 14: Interview Ted Neward

In this Episode we talk to Ted Neward. Since Ted is active in the .NET and Java universes, we started out by discussing some of the differences between the two platforms. The main discussion, however,...

5 Touko 20061h 4min

Suosittua kategoriassa Koulutus

rss-murhan-anatomia
psykopodiaa-podcast
voi-hyvin-meditaatiot-2
adhd-podi
rss-rahamania
rss-liian-kuuma-peruna
psykologia
rss-laadukasta-ensihoitoa
rss-narsisti
rss-vapaudu-voimaasi
kesken
rss-niinku-asia-on
rss-arkea-ja-aurinkoa-podcast-espanjasta
rss-hereilla
rahapuhetta
rss-keskeneraiset-aidit
ihminen-tavattavissa-tommy-hellsten-instituutti
rss-duodecim-lehti
rss-valo-minussa-2
rss-tfa-8020-podcast