Christopher Colby

Learn More
This paper presents the initial results of a project to determine ifthe techniques of <italic> proof-carrying code</italic> and <italic>certifying compilers</italic> can be applied to programming languages of realistic size and complexity. The experiment shows that: (1) it is possible to implement a certifying native-code compiler for a large subset of the(More)
The following guidelines are an interpretation of the evidence presented in the 2010 International Consensus on Cardiopulmonary Resuscitation and Emergency Cardiovascular Care Science With Treatment Recommendations1). They apply primarily to newly born infants undergoing transition from intrauterine to extrauterine life, but the recommendations are also(More)
We study in this paper the problem of analyzing implementations of open systems --- systems in which only some of the components are present. We present an algorithm for automatically closing an open concurrent reactive system with its most general environment, i.e., the environment that can provide any input at any time to the system. The result is a(More)
We present trace-based program analysts, a semantics-based framework for statically analyzing and transforming programs with loops, assignments, and nested record structures. Trace-based analyses are based on transfer transition, systems, which define the small-step operational semantics of programming languages. Intuitively, transfer transition systems(More)
The following guidelines are an interpretation of the evidence presented in the 2010 International Consensus on Cardiopulmonary Resuscitation and Emergency Cardiovascular Care Science With Treatment Recommendations1). They apply primarily to newly born infants undergoing transition from intrauterine to extrauterine life, but the recommendations are also(More)
Modern interactive services such as information and e-commerce services are becoming increasingly more flexible in the types of user interfaces they support. These interfaces incorporate automatic speech recognition and natural language understanding, and include graphical user interfaces on the desktop and web-based interfaces using applets and HTML forms.(More)
The goal of program analysis is to determine automatically properties of the run-time behavior of a program. Tools of software development, such as compilers, program-veri cation systems, and program-comprehension systems, are in large part based on program analyses. Most semantics-based program analyses model the runtime behavior of a program as a trace of(More)
We present a general framework for provably safe mobile code. It relies on a formal definition of a safety policy and explicit evidence for compliance with this policy which is attached to a binary. Concrete realizations of this framework are proof-carrying code (PCC), where the evidence for safety is a formal proof generated by a certifying compiler, and(More)
We describe Triveni, a framework and API for integrating threads and events. The design of Triveni is based on an algebra, including preemption combinators, of processes. Triveni is compatible with existing threads standards, such as Pthreads and Java threads, and with the event models structured on the Observer pattern. We describe the software(More)