Scott F. Smith

Learn More
We present an actor language which is an extension of a simple functional language, and provide an operational semantics for this extension. Actor configurations represent open distributed systems, by which we mean that the specification of an actor system explicitly takes into account the interface with external components. We study the composability of(More)
partially supported by NSF grant CCR and NSF grant CCR Internet kim cs williams edu yInternet luca src dec com zInternet castagna dmi ens fr xJonathan Eifrig Scott Smith Valery Trifonov Contact Scott Smith Research partially supported by NSF grant CCR and AFOSR grant F Internet scott cs jhu edu partially supported by NSF grants CCR and CCR Internet leavens(More)
A constrained type is a type that comes with a set of subtyping constraints on variables occurring in the type. Constrained type inference systems are a natural generalization of Hindley/Milner type inference to languages with subtyping. This paper develops several subtyping relations on polymorphic constrained types of a general form that allows recursive(More)
The Java Security Architecture includes a dynamic mechanism for enforcing access control checks, the so-called <i>stack inspection</i> process. While the architecture has several appealing features, access control checks are all implemented via dynamic method calls. This is a highly nondeclarative form of specification that is hard to read, and that leads(More)
We de ne a powerful type inference mechanism with application to object oriented programming The types inferred are recursively constrained types types that come with a system of constraints These types may be viewed as generalizations of recur sive types and F bounded polymorphic types the forms of type that are necessary to properly encode object typings(More)
This paper shows how type effect systems can be combined with model-checking techniques to produce powerful, automatically verifiable program logics for higher-order programs. The properties verified are based on the ordered sequence of events that occur during program execution—an event history. Our type and effect systems automatically infer conservative(More)
Precise type information is invaluable for analysis and optimization of object-oriented programs. Some forms of polymorphism found in object-oriented languages pose significant difficulty for type inference, in particular data polymorphism. Agesen’s Cartesian Product Algorithm (CPA) can analyze programs with parametric polymorphism in a reasonably precise(More)
A number of security systems for programming languages have recently appeared, including systems for enforcing some form of <i>access control</i>. The Java JDK 1.2 security architecture is one such system that is widely studied and used. While the architecture has many appealing features, access control checks are all implemented via dynamic method calls.(More)