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)

SE Radio 601: Han Yuan on Reorganizations

SE Radio 601: Han Yuan on Reorganizations

Han Yuan, an accomplished Chief Product and Technology Officer, joins host Priyanka Raghavan to discuss reorganizations. The conversation starts with a broad discussion of reorganizations and reasons ...

31 Tammi 202448min

SE Radio 600: William Morgan on Kubernetes Sidecars and Service Mesh

SE Radio 600: William Morgan on Kubernetes Sidecars and Service Mesh

William Morgan, founder of the Linkerd service mesh and CEO of Bouyant, joins SE Radio's Robert Blumen for a discussion of sidecars, service mesh, and a forthcoming enhancement to kubernetes to suppor...

26 Tammi 202445min

SE Radio 599: Jason C. McDonald on Quantified Tasks

SE Radio 599: Jason C. McDonald on Quantified Tasks

Jason C. McDonald, author of the book Dead Simple Python, speaks with host Samuel Taggart about leveraging quantified tasks to improve estimation, particularly across projects. They discuss the origin...

17 Tammi 202444min

SE Radio 598: Jonathan Crossland on the AMMERSE Framework

SE Radio 598: Jonathan Crossland on the AMMERSE Framework

Jonathan Crossland, software architect, author, and business owner, joins host Jeff Doolittle for a conversation about the AMMERSE framework of design principles. They start by discussing the agile ma...

11 Tammi 20241h 7min

SE Radio 597: Coral Calero Muñoz and Félix García on Green Software

SE Radio 597: Coral Calero Muñoz and Félix García on Green Software

Coral Calero Muñoz and Felix Garcia, professors at the University of Castilla-La Mancha, speak with host Giovanni Asproni about green and sustainable software—an approach to software development aimed...

8 Tammi 20241h 3min

SE Radio 596: Maxim Fateev on Durable Execution with Temporal

SE Radio 596: Maxim Fateev on Durable Execution with Temporal

Maxim Fateev, the CEO of Temporal, speaks with SE Radio's Philip Winston about how Temporal implements durable execution. They explore concepts including workflows, activities, timers, event histories...

27 Joulu 20231h 8min

SE Radio 595: Llewelyn Falco on Approval Testing

SE Radio 595: Llewelyn Falco on Approval Testing

Llewelyn Falco, creator approval tests, talks with SE Radio host Sam Taggart about testing code in general and the various types of testing that developers perform. Llewelyn elaborates on how approval...

19 Joulu 20231h 3min

SE Radio 594: Sean Moriarity on Deep Learning with Elixir and Axon

SE Radio 594: Sean Moriarity on Deep Learning with Elixir and Axon

Sean Moriarity, creator of the Axon deep learning framework, co-creator of the Nx library, and author of Machine Learning in Elixir and Genetic Algorithms in Elixir, published by the Pragmatic Bookshe...

14 Joulu 202357min

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