Results 1  10
of
35
A Systematic Approach to Static Access Control
, 2001
"... ... This paper develops type systems which can statically guarantee the success of these checks. Our systems allow security properties of programs to be clearly expressed within the types themselves, which thus serve as static declarations of the security policy. We develop these systems using a sys ..."
Abstract

Cited by 70 (10 self)
 Add to MetaCart
... This paper develops type systems which can statically guarantee the success of these checks. Our systems allow security properties of programs to be clearly expressed within the types themselves, which thus serve as static declarations of the security policy. We develop these systems using a systematic methodology: we show that the securitypassing style translation, proposed by Wallach, Appel and Felten as a dynamic implementation technique, also gives rise to static securityaware type systems, by composition with conventional type systems. To de ne the latter, we use the general HM(X) framework, and easily construct several constraint and unificationbased type systems.
Type Inference with Structural Subtyping: A faithful formalization of an efficient constraint solver
, 2003
"... We are interested in type inference in the presence of structural subtyping from a pragmatic perspective. This work combines theoretical and practical contributions: first, it provides a faithful description of an efficient algorithm for solving and simplifying constraints; whose correctness is f ..."
Abstract

Cited by 19 (4 self)
 Add to MetaCart
We are interested in type inference in the presence of structural subtyping from a pragmatic perspective. This work combines theoretical and practical contributions: first, it provides a faithful description of an efficient algorithm for solving and simplifying constraints; whose correctness is formally proved. Besides, the framework has been implemented in Objective Caml, yielding a generic type inference engine. Its efficiency is assessed by a complexity result and a series of experiments in realistic cases.
Callbyvalue mixin modules: Reduction semantics, side effects, types
 Programming Languages & Systems, 13th European Symp. Programming
, 2004
"... Mixin modules are a framework for modular programming that supports code parameterization, incremental programming via late binding and redefinitions, and crossmodule recursion. In this paper, we develop a language of mixin modules that supports callbyvalue evaluation, and formalize a reduction ..."
Abstract

Cited by 15 (4 self)
 Add to MetaCart
(Show Context)
Mixin modules are a framework for modular programming that supports code parameterization, incremental programming via late binding and redefinitions, and crossmodule recursion. In this paper, we develop a language of mixin modules that supports callbyvalue evaluation, and formalize a reduction semantics and a sound type system for this language.
Static usebased object confinement
 International Journal of Information Security
, 2005
"... Abstract. The confinement of object references is a significant security concern for modern programming languages. We define a language that serves as a uniform model for a variety of confined object reference systems. A usebased approach to confinement is adopted, which we argue is more expressive ..."
Abstract

Cited by 12 (3 self)
 Add to MetaCart
(Show Context)
Abstract. The confinement of object references is a significant security concern for modern programming languages. We define a language that serves as a uniform model for a variety of confined object reference systems. A usebased approach to confinement is adopted, which we argue is more expressive than previous communicationbased approaches. We then develop a readable, expressive type system for static analysis of the language, along with a type safety result demonstrating that runtime checks can be eliminated. The language and type system thus serve as a reliable, declarative, and efficient foundation for secure capabilitybased programming and object confinement.
Type inference, principal typings, and letpolymorphism for firstclass mixin modules
 HeriotWatt Univ., School of Math. & Comput. Sci
, 2005
"... A mixin module is a programming abstraction that simultaneously generalizes λabstractions, records, and mutually recursive definitions. Although various mixin module type systems have been developed, no one has investigated principal typings or developed type inference for firstclass mixin modules ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
(Show Context)
A mixin module is a programming abstraction that simultaneously generalizes λabstractions, records, and mutually recursive definitions. Although various mixin module type systems have been developed, no one has investigated principal typings or developed type inference for firstclass mixin modules, nor has anyone added Milner’s letpolymorphism to such a system. This paper proves that typability is NPcomplete for the naive approach followed by previous mixin module type systems. Because a λcalculus extended with record concatenation is a simple restriction of our mixin module calculus, we also prove the folk belief that typability is NPcomplete for the naive early type systems for record concatenation. To allow feasible type inference, we present Martini, a new system of simple types for mixin modules with principal typings. Martini is conceptually simple, with no subtyping and a clean and balanced separation between unificationbased type inference with type and row variables and constraint solving for safety of linking and field extraction. We have implemented a type inference algorithm and we prove its complexity to be O(n 2), or O(n) given a fixed bound on the number of field labels. 1 To prove the complexity, we need to present an algorithm for row unification that may have been implemented by others, but which we could not find written down anywhere. Because Martini has principal typings, we successfully extend it with Milner’s letpolymorphism. Categories and Subject Descriptors D.3.3 [Programming Languages]: Language Constructs and Features—Data types and structures; modules, packages; polymorphism
Simple type inference for structural polymorphism
 In: The Ninth International Workshop on Foundations of ObjectOriented Languages
