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 673: Abhinav Kimothi on Retrieval-Augmented Generation

SE Radio 673: Abhinav Kimothi on Retrieval-Augmented Generation

In this episode of Software Engineering Radio, Abhinav Kimothi sits down with host Priyanka Raghavan to explore retrieval-augmented generation (RAG), drawing insights from Abhinav's book, A Simple Gui...

18 Kesä 202555min

SE Radio 672: Luca Palmieri on Rust In Production

SE Radio 672: Luca Palmieri on Rust In Production

Luca Palmieri, author of Zero to Production in Rust and Principal Engineering Consultant at MainMatter, speaks with SE Radio host Gavin Henry about Rust in production. They discuss what production Rus...

12 Kesä 202557min

SE Radio 671: Carson Gross on HTMX

SE Radio 671: Carson Gross on HTMX

In this episode, SE Radio host Sriram Panyam explores HTMX with its creator, Carson Gross, who is also creator of Hyperscript, the mind behind the Grug Brained Developer, a professor of software engin...

4 Kesä 20251h 15min

SE Radio 670: Matthias Endler on Prototype in Rust

SE Radio 670: Matthias Endler on Prototype in Rust

Matthias Endler, Rust developer, open-source maintainer, and consultant through his company Corrode, speaks with SE Radio host Gavin Henry about prototyping in Rust. They discuss prototyping and why R...

29 Touko 20251h 1min

SE Radio 669: Will McGugan on Text-Based User Interfaces

SE Radio 669: Will McGugan on Text-Based User Interfaces

Will McGugan, the CEO and founder of Textualize, speaks with host Gregory M. Kapfhammer about how to use packages such as Rich and Textual to build text-based user interfaces (TUIs) and command-line i...

20 Touko 202551min

SE Radio 668: Steve Summers on Securing Test and Measurement Equipment

SE Radio 668: Steve Summers on Securing Test and Measurement Equipment

Steve Summers speaks with SE Radio host Sam Taggart about securing test and measurement equipment. They start by differentiating between IT and OT (Operational Technology) and then discuss the threat ...

13 Touko 202554min

SE Radio 667: Ashley Peacock on Cloudflare

SE Radio 667: Ashley Peacock on Cloudflare

Ashley Peacock, the author of Serverless Apps on Cloudflare, speaks with host Jeremy Jung about content delivery networks (CDNs). Along the way, they examine dependency injection with bindings, local ...

7 Touko 20251h 4min

SE Radio 666: Eran Yahav on the Tabnine AI Coding Assistant

SE Radio 666: Eran Yahav on the Tabnine AI Coding Assistant

Eran Yahav, Professor of Computer Science at Technion, Israel, and CTO of Tabnine, speaks with host Gregory M. Kapfhammer about the Tabnine AI coding assistant. They discuss how the design and impleme...

29 Huhti 20251h 2min

Suosittua kategoriassa Koulutus

rss-murhan-anatomia
psykopodiaa-podcast
voi-hyvin-meditaatiot-2
adhd-podi
rss-rahamania
rss-laadukasta-ensihoitoa
rss-vapaudu-voimaasi
kesken
psykologia
rss-liian-kuuma-peruna
rss-narsisti
rss-niinku-asia-on
rss-arkea-ja-aurinkoa-podcast-espanjasta
rss-hereilla
dreamtalk
rss-keskeneraiset-aidit
ihminen-tavattavissa-tommy-hellsten-instituutti
rss-duodecim-lehti
rss-valo-minussa-2
rss-tfa-8020-podcast