[icfp] other nice things
This commit is contained in:
parent
2d6b11486b
commit
a5f44b69d1
|
@ -1136,7 +1136,7 @@
|
|||
|
||||
(define mbb-sigmod-2006
|
||||
(make-bib
|
||||
#:title "LINQ: reconciling object, relations and XML in the .NET framework"
|
||||
#:title "LINQ: Reconciling Object, Relations and XML in the .NET Framework"
|
||||
#:author (authors "Erik Meijer" "Brain Beckman" "Gavin Bierman")
|
||||
#:location (proceedings-location sigmod #:pages '(706 706))
|
||||
#:date 2006))
|
||||
|
@ -1192,7 +1192,7 @@
|
|||
|
||||
(define fcdb-jfp-2012
|
||||
(make-bib
|
||||
#:title "Macros that Work Together: Compile-time bindings, partial expansion, and definition contexts"
|
||||
#:title "Macros that Work Together: Compile-Time Bindings, Partial Expansion, and Definition Contexts"
|
||||
#:author (authors "Matthew Flatt" "Ryan Culpepper" "David Darais" "Robert Bruce Findler")
|
||||
#:location (proceedings-location jfp #:pages '(181 216))
|
||||
#:date 2012))
|
||||
|
@ -1224,3 +1224,10 @@
|
|||
#:author (authors "Daan Leijen" "Erik Meijer")
|
||||
#:location (proceedings-location dsl #:pages '(109 122))
|
||||
#:date 1999))
|
||||
|
||||
(define cf-icfp-2010
|
||||
(make-bib
|
||||
#:title "Fortifying Macros"
|
||||
#:author (authors "Ryan Culpepper" "Matthias Felleisen")
|
||||
#:location (proceedings-location icfp #:pages '(235 246))
|
||||
#:date 2010))
|
||||
|
|
|
@ -25,8 +25,8 @@ In total, we had to modify 6 lines to replace
|
|||
we have only tested that interface in scripts.}
|
||||
This gives us confidence that retroactively opting-in to our library truly is a 1-line
|
||||
effort.
|
||||
Removing type annotations and casts made redundant by our library is, however,
|
||||
still a manual task.
|
||||
Using the library also enables the removal of casts and type annotations made
|
||||
redundant by our elaborations.
|
||||
|
||||
Compiling with our library adds no statistically significant overhead, but
|
||||
tends to produce slightly larger bytecode files due to the inserted
|
||||
|
|
|
@ -328,7 +328,7 @@ Each sub-section title is a technical term;
|
|||
|
||||
@subsection[#:tag "sec:parse"]{Syntax Parse}
|
||||
|
||||
The @racket[syntax/parse] library@~cite[c-dissertation-2010] provides
|
||||
The @racket[syntax/parse] library@~cite[cf-icfp-2010] provides
|
||||
tools for writing macros.
|
||||
It provides the @racket[syntax-parse] and @racket[syntax-parser] forms that
|
||||
we have used extensively above.
|
||||
|
|
|
@ -124,7 +124,7 @@ Our technique builds on the approach of Herman and Meunier, who first
|
|||
static analyzer@~cite[hm-icfp-2004].
|
||||
Their illustrative examples were format strings, regular expressions,
|
||||
and database queries.
|
||||
Relative to their pioneering work, we adapt Herman & Meunier's
|
||||
Relative to their pioneering work, we adapt Herman and Meunier's
|
||||
transformations to a typed language, suggest new applications, and
|
||||
describe how to compose the results of analyses.
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
without changing the type system.
|
||||
We have implemented the technique as a Typed Racket library.
|
||||
From the programmers' viewpoint, simply importing the library makes the type
|
||||
system more perceptive---no annotations or new syntax required.
|
||||
system more perceptive---no annotations or new syntax are required.
|
||||
}
|
||||
|
||||
@;@category["D.3.3" "Programming Languages" "Language Constructs and Features"]
|
||||
|
|
|
@ -64,7 +64,7 @@ All strings are valid format strings; additionally, a format string may contain
|
|||
@emph{format directives} describing @emph{where} and @emph{how} values can be
|
||||
spliced into the format string.
|
||||
@; TODO scheme or common lisp?
|
||||
Racket follows the Lisp tradition@~cite[s-lisp-1990] of using a tilde character (@tt{~})
|
||||
Racket follows the Lisp tradition of using a tilde character (@tt{~})
|
||||
to prefix format directives.
|
||||
For example, @racket[~s] converts any value to a string and @racket[~b] converts a
|
||||
number to binary form.
|
||||
|
|
Loading…
Reference in New Issue
Block a user