Browsing by Author "Cartwright, Robert"
Now showing 1 - 7 of 7
Results Per Page
Sort Options
Item A Practical Soft Type System for Scheme(1993-12-06) Cartwright, Robert; Wright, AndrewSoft type systems provide the benefits of static type checking for dynamically typed languages without rejecting untypable programs. A soft type checker infers types for variables and expressions and inserts explicit run-time checks to transform untypable programs to typable form. We describe a practical soft type system for R4RS Scheme. Our type checker uses a representation for types that is expressive, easy to interpret, and supports efficient type inference. Soft Scheme supports all of R4RS Scheme, including procedures of fixed and variable arity, assignment, continuations, and top-level definitions. Our implementation is available by anonymous FTP.Item An Experimental Computer Network to Support Numerical Computation(1982-03) Cartwright, Robert; Dennis, J.E. Jr.; Jump, J. Robert; Kennedy, KenThe Computer Science faculty at Rice University proposes to design and implement an experimental distributed computing system to support numerical computation. Although local networks of single user machines have already been proven for many nonnumerical applications, the concept has yet to be tried in the context of numerical program development and execution. The Rice Numerical Network, or R^n, will consist of approximately 24 single-user numerical machines equipped with high-resolution bit-mapped screens, a 32-bit central processor, and vector floating point hardware. It will also include several specialized server nodes supporting a high-performance vector floating point processor and various peripheral devices including a gateway to the SCnet communications network linking the nation's major computer science research centers. The new facility will support a coherent research program in software systems, computer architecture, and quality numerical software, directed at creating a modern reactive environment for numerical computation. Despite stiff competition from industry and other universities, Rice University has recently assembled the nucleus of computer science faculty required to develop an innovative distributed computing system supporting vector numerical computation and to evaluate its utility as a tool for solving important scientific problems.Item Completing the Java type system(2008) Smith, Daniel; Cartwright, RobertThe recent introduction of type variables and wildcards to the Java language, while greatly enriching the expressivity of the type system, comes with prohibitions against a variety of natural and useful expressions. Principal among these is the declaration of type variables with lower (" super ") bounds, naturally motivated by the support for such bounds on wildcards. We describe two variations on the Java type system that enhance the current language specification with support for these features. These variations must address the inference of method type arguments, and in so doing improve the inference algorithm so that it is both sound and complete. The first, simpler variation makes use of union types ; the second more closely matches the current Java type system and formalizes its notion of "infinite types," as produced by static analysis.Item Fully Abstract Semantics for Observably Sequential Languages(1994-01) Cartwright, Robert; Curien, Pierre-Louis; Felleisen, MatthiasOne of the major challenges in denotational semantics is the construction of a fully abstract semantics for a higher-order sequential programming language. For the past fifteen years, research on this problem has focused on developing a semantics forPCF, an idealized functional programming language based on the typed lambda calculus. Unlike most practical languages, PCF has no facilities for observing and exploiting the evaluation order of arguments to procedures. Since we believe that these facilities play a crucial role in sequential computation, this paper focuses on a sequential extension of PCF, called SPCF, that includes two classes of control operators: a possibly empty set of error generators and a collection of catch and throw constructs. For each set of error generators, the paper presents a fully abstract semantics for SPCF. If the set of error generators is empty, the semantics interprets all procedures—including catch and throw—as Berry-Curien sequential algorithms. If the language contains error generators, procedures denote {\it manifestly sequential} functions. The manifestly sequential functions form aScott domain that is isomorphic to a domain of decision trees, which is the natural extension of the Berry-Curien domain of sequential algorithms in the presence of errors.Item Making Hybrid Systems Easier to Model, Simulate, and Visualize(2019-03-25) Zeng, Yingfu; Cartwright, Robert; Taha, WalidSpecifying the behavior desired of hybrid systems requires analytical modeling of physical phenomena. Similarly, testing them requires simulation of continuous systems. While numerous tools support later stages of developing simulation codes, there is still a large gap between analytical modeling and running simulation code, which significantly impedes the ability of scientists and engineers to develop novel hybrid systems. The support for partial derivative, in particular, is limited in present mainstream modeling and simulation languages as well as reachability analysis tools for hybrid systems. Either they do not provide such language construct, requiring the modeler to manually transform the model or its correctness is unclear. In this thesis, we demonstrate that compile-time transformations can improve hybrid system formalisms by supporting partial derivatives and equational constraints. These improvements allow the user to express, among other things, the Euler-Lagrangian equation, and to capture practically relevant constraints that arise naturally in mechanical systems. Achieving this level of expressivity requires using a binding time-analysis (BTA), program differentiation, symbolic Gaussian elimination, and abstract interpretation using interval analysis. We give an operational semantics for the specialization process along with a declarative and algorithmic specifications of the binding-time analysis. A type safety theorem is given to show the correctness of the semantics for specialization. The declarative specification of binding-time analysis is used to prove soundness with respect to the specialization process. We also provide an open-source implementation demonstrating our approach.Item Program Specification Testing within an Integrated Programming Environment(1983-11) Cartwright, RobertOur research breaks down into three parts. First, we are exploring the mathematical foundations of program specifications and applying the understanding that we gain to the subject of specification language design. The success of a specification and testing system hinges on the quality of the underlying specification language. We are particularly concerned with the special problems posed by floating point arithmetic and concurrency. Second, we are developing more sophisticated methods - employing a judicious combination of verification and testing - for certifying that programs implement their formal specifications. Finally, to test the effectiveness of ideas, we are building an experimental program specification and testing system as an extension of the R^n Programming Environment already under development at Rice.Item The Semantics of Lazy (and Industrious) Evaluation(1983-12) Cartwright, Robert; Donahue, James