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(735)

SE Radio 730: Birgitta Boeckeler on Harness Engineering for AI Agents

SE Radio 730: Birgitta Boeckeler on Harness Engineering for AI Agents

Birgitta Boeckeler, a Distinguished Engineer and consultant focused on AI-assisted software delivery at Thoughtworks, joins host Priyanka Raghavan for a deep dive into harnesses for AI agents. The epi...

22 Heinä 0s

SE Radio 729: Garth Mollett on AI Supply Chain Security

SE Radio 729: Garth Mollett on AI Supply Chain Security

Garth Mollet, Senior Principal Product Security Engineer and Technical Advisor for Product Security at Red Hat, joins host Robert Blumen for a discussion of AI supply chain security. They start with t...

15 Heinä 48min

SE Radio 728: Clare Liguori on AWS Strands SDK for AI Agents

SE Radio 728: Clare Liguori on AWS Strands SDK for AI Agents

Clare Liguori, a Senior Principal Engineer who works on developer tooling and agentic AI at Amazon Web Services, speaks with host Sri Panyam about the Amazon Strands Agents SDK. This episode explores ...

8 Heinä 1h 8min

SE Radio 727: Jeroen Janssens and Thijs Nieuwdorp on Using Polars

SE Radio 727: Jeroen Janssens and Thijs Nieuwdorp on Using Polars

Jeroen Janssens, a senior developer relations engineer at Posit, and Thijs Nieuwdorp, a developer relations engineer at Polars, speak with host Gregory M. Kapfhammer about Polars, a Python package for...

2 Heinä 1h 2min

SE Radio 726: Scott Kingsley on the Swagger Ecosystem

SE Radio 726: Scott Kingsley on the Swagger Ecosystem

Scott Kingsley, a VP of Engineering at SmartBear, speaks with host Gregory Kapfhammer about the Swagger ecosystem. They discuss the user interface, editor, and Swagger CodeGen and how these tools supp...

24 Kesä 52min

SE Radio 725: Danny Yang and Sam Goldman on the Pyrefly Type Checker

SE Radio 725: Danny Yang and Sam Goldman on the Pyrefly Type Checker

Danny Yang and Sam Goldman, both Software Engineers at Meta, speak with host Gregory M. Kapfhammer about the Rust-based Pyrefly type checker for Python. After a look at the foundational concepts for a...

18 Kesä 54min

SE Radio 724: Jure Leskovec on Relational Graph and Foundational Models

SE Radio 724: Jure Leskovec on Relational Graph and Foundational Models

Jure Leskovec, Professor of Computer Science at Stanford University and Chief Scientist at Kumo.ai, speaks with host Sriram Panyam about relational and graph language models and their transformative i...

10 Kesä 1h 2min

SE Radio 723: Dave Airlie on Linux Kernel Maintenance

SE Radio 723: Dave Airlie on Linux Kernel Maintenance

Dave Airlie, a Distinguished Engineer at Red Hat, speaks with host Gregory M. Kapfhammer about Linux kernel maintenance. After over-viewing the scale and structure of the Linux kernel, they dive deep ...

3 Kesä 1h 9min

Suosittua kategoriassa Koulutus

rss-murhan-anatomia
psykopodiaa-podcast
voi-hyvin-meditaatiot-2
rss-liian-kuuma-peruna
rss-arkea-ja-aurinkoa-podcast-espanjasta
kesken
rss-luonnollinen-synnytys-podcast
aamukahvilla
rss-perho-rajoilla
rss-koira-haudattuna
mielipaivakirja
rss-narsisti
rss-rahataito-podcast
solu-ja-molekyylibiologian-perusteet
ensihoidon-ja-pelastustyoncast
rss-niinku-asia-on
ihminen-tavattavissa-tommy-hellsten-instituutti
rss-hereilla
taytta-tavaraa
rss-duodecim-lehti