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 157: Hadoop with Philip Zeyliger

Episode 157: Hadoop with Philip Zeyliger

Philip Zeyliger of Cloudera discusses the Hadoop project with Robert Blumen. The conversation covers the emergence of large data problems, the Hadoop file system, map-reduce, and a look under the hoo...

8 Maalis 201051min

Episode 156: Kanban with David Anderson

Episode 156: Kanban with David Anderson

This episode is part of our series on agile software development. We talk with David Anderson about Kanban, an agile software development method that is quite different from most of the other agile me...

22 Helmi 20101h 1min

Episode 155: Johannes Link & Lasse Koskela on TDD

Episode 155: Johannes Link & Lasse Koskela on TDD

In this episode Johannes Link interviews Lasse Koskela - the author of "Test-Driven" - about test-driven development (TDD). We cover the basics, the rationale behind it and the challenges you face whe...

8 Helmi 20101h 2min

Episode 154: Ola Bini on Ioke

Episode 154: Ola Bini on Ioke

This is a conversation with Ola Bini on his experimental language Ioke. We cover the idea behind the Ioke experiment as well as important language concepts and the thinking behind them.

25 Tammi 201059min

Episode 153: Jan Bosch on Product Lines and Software Ecosystems

Episode 153: Jan Bosch on Product Lines and Software Ecosystems

This episode is a conversation with Jan Bosch about product line engineering (PLE). Jan has worked in various roles and industries and academia in the context of product lines. In this episode we look...

11 Tammi 201056min

Episode 152: MISRA with Johan Bezem

Episode 152: MISRA with Johan Bezem

Our guest Johan Bezem explains the idea behind and the benefits of MISRA. MISRA defines guidelines for C and C++ programming in order to ensure quality. While it got started for embedded automotive de...

28 Joulu 200940min

Episode 151: Intentional Software with Shane Clifford

Episode 151: Intentional Software with Shane Clifford

This episode is a discussion with Shane Clifford, who is a development manager at Intentional Software. We discuss the idea behind intentional programming, key concepts of the technology as well as ex...

14 Joulu 20091h 3min

Episode 150: Software Craftsmanship with Bob Martin

Episode 150: Software Craftsmanship with Bob Martin

This episode is a conversation with "Uncle Bob" Bob Martin about agile software development and software craftsmanship specifically. We talk about the history of the term, the reasons for coming up wi...

30 Marras 200958min

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