Results 1  10
of
10
Practical type inference for arbitraryrank types
 JOURNAL OF FUNCTIONAL PROGRAMMING
, 2005
"... ..."
Type inference with partial types
 In Proc. International Colloquium on Automata, Languages, and Programming
, 1988
"... As a partial solution to the problem of combining static and dynamic typing in a language with parametric polymorphism, this paper introduces a new form of type expressions which represent partial type information. These expressions are meant to capture the type information statically derivable from ..."
Abstract

Cited by 49 (0 self)
 Add to MetaCart
(Show Context)
As a partial solution to the problem of combining static and dynamic typing in a language with parametric polymorphism, this paper introduces a new form of type expressions which represent partial type information. These expressions are meant to capture the type information statically derivable from heterogeneous objects. The new ground types form a semilattice of subtypes and require type inference based on inclusion constraints. We discuss the existence and form of principal types under this extension and present a semidecision procedure for the complete type inference problem. 1.
Closed Types for a Safe Imperative MetaML
, 2001
"... This paper addresses the issue of safely combining computational eects and multistage programming. We propose a type system, which exploits a notion of closed type, to check statically that an imperative multistage program does not cause runtime errors. Our approach is demonstrated formally for a ..."
Abstract

Cited by 38 (11 self)
 Add to MetaCart
This paper addresses the issue of safely combining computational eects and multistage programming. We propose a type system, which exploits a notion of closed type, to check statically that an imperative multistage program does not cause runtime errors. Our approach is demonstrated formally for a core language called MiniML ref . This core language safely combines multistage constructs and MLstyle references, and is a conservative extension of MiniML ref , a simple imperative subset of SML. In previous work, we introduced a closed type constructor , which was enough to ensure the safe execution of dynamically generated code in the pure fragment of MiniML ref .
Reasoning Using HigherOrder Abstract Syntax in a HigherOrder Logic Proof Environment: Improvements to Hybrid and a Case Study
"... is a joint program with Carleton University, administered by the Ottawa ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
(Show Context)
is a joint program with Carleton University, administered by the Ottawa
Modular Monadic Semantics
"... Modular monadic semantics is a highlevel and modular form of denotational semantics. It is capable of capturing individual programming language features as small building blocks which can be combined to form a programming language of arbitrary complexity. Interactions between features are isolated ..."
Abstract
 Add to MetaCart
(Show Context)
Modular monadic semantics is a highlevel and modular form of denotational semantics. It is capable of capturing individual programming language features as small building blocks which can be combined to form a programming language of arbitrary complexity. Interactions between features are isolated in such a way that the building blocks are invariant. This paper explores the theory and application of modular monadic semantics, including the building blocks for individual programming language features, equational reasoning with laws and axioms, modular proofs, program transformation, modular interpreters, and semanticsdirected compilation. We demonstrate that modular monadic semantics makes programming languages easier to specify, reason about, and implement than the alternative of using conventional denotational semantics. Our contributions include: (a) the design of a fully modular interpreter based on monad transformers, including important features missing from several earlier efforts, (b) a method to lift monad operations through monad transformers, including difficult cases not achieved in earlier work, (c) a study of the semantic implications of the order of monad transformer composition, (d) a formal theory of modular monadic semantics that justifies our choice of liftings based on a notion of naturality, and (e) an implementation of our interpreter in Gofer, whose constructor classes provide just the added power over Haskell type classes to allow precise and convenient expression of our ideas. A note to reviewers: this paper is rather long. Short of resorting to “Part I / Part II”, the one way we see to shorten it would be to remove Section 4 and its Appendix B, which would amount to eliminating contribution (e) above. This would shorten the paper by about 12 pages.
Polymorphic Typing of Heterogeneous Lists
"... ion and concretization operator from pattern list type to uniform ML list type The abstraction AbsML that maps every pattern list type scheme to a set of standard ML type scheme results from the definition of the concretization and the ordering vP on pattern list types. Property 2. The abstraction ..."
Abstract
 Add to MetaCart
