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 609: Hyrum Wright on Software Engineering at Google

SE Radio 609: Hyrum Wright on Software Engineering at Google

Hyrum Wright, Senior Staff Engineer at Google, discusses the book he co-edited, "Software Engineering at Google," with host Gregory M. Kapfhammer. Wright describes the professional and technical best ...

28 Maalis 202456min

SE Radio 608: Lane Wagner on Revisiting the Go Language

SE Radio 608: Lane Wagner on Revisiting the Go Language

Lane Wagner of Boot.dev speaks with host Philip Winston about Go, the programming language that's popular for web, cloud, devops, networking, and other types of development. In addition to discussing ...

20 Maalis 20241h 8min

SE Radio 607: John Frandsen on Geospatial Technologies

SE Radio 607: John Frandsen on Geospatial Technologies

John Frandsen, Chief Product officer for Elebase, joins host Jeff Doolittle for an exploration of geospatial technologies. The conversation begins with a discussion of the history of mapping and globa...

12 Maalis 20241h 2min

SE Radio 606: Charlie Jones on Third-Party Software Supply Chain Risks

SE Radio 606: Charlie Jones on Third-Party Software Supply Chain Risks

Charlie Jones, Director of Product Management at ReversingLabs and subject matter expert in supply chain security, joins host Priyanka Raghavan to discuss tackling third-party software risks. They beg...

7 Maalis 202451min

SE Radio 605: Yingjun Wu on Streaming Databases

SE Radio 605: Yingjun Wu on Streaming Databases

Yingjun Wu, founder of RisingWave Labs and previously a software engineer at Amazon Web Services and researcher at IBM Almaden Research Center, speaks with SE Radio host Brijesh Ammanath about streami...

28 Helmi 202454min

SE Radio 604: Karl Wiegers and Candase Hokanson on Software Requirements Essentials

SE Radio 604: Karl Wiegers and Candase Hokanson on Software Requirements Essentials

Karl Wiegers, Principal Consultant with Process Impact and author of 14 books, and Candase Hokanson, Business Architect and PMI-Agile Certified Practitioner at ArgonDigital, speak with SE Radio host G...

22 Helmi 20241h 7min

SE Radio 603: Rishi Singh on Using GenAI for Test Code Generation

SE Radio 603: Rishi Singh on Using GenAI for Test Code Generation

Rishi Singh, founder and CEO at Sapient.ai, speaks with SE radio's Kanchan Shringi about using generative AI to help developers automate test code generation. They start by identifying key problems th...

15 Helmi 202449min

SE Radio 602: Nicolas Carlo on Improving Legacy Code

SE Radio 602: Nicolas Carlo on Improving Legacy Code

Nicolas Carlo talks with host Sam Taggart about Nicolas's recent book, Legacy Code First Aid Kit. They start by defining legacy code and the general issues that developers face when dealing with it. N...

7 Helmi 202452min

Suosittua kategoriassa Koulutus

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