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)

Episode 141: Second Life and Mono with Jim Purbrick

Episode 141: Second Life and Mono with Jim Purbrick

In the first part of this episode we discuss a couple of basics about SecondLife (scaling, partitioning, etc). The second part specifically looks at how the dev team tackled a number of interesting pr...

27 Juli 200942min

Episode 140: Newspeak and Pluggable Types with Gilad Bracha

Episode 140: Newspeak and Pluggable Types with Gilad Bracha

This episode is a conversation with Gilad Bracha about Newspeak, type systems in general and optional/pluggable types in particular. It was recorded during DSL Devcon in the gardens of the Microsoft ...

13 Juli 200943min

Episode 139: Fearless Change with Linda Rising

Episode 139: Fearless Change with Linda Rising

This episode is once again with Linda Rising, this time on the book she coauthored with Mary Lynn Manns on introducing ideas into organizations. The talk is another one of the SE Radio Live sessions r...

29 Juni 20091h 8min

Episode 138: Learning as a Part of Development with Allan Kelly

Episode 138: Learning as a Part of Development with Allan Kelly

In this episode, Allan shares his insights about how learning is a necessary part of software development. He covers the personal as well as the team and the organizational level and offers practical ...

15 Juni 200959min

Episode 137: SQL with Jim Melton

Episode 137: SQL with Jim Melton

In this episode, Arno talks to Jim Melton about the SQL programming language. In addition to covering the concepts and ideas behind SQL, Jim shares stories and insights based on his many years' experi...

5 Juni 20091h 2min

Episode 136: Past Present and Future of MDA with David Frankel

Episode 136: Past Present and Future of MDA with David Frankel

In this episode, Dirk talks with David Frankel, resident Metamodeller and MDA expert at SAP Labs LLC, SAP's subsidiary in the Silicon Valley. Dave's extensive experience provides a big picture, from t...

26 Maj 20091h

Episode 135: Introduction to Software Configuration Management with Petri Ahonen

Episode 135: Introduction to Software Configuration Management with Petri Ahonen

In this episode Michael interviews one of our regular listeners: Petri Ahonen. Petri introduces Software Configuration Management by defining key terms and describing relevant concepts.

16 Maj 200930min

Episode 134: Release It with Michael Nygard

Episode 134: Release It with Michael Nygard

This episode is a discussion with Michael Nygard about his book "Release It" which covers aspects of software architecture you often don't think of initially when starting to build a system. Some of t...

6 Maj 200948min

Populärt inom Utbildning

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