Stefan pushed to branch report/els-2017 at Stefan / Typer
Commits: ca47bc0c by Stefan Monnier at 2017-05-16T17:58:32-04:00 -
- - - - -
2 changed files:
- paper.tex - refs.bib
Changes:
===================================== paper.tex ===================================== --- a/paper.tex +++ b/paper.tex @@ -70,7 +70,8 @@
\begin{document}
-\title{Typer: An infix statically typed Lisp} +%% \title{Typer: An infix statically typed Lisp} +\title{Lisp-style macros with an infix syntax}
\author{Pierre Delaunay} \email{delaunap@iro.umontreal.ca} @@ -125,7 +126,8 @@ %% }
\begin{abstract} -We present the programming language Typer which is a combination of Lisp, +We show how Lisp-style macros and extensible infix syntax are combined in +the programming language Typer, which is a combination of Lisp, ML, and Coq. Its name is an homage to Scheme(r) with which it shares the goal of pushing as much functionality as possible outside of the core and into libraries. While it superficially looks more like Haskell and ML, with @@ -133,9 +135,11 @@ infix notation and static polymorphic typing, it tries to preserve the syntactic malleability of Lisp by relying on the traditional Lisp-style S-expressions and macros.
-Its main tools to this end are the use of an infix notation for -S-expressions, as well as the use of a Pure Type System to reduce the number -of syntactic categories and generally make ``everything'' first-class. +Its main tool to this end is the use of an infix notation for +S-expressions, which makes it possible to parse sub-expressions before +knowing what role they will play. +%% as well as the use of a Pure Type System to reduce the number +%% of syntactic categories and generally make ``everything'' first-class. \end{abstract}
\begin{CCSXML} @@ -180,6 +184,8 @@ of syntactic categories and generally make ``everything'' first-class. \renewcommand \shortauthors { P. Delaunay, V. Archambault-Bouffard, and S. Monnier}
+\TODO{Cite \cite{Culpepper10}} + \section{Introduction}
Almost all programming languages support one form or another of
===================================== refs.bib ===================================== --- a/refs.bib +++ b/refs.bib @@ -1687,6 +1687,28 @@ toiti available." }
+@InProceedings{Culpepper10, + author = {Ryan Culpepper and}# Felleisen, + title = {Fortifying Macros}, + crossref = {ICFP10}, + url = {http://www.ccs.neu.edu/scheme/pubs/icfp10-cf.pdf%7D, + abstract = {Existing macro systems force programmers to make a choice + between clarity of specification and robustness. If they + choose clarity, they must forgo validating significant + parts of the specification and thus produce low-quality + language extensions. If they choose robustness, they must + write in a style that mingles the implementation with the + specification and therefore obscures the latter. + This paper introduces a new language for writing macros. + With the new macro system, programmers naturally write + robust language extensions using easy-to-understand + specifications. The system translates these + specifications into validators that detect misuses — + including violations of context-sensitive constraints — + and automatically synthesize appropriate feedback, + eliminating the need for ad hoc validation code.} +} + @Article{Curien96, author = Curien #{and}# Hardin #{and}# Levy, title = {Confluence properties of Weak and Strong Calculi of
View it on GitLab: https://gitlab.com/monnier/typer/commit/ca47bc0cc17d1ba9347f32c4b0cb39b6c979...
--- View it on GitLab: https://gitlab.com/monnier/typer/commit/ca47bc0cc17d1ba9347f32c4b0cb39b6c979... You're receiving this email because of your account on gitlab.com.