[icfp] re-add herman/meunier
This commit is contained in:
parent
a3ece184bc
commit
d19a307665
|
@ -29,17 +29,3 @@ Whereas types support reasoning independent of data representations,
|
||||||
Doing so will catch more errors and enable unconventional forms of polymorphism,
|
Doing so will catch more errors and enable unconventional forms of polymorphism,
|
||||||
all without changes to the language's type system or the programmer's code.
|
all without changes to the language's type system or the programmer's code.
|
||||||
|
|
||||||
@; @; =============================================================================
|
|
||||||
@;
|
|
||||||
@; @parag{Lineage}
|
|
||||||
@;
|
|
||||||
@; Herman and Meunier demonstrated how Racket macros can propagate
|
|
||||||
@; data embedded in string values and syntax patterns to a
|
|
||||||
@; 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
|
|
||||||
@; transformations to a typed language by inserting type annotations and boolean
|
|
||||||
@; guards into the programs.
|
|
||||||
@; Our treatment of definition forms is also new.
|
|
||||||
@;
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ These problems are well known, and are often used to motivate research on
|
||||||
Short of abandoning ship for a completely new type system, languages including
|
Short of abandoning ship for a completely new type system, languages including
|
||||||
Haskell, Java, OCaml, and Typed Racket have seen proposals for detecting
|
Haskell, Java, OCaml, and Typed Racket have seen proposals for detecting
|
||||||
certain values errors or expressing the polymorphism in functions
|
certain values errors or expressing the polymorphism in functions
|
||||||
such as @racket[curry] with few (if any) changes to the existing type system@~cite[ddems-icse-2011 ks-plpv-2006 kkt-pldi-2016 lb-sigplan-2014].
|
such as @racket[curry] with few (if any) changes to the existing type system@~cite[ddems-icse-2011 ew-haskell-2012 ks-plpv-2006 kkt-pldi-2016 lb-sigplan-2014].
|
||||||
What stands between these proposals and their adoption is the complexity or
|
What stands between these proposals and their adoption is the complexity or
|
||||||
annotation burden they impose on language users.
|
annotation burden they impose on language users.
|
||||||
|
|
||||||
|
@ -106,3 +106,17 @@ In sum, the code below will compile using our library's @racket[regexp-match]
|
||||||
@Secref{sec:usage} has more examples.
|
@Secref{sec:usage} has more examples.
|
||||||
@Secref{sec:conclusion} concludes.
|
@Secref{sec:conclusion} concludes.
|
||||||
|
|
||||||
|
@; =============================================================================
|
||||||
|
|
||||||
|
@parag{Lineage}
|
||||||
|
|
||||||
|
Our technique builds on the approach of Herman and Meunier, who first
|
||||||
|
demonstrated how Racket macros can propagate
|
||||||
|
data embedded in string values and syntax patterns to a
|
||||||
|
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
|
||||||
|
transformations to a typed language, suggest new applications, and
|
||||||
|
describe how to compose the results of analyses.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user