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 665: Malcolm Matalka on Developing in OCaml with Zero Frameworks

SE Radio 665: Malcolm Matalka on Developing in OCaml with Zero Frameworks

Malcolm Matalka, founder of Terrateam, joins host Giovanni Asproni to talk about the reasoning behind choosing a not-so-widespread language (OCaml) and (almost) totally avoiding frameworks for the dev...

23 Apr 202556min

SE Radio 664: Emre Baran and Alex Olivier on Stateless Decoupled Authorization Frameworks

SE Radio 664: Emre Baran and Alex Olivier on Stateless Decoupled Authorization Frameworks

Emre Baran, CEO and co-founder of Cerbos, and Alex Olivier, CPO and co-founder, join SE Radio host Priyanka Raghavan to explore "stateless decoupled authorization frameworks. The discussion begins wit...

15 Apr 202551min

SE Radio 663: Tyler Flint on Managing External APIs

SE Radio 663: Tyler Flint on Managing External APIs

Tyler Flint, CEO of qpoint.io, joins host Robert Blumen for a conversation about managing external vendor dependencies, including several best practices for adoption. They start with a look at interna...

8 Apr 202552min

SE Radio 662: Vlad Khononov on Balancing Coupling in Software Design

SE Radio 662: Vlad Khononov on Balancing Coupling in Software Design

Software architect and author Vlad Khononov joins host Jeff Doolittle for a discussion on balancing coupling in software design. They start by examining coupling and its relationship to complexity and...

1 Apr 202556min

SE Radio 661: Sunil Mallya on Small Language Models

SE Radio 661: Sunil Mallya on Small Language Models

Sunil Mallya, co-founder and CTO of Flip AI, discusses small language models with host Brijesh Ammanath. They begin by considering the technical distinctions between SLMs and large language models.  L...

25 Mars 202559min

SE Radio 660: Pete Warden on TinyML

SE Radio 660: Pete Warden on TinyML

Pete Warden, CEO of Useful Sensors and a founding member of the TensorFlow team at Google, discusses TinyML, the technology enabling machine learning on low-power, small-footprint devices. This innova...

18 Mars 202555min

SE Radio 659: Brenden Matthews on Idiomatic Rust

SE Radio 659: Brenden Matthews on Idiomatic Rust

Brenden Matthews, a seasoned software engineer, entrepreneur, and author of the Idiomatic Rust and Code Like a Pro in Rust books (both from Manning), speaks with SE Radio host Gavin Henry about Idioma...

12 Mars 202553min

SE Radio 658: Tanya Janca on Secure Coding

SE Radio 658: Tanya Janca on Secure Coding

Tanya Janca, author of Alice and Bob Learn Secure Coding, discusses secure coding and secure software development life cycle with SE Radio host Brijesh Ammanath. This session explores how integrating ...

6 Mars 20251h 11min

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