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(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 Jul 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 Jul 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 Jul 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 Jul 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 Jun 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 Jun 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 Jun 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 Jun 1h 9min

Populært innen Fakta

fastlegen
dine-penger-pengeradet
relasjonspodden-med-dora-thorhallsdottir-kjersti-idem
treningspodden
foreldreradet
mikkels-paskenotter
rss-strid-de-norske-borgerkrigene
hverdagspsyken
rss-kunsten-a-leve
sinnsyn
gravid-uke-for-uke
fryktlos
rss-sarbar-med-lotte-erik
dopet
rss-bisarr-historie
tomprat-med-gunnar-tjomlid
jakt-og-fiskepodden
sovnlos
rss-impressions-2
rss-renters-rente