ion and concretization operator from pattern list type to uniform ML list type The abstraction AbsML that maps every pattern list type scheme to a set of standard ML type scheme results from the definition of the concretization and the ordering vP on pattern list types. Property 2. The abstraction and concretization functions (AbsML ; ConcML ) define a lower approximation. ae ` E ) øML list ae ` null(E1) ) bool ae ` E1 ) øML ae ` E2 ) øML list ae ` E1 :: E2 ) øML list ae ` E ) øML list ae ` head(E) ) øML ae ` E1 ) øML list ae ` tail(E1) ) øML list Figure 8: Standard ML list operator behavior For example the abstraction of the pattern list type (ff ! ff)(ff ! num)(!) list of the list x:x :: x:0 :: [] is: (ff ! num) list. With respect to the abstraction and concretization functions (AbsML ; ConcML ), we derive the set of rules describing the behavior of list operators on MLtypes listed on figure 8from the set of rules describing the behavior of list operators on patter...
Contributions to MetaModeling Tools and Methods
, 2005
"... Highly integrated domainspecific environments are essential for the efficient design of complex physical products. However, developing such design environments is today a resourceconsuming errorprone process that is largely manual. Metamodeling and metaprogramming are the key to the efficient d ..."
Abstract
 Add to MetaCart
(Show Context)
Highly integrated domainspecific environments are essential for the efficient design of complex physical products. However, developing such design environments is today a resourceconsuming errorprone process that is largely manual. Metamodeling and metaprogramming are the key to the efficient development of such environments. The ultimate goal of our research is the development of a metamodeling approach and its associated metaprogramming methods for the synthesis of modeldriven product design environments that support modeling and simulation. Such environments include modeleditors, compilers, debuggers and simulators. This thesis presents several contributions towards this vision, in the context of the Modelica framework. Thus, we have first designed a metamodel for the objectoriented declarative modeling language Modelica, which facilitates the development of tools for analysis, checking, querying, documentation, transformation and management of Modelica models. We have used XML Schema for the representation of the metamodel, namely, ModelicaXML. Next, we have focused on the automatic composition, refactoring and transformation of Modelica models. We have
Under consideration for publication in J. Functional Programming 1 Deciding Validity in a Spatial Logic for Trees
"... We consider a propositional spatial logic for finite trees. The logic includes A  B (tree composition), A ⊲ B (the implication induced by composition), and 0 (the unit of composition). We show that the satisfaction and validity problems are equivalent, and decidable. The crux of the argument is dev ..."
Abstract
 Add to MetaCart
(Show Context)
We consider a propositional spatial logic for finite trees. The logic includes A  B (tree composition), A ⊲ B (the implication induced by composition), and 0 (the unit of composition). We show that the satisfaction and validity problems are equivalent, and decidable. The crux of the argument is devising a finite enumeration of trees to consider when deciding whether a spatial implication is satisfied. We introduce a sequent calculus for the logic, and show it to be sound and complete with respect to an interpretation in terms of satisfaction. Finally, we describe a complete proof procedure for the sequent calculus. We envisage applications in the area of logicbased type systems for semistructured data. We describe a small programming language based on this idea. 1
Under consideration for publication in J. Functional Programming 1 Typing Haskell in Haskell∗
"... Haskell benefits from a sophisticated type system, but implementors, programmers, and researchers suffer because it has no formal description. To remedy this shortcoming, we present a Haskell program that implements a Haskell typechecker, thus providing a mathematically rigorous specification in a n ..."
Abstract
 Add to MetaCart
Haskell benefits from a sophisticated type system, but implementors, programmers, and researchers suffer because it has no formal description. To remedy this shortcoming, we present a Haskell program that implements a Haskell typechecker, thus providing a mathematically rigorous specification in a notation that is familiar to Haskell users. We expect this program to fill a serious gap in current descriptions of Haskell, both as a starting point for discussions about existing features of the type system, and as a platform from which to explore new proposals. 1