We present an extension of a statically typed language with a special type Dynamic and explicit type tagging and checking operations (coercions). Programs in run-time typed languages are viewed as incomplete programs that are to be completed to well-typed programs by explicitly inserting coercions into them. Such completions are generally not unique. If the meaning of an incomplete program is to be the meaning of any of its completions and if it is too be unambiguous it is necessary that all its completions are coherent (semantically equivalent). We characterize with an equational theory the properties a semantics must satisfy to be coherent. Since “naive ” coercion evaluation does not satisfy all of the coherence equations we ex-clude cert...
Thesis (Ph.D.) - Indiana University, Luddy School of Informatics, Computing, and Engineering/Univers...
Gradually typed languages offer both static and dynamic checking of program invariants, from simple ...
Gradual typing is a discipline for integrating dynamic checking into a static type system. Since its...
We present an extension of a statically typed language with a special type Dynamic and explicit type...
AbstractWe present the dynamically typed λ-calculus, an extension of the statically typed λ-calculus...
Dynamic typing is a program analysis targeted at removing runtime tagging and untagging operations i...
Gradual type systems offer a smooth continuum between static and dynamic typing by permitting the fr...
Statically typed programming languages allow earlier error checking, better enforcement of disciplin...
A number of important program rewriting scenarios can be recast as type-directed coercion insertion....
A key challenge when statically typing so-called dynamic languages is the ubiquity of value-based ov...
There are situations in programmingwhere some dynamic typing is needed, even in the presence of adva...
Static and dynamic type systems have well-known strengths and weaknesses, and each is better suited ...
Dependently typed programming languages provide a way to write programs, specifications, and correct...
Herman et al. pointed out that the insertion of run-time checks into a gradually typed program could...
We describe a new method for polymorphic type inference for the dy-namically typed language Scheme. ...
Thesis (Ph.D.) - Indiana University, Luddy School of Informatics, Computing, and Engineering/Univers...
Gradually typed languages offer both static and dynamic checking of program invariants, from simple ...
Gradual typing is a discipline for integrating dynamic checking into a static type system. Since its...
We present an extension of a statically typed language with a special type Dynamic and explicit type...
AbstractWe present the dynamically typed λ-calculus, an extension of the statically typed λ-calculus...
Dynamic typing is a program analysis targeted at removing runtime tagging and untagging operations i...
Gradual type systems offer a smooth continuum between static and dynamic typing by permitting the fr...
Statically typed programming languages allow earlier error checking, better enforcement of disciplin...
A number of important program rewriting scenarios can be recast as type-directed coercion insertion....
A key challenge when statically typing so-called dynamic languages is the ubiquity of value-based ov...
There are situations in programmingwhere some dynamic typing is needed, even in the presence of adva...
Static and dynamic type systems have well-known strengths and weaknesses, and each is better suited ...
Dependently typed programming languages provide a way to write programs, specifications, and correct...
Herman et al. pointed out that the insertion of run-time checks into a gradually typed program could...
We describe a new method for polymorphic type inference for the dy-namically typed language Scheme. ...
Thesis (Ph.D.) - Indiana University, Luddy School of Informatics, Computing, and Engineering/Univers...
Gradually typed languages offer both static and dynamic checking of program invariants, from simple ...
Gradual typing is a discipline for integrating dynamic checking into a static type system. Since its...