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)

SE Radio 713: Héctor Ramón Jiménez on Building a GUI library in Rust

SE Radio 713: Héctor Ramón Jiménez on Building a GUI library in Rust

Héctor Ramón Jiménez, creator of iced, an Elm-inspired, cross-platform GUI toolkit for Rust, speaks with SE Radio host Gavin Henry about building a GUI library in Rust. Héctor discusses why he created...

25 Mar 59min

SE Radio 712: Dan Lorenc on Sigstore

SE Radio 712: Dan Lorenc on Sigstore

Dan Lorenc, co-founder and CEO of Chainguard, joins host Priyanka Raghavan to explore Sigstore and its role in securing the software supply chain. They unpack the challenges of supply chain security, ...

18 Mar 39min

SE Radio 711: Scott Hanselman on AI-Assisted Development Tools

SE Radio 711: Scott Hanselman on AI-Assisted Development Tools

Scott Hanselman, the VP of Developer Community at Microsoft, speaks with host Jeremy Jung about AI-assisted coding. They start by considering how the tools are a progression from syntax highlighting a...

11 Mar 1h 2min

SE Radio 710: Marc Brooker on Spec-Driven AI Dev

SE Radio 710: Marc Brooker on Spec-Driven AI Dev

Marc Brooker, VP and Distinguished Engineer at AWS, joins host Kanchan Shringi to explore specification-driven development as a scalable alternative to prompt-by-prompt "vibe coding" in AI-assisted so...

4 Mar 1h 3min

SE Radio 709: Bryan Cantrill on the Data Center Control Plane

SE Radio 709: Bryan Cantrill on the Data Center Control Plane

Bryan Cantrill, the co-founder and CTO of Oxide Computer company, speaks with host Jeremy Jung about challenges in deploying hardware on-premises at scale. They discuss the difficulty of building up S...

26 Feb 1h 5min

SE Radio 708: Jens Gustedt on C in 2026

SE Radio 708: Jens Gustedt on C in 2026

Jens Gustedt, author of Modern C, senior scientist at the French National Institute for Computer Science and Control (INRIA), deputy director of the ICube lab, and former co-editor of the ISO C standa...

19 Feb 59min

SE Radio 707: Subhajit Paul on ERP Automation and AI

SE Radio 707: Subhajit Paul on ERP Automation and AI

In this episode, Subhajit Paul joins SE Radio host Kanchan Shringi to discuss how enterprise resource planning (ERP) systems work in practice and where machine learning and generative AI are beginning...

12 Feb 59min

SE Radio 706: Yechezkel "Chez" Rabinovich on Observability Tool Migration Techniques

SE Radio 706: Yechezkel "Chez" Rabinovich on Observability Tool Migration Techniques

Yechezkel "Chez" Rabinovich, CTO and co-founder at Groundcover, joins SE Radio host Brijesh Ammanath to discuss the key challenges in migrating observability toolsets. The episode starts with a look a...

4 Feb 39min

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
rss-kunsten-a-leve
mikkels-paskenotter
sinnsyn
hverdagspsyken
rss-sunn-okonomi
lederskap-nhhs-podkast-om-ledelse
rss-kull
tomprat-med-gunnar-tjomlid
fryktlos
hagespiren-podcast
gravid-uke-for-uke
rss-ifengsel-podden