55 research outputs found

    Incremental Computation for Transformational Software Development

    Get PDF
    Given a program f and an input change \Phi, we wish to obtain an incremental program that computes f(x \Phi y) efficiently by making use of the value of f(x), the intermediate results computed in computing f(x), and auxiliary information about x that can be inexpensively maintained. Obtaining such incremental programs is an essential part of the transformational-programming approach to software development and enhancement. This paper presents a systematic approach that discovers a general class of useful auxiliary information, combines it with useful intermediate results, and obtains an efficient incremental program that uses and maintains these intermediate results and auxiliary information. We give a number of examples from list processing, VLSI circuit design, image processing, etc. 1 Introduction Software engineering is the systematic approach to the development, operation, maintenance, and retirement of software [1]. The transformational-programming approach to software engine..

    Duality in Contract and Tort

    Get PDF
    We study situations in which a single investment serves the dual role of increasing the expected value of a contract (a reliance investment) and reducing the expected harm of a post-performance accident (a care investment). We show that failing to account for the duality of the investment leads to inefficient damages for breach of contract and inefficient standards for due care in tort. Conversely, we show that accounting for the duality yields contract damage measures and tort liability rules that provide correct incentives for efficient breach and reliance in contract and for efficient care in tort

    Constitutively Active Canonical NF-κB Pathway Induces Severe Bone Loss in Mice

    Get PDF
    Physiologic osteoclastogenesis entails activation of multiple signal transduction pathways distal to the cell membrane receptor RANK. However, atypical osteoclastogenesis driven by pro-inflammatory stimuli has been described. We have reported recently a novel mechanism whereby endogenous mutational activation of the classical NF-κB pathway is sufficient to induce RANKL/RANK-independent osteoclastogenesis. Here we investigate the physiologic relevance of this phenomenon in vivo. Using a knock-in approach, the active form of IKK2, namely IKK2SSEE, was introduced into the myeloid lineage with the aid of CD11b-cre mice. Phenotypic assessment revealed that expression of IKK2SSEE in the myeloid compartment induced significant bone loss in vivo. This observation was supported by a dramatic increase in the number and size of osteoclasts in trabecular regions, elevated levels of circulating TRACP-5b, and reduced bone volume. Mechanistically, we observed that IKK2SSEE induced high expression of not only p65 but also p52 and RelB; the latter two molecules are considered exclusive members of the alternative NF-κB pathway. Intriguingly, RelB and P52 were both required to mediate the osteoclastogenic effect of IKK2SSEE and co-expression of these two proteins was sufficient to recapitulate osteoclastogenesis in the absence of RANKL or IKK2SSEE. Furthermore, we found that NF-κB2/p100 is a potent inhibitor of IKK2SSEE-induced osteoclastogenesis. Deletion of p52 enabled more robust osteoclast formation by the active kinase. In summary, molecular activation of IKK2 may play a role in conditions of pathologic bone destruction, which may be refractory to therapeutic interventions targeting the proximal RANKL/RANK signal

    A Formal Syntax for PL/CS

    Full text link
    This document contains a formal syntax for the PL/CS programming language. As is customary, the defining context-free grammar generates a somewhat larger language than PL/CS. That is, only those restrictions conveniently expressed by context-free productions are incorporated in the definition. However, all legal PL/CS programs are contained in the language defined. With some exceptions, the formal syntax defines the language described in: Conway, R., "PL/CS - A Highly-Disciplined Subset of PL/C", Dept. of Computer Science, Cornell University, TR 76-273. The present report supersedes this earlier report as the document defining the syntax of the PL/CS subset

    The Cornell Program Synthesizer: A Microcomputer Implementationof PL/CS

    Full text link
    NO ABSTRACT SUPPLIE

    The Cornell Program Synthesizer: A Tutorial Introduction

    Full text link
    This tutorial introduces a novice student to the basic facilities of the Cornell Program Synthesizer for developing programs written in the PL/CS dialect of PL/I. No knowledge of programming is assumed or required. It is assumed that you possess a Synthesizer diskette and have access to a TERAK microcomputer

    The Cornell Program Synthesizer

    No full text

    A Conversation with Tim Teitelbaum

    Full text link
    A discussion of the teaching of large, introductory courses in programming in the early days-using the Terak and Macintosh computers and the development of integrated programming environments that implement language-aware editing capabilities.Tim Teitelbaum carried a major load in the teaching end of the department, especially the intro programming courses. In the late 1970’s, Tim, along with PhD student Tom Reps, took advantage of the new desktop computer, the Terak, to build the Cornell Program Synthesizer, a seminal, ground-breaking environment for developing and testing programs. Cornell immediately adopted it for their intro Pascal courses, and its use spread to many other universities. Tim and Tom went further to develop the Program Synthesizer Generator, to make it easier to create such environments for any language, and turned it into a general tool for static analysis of programs. In 1988, they founded GrammaTech to promote its use. Now, Grammatech, with over 20 PhD employees, is a leading developer of software-assurance tools and advanced cyber-security solutions. Tim became Prof Emeritus in 2010 to devote full time to GrammaTech. Tim and David talk about the teaching of large, introductory courses in programming in the early days using the Terak and Macintosh computers and the development of integrated programming environments that implement language-aware editing capabilities. Running Time: 36 min. http://hdl.handle.net/1813/408651_f37t181

    Incremental Reduction in the Lambda Calculus

    Full text link
    An incremental algorithm is one that takes advantage of the fact that the function it computes is to be evaluated repeatedly on inputs that differ only slightly from one another, avoiding duplication of common computations. We define here a new notion of incrementality for reduction in the untyped λ\lambda-calculus and describe an incremental reduction algorithm, Λinc\Lambda^{inc}. We show that Λinc\Lambda^{inc} has the desirable property of performing non-overlapping reductions on related terms, yet is simple enough to allow a practical implementation. The algorithm is based on a novel λ\lambda-reduction strategy that may prove useful in a non-incremental setting as well. Incremental λ\lambda-reduction can be used to advantage in any setting where an algorithm is specified in a functional or applicative manner
    corecore