, 2002
"... We propose a new way to mix constrained types and type inference, where the interaction between the two is minimal. By using local constraints embedded in types, rather than the other way round, we obtain a system which keeps the usual structure of an HindleyMilner type system. In practice, this me ..."
Abstract

Cited by 9 (4 self)
 Add to MetaCart
(Show Context)
We propose a new way to mix constrained types and type inference, where the interaction between the two is minimal. By using local constraints embedded in types, rather than the other way round, we obtain a system which keeps the usual structure of an HindleyMilner type system. In practice, this means that it is easy to introduce local constraints in existing type inference algorithms. Eventhough our system is notably weaker than general constraintbased type systems, making it unable to handle subtyping for instance, it is powerful enough to accomodate many features, from simple polymorphic records à la Ohori to Objective Caml’s polymorphic variants, and accurate typing of pattern matching (i.e. polymorphic message dispatch), all these through tiny variations in the constraint part of the system. 1.
A Reduction Semantics for CallbyValue Mixin Modules
, 2002
"... Module systems are important for software engineering: they facilitate code reuse without compromising the correctness of programs. However, they still lack some flexibility: first, they do not allow mutually recursive definitions to span module boundaries; second, denitions inside modules are bound ..."
Abstract

Cited by 9 (7 self)
 Add to MetaCart
Module systems are important for software engineering: they facilitate code reuse without compromising the correctness of programs. However, they still lack some flexibility: first, they do not allow mutually recursive definitions to span module boundaries; second, denitions inside modules are bound early, and cannot be overridden later, as opposed to inheritance and overriding in classbased objectoriented languages, which follow the late binding semantics. This paper examines an alternative, hybrid idea of modularization concept, called mixin modules. We develop a language of callbyvalue mixin modules with a reduction semantics, and a sound type system for it, guaranteeing that programs will run correctly.
A type system for CHR
 IN SCHRIJVERS AND FRÜHWIRTH (2005B
, 2005
"... We propose a generic type system for the Constraint Handling Rules (CHR), a rewriting rule language for implementing constraint solvers. CHR being a highlevel extension of a host language, such as Prolog or Java, this type system is parameterized by the type system of the host language. We show th ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
(Show Context)
We propose a generic type system for the Constraint Handling Rules (CHR), a rewriting rule language for implementing constraint solvers. CHR being a highlevel extension of a host language, such as Prolog or Java, this type system is parameterized by the type system of the host language. We show the consistency of the type system for CHR w.r.t. its operational semantics. We also study the case when the host language is a constraint logic programming language, typed with the prescriptive type system we developed in our previous work. In particular, we show the consistency of the resulting type system w.r.t. the extended execution model CLP+CHR. This system is implemented through an extension of our type checker TCLP for constraint logic languages. We report on experimental results about the typechecking of 12 CHR solvers and programs, including TCLP itself.
An extension of HM(X) with first class existential and universal datatypes
"... We propose a conservative extension of HM(X), a generic constraintbased type inference framework, with existential (a.k.a. abstract) and universal (a.k.a. polymorphic) datatypes. In the first part of the article, which remains abstract of the type and constraint language (i.e. the logic X), we intr ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
We propose a conservative extension of HM(X), a generic constraintbased type inference framework, with existential (a.k.a. abstract) and universal (a.k.a. polymorphic) datatypes. In the first part of the article, which remains abstract of the type and constraint language (i.e. the logic X), we introduce the type system, prove its safety and define a type inference algorithm which computes principal typing judgments. In the second part, we propose a realistic constraint solving algorithm for the case of structural subtyping, which handles the nonstandard construct of the constraint language generated by type inference: a form of bounded universal quantification.
Type inference and principal typings for symmetric record concatenation and mixin modules
, 2005
"... The obvious simple type system for a λcalculus extended with record concatenation has a typability problem that was believed to be expensive, and which we prove NPcomplete. Some previous approaches to this problem employ subtyping polymorphism. We present Bowtie, a system of simple types for rec ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
The obvious simple type system for a λcalculus extended with record concatenation has a typability problem that was believed to be expensive, and which we prove NPcomplete. Some previous approaches to this problem employ subtyping polymorphism. We present Bowtie, a system of simple types for record concatenation which has principal typings, no subtyping, and a clean separation between unificationbased type inference with type and row variables and constraint solving for safety of concatenation and field selection. Because Bowtie has no subtyping, we succeeded in straightforwardly generalizing it to a similar type system, Martini, for mixin modules. The type inference complexity for both systems is O(n 2), or O(n) given a bounded number of field labels. 1 We have implemented type inference for both type systems. Because they have principal typings, extending either with Milner’s letpolymorphism is straightforward.