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

SE Radio 737: Owen McGirr on Software Accessibility

SE Radio 737: Owen McGirr on Software Accessibility

Owen McGirr, creator of SayIt!, Switchify, and an entrepreneur who builds inclusive technology, speaks with SE Radio host Gavin Henry about software accessibility. For this episode, Gavin emailed the ...

9 Sep 51min

SE Radio 736: Sahil Walia on Apache Iceberg

SE Radio 736: Sahil Walia on Apache Iceberg

Sahil Walia, Senior Technical Architect at Snowflake, joins host Robert Blumen for a deep dive into Apache Iceberg.  The conversation covers OLAP, data formats, data lakes and lake houses, Iceberg as ...

3 Sep 51min

SE Radio 735: Vivek Yadav on Regression Testing Microservices

SE Radio 735: Vivek Yadav on Regression Testing Microservices

Vivek Yadav, an engineering manager at the payment company Stripe, speaks with host Adi Narayan about building regression testing for microservices. Drawing on his work estimating network costs for ca...

26 Aug 59min

SE Radio 734: Sathiesh Veera on Engineering Data-Protection Guardrails with LLMs

SE Radio 734: Sathiesh Veera on Engineering Data-Protection Guardrails with LLMs

Sathiesh Veera, a GenAI Solutions Architect at At&T, speaks with host Brijesh Ammanath about the data-protection guardrails required when using LLMs. The core issue is that LLMs sit outside the cloud ...

19 Aug 42min

SE Radio 733: Max Corbridge on Securing AI Agents

SE Radio 733: Max Corbridge on Securing AI Agents

Max Corbridge, an ethical hacker and red teamer who is co-founder and CEO of Secure Agentics, speaks with SE Radio host Amey Ambade about how AI agents get attacked and what engineers can actually do ...

13 Aug 1h

SE Radio 732: Jason Gorman on The Effective Use of AI For Software Development

SE Radio 732: Jason Gorman on The Effective Use of AI For Software Development

Jason Gorman, a software development expert and founder of Codemanship, joins host Giovanni Asproni to explore how best to use AI in software development. They start by considering how established tec...

5 Aug 57min

SE Radio 731: Sonali Varde on AI and the Engineering Manager Role

SE Radio 731: Sonali Varde on AI and the Engineering Manager Role

Sonali Varde, Senior Software Engineering Manager at LinkedIn, joins host Kanchan Shringi to discuss how AI is changing the role of the engineering manager. They explore how AI is showing up in day-to...

29 Juli 50min

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 Juli 54min

Populärt inom Utbildning

historiepodden-se
rss-bara-en-till-om-beroende-medberoende
det-skaver
nu-blir-det-historia
harrisons-dramatiska-historia
not-fanny-anymore
allt-du-velat-veta
johannes-hansen-podcast
rss-viktmedicinpodden
sa-in-i-sjalen
i-vantan-pa-katastrofen
rss-max-tant-med-max-villman
rikatillsammans-om-privatekonomi-rikedom-i-livet
roda-vita-rosen
rss-basta-livet
rss-autismandan
rss-ar-det-rimligt
rss-traningsklubben
rss-foraldramotet-bring-lagercrantz
sektledare