[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,
|
||||
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
|
||||
Haskell, Java, OCaml, and Typed Racket have seen proposals for detecting
|
||||
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
|
||||
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: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