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.

Det här avsnittet är hämtat från ett öppet RSS-flöde och publiceras inte av Podme. Det kan innehålla reklam.

Avsnitt(726)

SE Radio 721: Rob Moffat on Risk-First Software Development

SE Radio 721: Rob Moffat on Risk-First Software Development

In this episode, Rob Moffat, author of Risk-First Software Development and chief technical architect at the FinTech Open Source Software Foundation (FINOS), speaks with host Brijesh Ammanath about how...

20 Maj 52min

SE Radio 720: Martin Dilger on Understanding Eventsourcing

SE Radio 720: Martin Dilger on Understanding Eventsourcing

Martin Dilger, founder and CEO of Nebuilt GmbH, speaks with host Giovanni Asproni about event sourcing -- a software architecture pattern in which, rather than storing just the current state of your d...

13 Maj 55min

SE Radio 719: Birol Yildiz on Building an Agentic AI SRE

SE Radio 719: Birol Yildiz on Building an Agentic AI SRE

Birol Yildiz, CEO and co-founder of iLert, joins host Kanchan Shringi to explore how iLert built an AI SRE — an autonomous agent for handling production incidents — and what the experience revealed ab...

6 Maj 53min

SE Radio 718: Will Sentance on JS Modernization

SE Radio 718: Will Sentance on JS Modernization

Will Sentance, educator and co-founder of Codesmith, joins SE Radio's Adi Narayan to discuss the evolution of JavaScript and modern best practices. They begin with JavaScript's origins as a simple scr...

29 Apr 58min

SE Radio 717: Eric Tschetter on Decoupling Observability

SE Radio 717: Eric Tschetter on Decoupling Observability

In this episode, host Amey Ambade sits with Eric Tschetter, co-founder of Apache Druid and Chief Architect at Imply, to dissect the critical move toward Decoupling Observability. To begin, they define...

23 Apr 1h

SE Radio 716: Martin Kleppmann Local-First Software

SE Radio 716: Martin Kleppmann Local-First Software

Martin Kleppmann, Associate Professor at the University of Cambridge and author of the best-selling O'Reilly book Designing Data-Intensive Applications, talks to host Adi Narayan about local-first col...

15 Apr 55min

SE Radio 715: Sahaj Garg on Designing for Ambiguity in Human Input

SE Radio 715: Sahaj Garg on Designing for Ambiguity in Human Input

Sahaj Garg, co-founder and CTO of Wispr, a voice-to-text AI that turns speech into polished writing, talks with host Amey Ambade about designing systems for the ambiguity that's inherent in human inpu...

8 Apr 48min

SE Radio 714: Costa Alexoglou on Remote Pair Programming

SE Radio 714: Costa Alexoglou on Remote Pair Programming

Costa Alexoglou, co-founder of the open source Hopp pair-programming application, talks with host Brijesh Ammanath about remote pair programming. They start with a quick introduction to pair programmi...

1 Apr 51min

Populärt inom Utbildning

historiepodden-se
rss-bara-en-till-om-missbruk-medberoende-2
det-skaver
nu-blir-det-historia
harrisons-dramatiska-historia
allt-du-velat-veta
johannes-hansen-podcast
not-fanny-anymore
rss-viktmedicinpodden
roda-vita-rosen
sa-in-i-sjalen
i-vantan-pa-katastrofen
sektledare
rss-max-tant-med-max-villman
rss-foraldramotet-bring-lagercrantz
rikatillsammans-om-privatekonomi-rikedom-i-livet
rss-sjalsligt-avkladd
rss-traningsklubben
rss-dr-bjorklund
vi-gar-till-historien