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 125: Performance Engineering with Chris Grindstaff

Episode 125: Performance Engineering with Chris Grindstaff

In this episode Martin talks with Chris Grindstaff about the fundamentals of performance engineering. The episode discusses when and how to work on performance of client- and server-side systems, what...

5 Helmi 200952min

Episode 124: OpenJDK with Dalibor Topic

Episode 124: OpenJDK with Dalibor Topic

In this episode we look at SUN's open source strategy for the OpenJDK. We discuss challenges in creating such a big open source project, and ways to keep it focused and organized. We discuss what it m...

26 Tammi 200953min

Episode 123: Microsoft OSLO with Don Box and Doug Purdy

Episode 123: Microsoft OSLO with Don Box and Doug Purdy

In this episode we discuss Microsoft's OSLO platform with Doug Purdy and Don Box. We briefly discuss what OSLO is in general and then look at the various components of OSLO. We also look at how OSLO f...

16 Tammi 200946min

Episode 122: Interview Janos Sztipanovits

Episode 122: Interview Janos Sztipanovits

This is a discussion with Janos Sztipanovits about Cyber Physical Systems and how DSLs are used to approach some of the challenges in that domain. Specifically, in the second part we talk about forma...

6 Tammi 200926min

Episode 121: OR Mappers with Michael Plöd

Episode 121: OR Mappers with Michael Plöd

In this episode, Michael Plöd is interviewed about Object-Relational Mapping technology. He talks about the common concepts, compares the range of different tools that go by this name, and goes into t...

27 Joulu 200854min

Episode 120: OCL with Anneke Kleppe

Episode 120: OCL with Anneke Kleppe

In this episode we're talking to Anneke Kleppe about model-driven software development and language engineering. We start with her involvement in the creation of the Object Constraint Language (OCL) a...

17 Joulu 200841min

Episode 119: DSLs in Practice with JP Tolvanen

Episode 119: DSLs in Practice with JP Tolvanen

In this episode, Markus talks with Juha-Pekka Tolvanen about using DSLs and code generation in practice. The main part of the episode is the discussion about a number of case studies that show how DSL...

7 Joulu 200851min

Episode 118: Eelco Visser on Parsers

Episode 118: Eelco Visser on Parsers

In this episode we're talking to Eelco Visser about parsing text. We start at the basics - what is parsing? - covering classic tools such as Yacc and classic parsing approaches such as LALR before exa...

27 Marras 200854min

Suosittua kategoriassa Koulutus

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