Microsoft Research Blog

English

  1. Pretending Atomicity 

    May 5, 1989 | Leslie Lamport and Fred B. Schneider

    Reasoning about concurrent systems is simpler if they have fewer separate atomic actions. To simplify reasoning about systems, we'd like to be able to combine multiple small atomic actions into a single large one. This process is called reduction. This paper contains a reduction theorem…

  2. Time Polynomial In Input or Output 

    April 8, 1989 | Yuri Gurevich and Saharon Shelah

    There are simple algorithms with large outputs; it is misleading to measure the time complexity of such algorithms in terms of inputs only. In this connection, we introduce the class PIO of functions computable in time polynomial in the maximum of the size of input…

  3. On Matiyasevich’s Non-traditional Approach to Search Problems 

    April 7, 1989 | Andreas Blass and Yuri Gurevich

    Yuri Matijasevich, famous for completing the solution of Hilbert's tenth problem, suggested to use differential equations inspired by real phenomena in nature, to solve the satisfiability problem for boolean formulas. The initial conditions are chosen at random and it is expected that, in the case…

  4. On the Strength of the Interpretation Method 

    April 7, 1989 | Yuri Gurevich (gurevich) and Saharon Shelah

    The interpretation method is the main tool in proving negative results related logical theories. We examine the strength of the interpretation method and find a serious limitation. In one of our previous papers 57, we were able to reduce true arithmetic to the monadic theory…

  5. Nearly Linear Time 

    April 7, 1989 | Yuri Gurevich and Saharon Shelah

    The notion of linear time is very sensitive to machine model. In this connection we introduce and study class NLT of functions computable in nearly linear time n(log n)O(1) on random access computers or any other "reasonable" machine model (with the standard multitape Turing machine…

  6. The LOT: Transform Coding Without Blocking Effects 

    April 1, 1989 | Henrique S. Malvar, David H. Staelin, and Henrique S. Malvar

    Lapped Orthogonal Transform (LOT) is a new tool for block transform coding with basis functions that overlap adjacent blocks. The LOT can reduce the blocking effect to very low levels. In this paper, an exact derivation of an optimal LOT is presented. The optimal LOT…

  7. Parallel implementations of functional programming languages 

    April 1, 1989 | SL Peyton Jones and Simon Peyton Jones

    One of the most attractive features of functional programming languages is their suitability for programming parallel computers. This paper is devoted to discussion of such a claim. Firstly, parallel functional programming is discussed from the programmer's point of view. Secondly, since most parallel functional language…

  8. Higher-Order Unification with Dependent Function Types 

    April 1, 1989 | Conal M. Elliott

    Roughly fifteen years ago, Huet developed a complete semidecision algorithm for unification in the simply typed lambda-calculus (lambda). In spite of the undecidability of this problem, his algorithm is quite usable in practice. Since then, many imortant applications have come about in such areas as…

  9. An Introduction to Programming with Threads 

    January 1, 1989 | Andrew Birrell

    This paper provides an introduction to writing concurrent programs with “threads”. A threads facility allows you to write programs with multiple simultaneous points of execution, synchronizing through shared memory. The paper describes the basic thread and synchronization primitives, then for each primitive provides a tutorial…