Microsoft Research Blog

English

  1. Building User Interfaces by Direct Manipulation 

    January 1, 1988 | Luca Cardelli

    User interfaces based on mice, bitmap displays and windows are becoming commonplace, and there are guidelines on how such interfaces should function [Apple 85]. As a consequence, there is a growing expectation that all programs, no matter how trivial or how complicated, should present a…

  2. Phase Distinctions in Type Theory 

    January 1, 1988 | Luca Cardelli

    Type systems were originally introduced in programming languages to provide a degree of static checking, achieved through typechecking. As type systems become more complex and typechecking more sophisticated, the attribute static becomes less appropriate. The situation is better described by thinking that the execution of…

  3. Reasoning Under Varying and Uncertain Resource Constraints 

    January 1, 1988 | Eric Horvitz

    We describe the use of decision-theory to optimize the value of computation under uncertain and varying resource limitations. The research is motivated by the pursuit of formal models of rational decision making for computational agents centering on the explicit consideration of preferences and resource availability.…

  4. Graphical Search and Replace 

    January 1, 1988 | David Kurlander and Eric A. Bier

    Graphical search is a technique for finding all instances of a graphical pattern in a synthetic picture in which objects are regions bounded by lines and curves. The pattern may describe shape, color and other properties. Matched objects may be allowed to differ from the…

  5. Total domination in interval graphs 

    January 1, 1988 | G. Ramalingam and C. Pandu Rangan

    A total dominating set of a graph G is a subset S of nodes such that each node of G is adjacent to some node of S. We present an O(n2) time algorithm for finding a minimum cardinality total dominating set in an interval graph…

  6. Functional programming on the GRIP multiprocessor 

    January 1, 1988

    Most MIMD computer architectures can be classified as tightly-coupled or loosely-coupled, depending on the relative latencies seen by a processor accessing different parts of its address space. By adding microprogrammable functionality to the memory units, the authors have developed a MIMD computer architecture which explores…

  7. Structural Subtyping and the Notion of Power Type 

    January 1, 1988 | Luca Cardelli

    Many statically and dynamically typed languages attempt to achieve flexibility in their type discipline by some notion of subtyping. Subtyping relaxes the requirement that functions take arguments of a given type, by allowing arguments of any subtype of that type to be given. Such functions…

  8. A study in interactive 3-D rotation using 2-D control devices 

    January 1, 1988 | Abigail Sellen

    This paper describes and evaluates the design of four virtual controllers for use in rotating three-dimensional objects using the mouse. Three of four of these controllers are "new" in that they extend traditional direct manipulation techniques to a 3-D environment. User performance is compared during…

  9. Types for Data-Oriented Languages 

    January 1, 1988 | Luca Cardelli

    By the term data-oriented language, I mean a language whose main concern is in the structuring and handling of data. For contrast, procedure-oriented and process-oriented languages are mostly concerned with expressing algorithms and protocols. Other terms, such as the much abused object-oriented, can be used…

  10. A Simple and Efficient Implementation for Small Databases 

    December 1, 1987 | Andrew Birrell, Mike Jones, and Ted Wobber

    This paper describes a technique for implementing the sort of small databases that frequently occur in the design of operating systems and distributed systems. We take advantage of the existence of very large virtual memories, and quite large real memories, to make the technique feasible.…

  11. Synchronization Primitives for a Multiprocessor: a Formal Specification 

    December 1, 1987 | Andrew Birrell, J. V. Guttag, J. J. Horning, and Roy Levin

    Formal specifications of operating system interfaces can be a useful part of their documentation. We illustrate this by documenting the Threads synchronization primitives of the Taos operating system. We start with an informal description, present a way to formally specify interfaces in concurrent systems, give…