[icfp] other nice things
This commit is contained in:
parent
2d6b11486b
commit
a5f44b69d1
|
@ -1136,7 +1136,7 @@
|
||||||
|
|
||||||
(define mbb-sigmod-2006
|
(define mbb-sigmod-2006
|
||||||
(make-bib
|
(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")
|
#:author (authors "Erik Meijer" "Brain Beckman" "Gavin Bierman")
|
||||||
#:location (proceedings-location sigmod #:pages '(706 706))
|
#:location (proceedings-location sigmod #:pages '(706 706))
|
||||||
#:date 2006))
|
#:date 2006))
|
||||||
|
@ -1192,7 +1192,7 @@
|
||||||
|
|
||||||
(define fcdb-jfp-2012
|
(define fcdb-jfp-2012
|
||||||
(make-bib
|
(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")
|
#:author (authors "Matthew Flatt" "Ryan Culpepper" "David Darais" "Robert Bruce Findler")
|
||||||
#:location (proceedings-location jfp #:pages '(181 216))
|
#:location (proceedings-location jfp #:pages '(181 216))
|
||||||
#:date 2012))
|
#:date 2012))
|
||||||
|
@ -1224,3 +1224,10 @@
|
||||||
#:author (authors "Daan Leijen" "Erik Meijer")
|
#:author (authors "Daan Leijen" "Erik Meijer")
|
||||||
#:location (proceedings-location dsl #:pages '(109 122))
|
#:location (proceedings-location dsl #:pages '(109 122))
|
||||||
#:date 1999))
|
#: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.}
|
we have only tested that interface in scripts.}
|
||||||
This gives us confidence that retroactively opting-in to our library truly is a 1-line
|
This gives us confidence that retroactively opting-in to our library truly is a 1-line
|
||||||
effort.
|
effort.
|
||||||
Removing type annotations and casts made redundant by our library is, however,
|
Using the library also enables the removal of casts and type annotations made
|
||||||
still a manual task.
|
redundant by our elaborations.
|
||||||
|
|
||||||
Compiling with our library adds no statistically significant overhead, but
|
Compiling with our library adds no statistically significant overhead, but
|
||||||
tends to produce slightly larger bytecode files due to the inserted
|
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}
|
@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.
|
tools for writing macros.
|
||||||
It provides the @racket[syntax-parse] and @racket[syntax-parser] forms that
|
It provides the @racket[syntax-parse] and @racket[syntax-parser] forms that
|
||||||
we have used extensively above.
|
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].
|
static analyzer@~cite[hm-icfp-2004].
|
||||||
Their illustrative examples were format strings, regular expressions,
|
Their illustrative examples were format strings, regular expressions,
|
||||||
and database queries.
|
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
|
transformations to a typed language, suggest new applications, and
|
||||||
describe how to compose the results of analyses.
|
describe how to compose the results of analyses.
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
without changing the type system.
|
without changing the type system.
|
||||||
We have implemented the technique as a Typed Racket library.
|
We have implemented the technique as a Typed Racket library.
|
||||||
From the programmers' viewpoint, simply importing the library makes the type
|
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"]
|
@;@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
|
@emph{format directives} describing @emph{where} and @emph{how} values can be
|
||||||
spliced into the format string.
|
spliced into the format string.
|
||||||
@; TODO scheme or common lisp?
|
@; 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.
|
to prefix format directives.
|
||||||
For example, @racket[~s] converts any value to a string and @racket[~b] converts a
|
For example, @racket[~s] converts any value to a string and @racket[~b] converts a
|
||||||
number to binary form.
|
number to binary form.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user