Potentially Useful Paper, "Turnstile: Type Systems as Macros"

120 views
Skip to first unread message

Ian Tegebo

unread,
Nov 12, 2016, 7:11:12 PM11/12/16
to Shen
I thought this community might be interested in the paper "Type Systems as Macros" [1].

Abstract

We present Turnstile, a metalanguage for creating typed embedded languages. To implement the type system, programmers write type checking rules resembling traditional judgment syntax. To implement the semantics, they incorporate elaborations into these rules. Turnstile critically depends on the idea of linguistic reuse. It exploits a macro system in a novel way to simultaneously type check and rewrite a surface program into a target language. Reusing a macro system also yields modular implementations whose rules may be mixed and matched to create other systems. Combined with compiler and runtime reuse, Turnstile produces performant typed languages with little effort.

For a bit of context, I believe this is an outgrowth of the Racket/PLTScheme approach wherein languages are defined within languages.  See Ziggurat [2] for prior work (though I understand Turnstile is a different approach by different people).  

Mark Tarver

unread,
Nov 12, 2016, 7:23:59 PM11/12/16
to qil...@googlegroups.com
Yes; very much in the direction of Shen, just 5 years late.   The rest - about 11 years after Qi and a strong influence of notation.  However no reference to either in the paper.  Pretty much par for the course.  A classic case of Not Invented Here from the Scheme community.   It is hard to believe that Shen could be sitting on their doorstep for years w.o. anybody waking up over there.

However defining DSLs has been part of the Lisp tradition for years; it is not specifically a Racket thing.

Mark
.   

--
You received this message because you are subscribed to the Google Groups "Shen" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qilang+unsubscribe@googlegroups.com.
To post to this group, send email to qil...@googlegroups.com.
Visit this group at https://groups.google.com/group/qilang.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages