15,607 research outputs found

    Improving Prolog Programs: Refactoring for Prolog

    Full text link
    Refactoring is an established technique from the OO-community to restructure code: it aims at improving software readability, maintainability and extensibility. Although refactoring is not tied to the OO-paradigm in particular, its ideas have not been applied to Logic Programming until now. This paper applies the ideas of refactoring to Prolog programs. A catalogue is presented listing refactorings classified according to scope. Some of the refactorings have been adapted from the OO-paradigm, while others have been specifically designed for Prolog. Also the discrepancy between intended and operational semantics in Prolog is addressed by some of the refactorings. In addition, ViPReSS, a semi-automatic refactoring browser, is discussed and the experience with applying \vipress to a large Prolog legacy system is reported. Our main conclusion is that refactoring is not only a viable technique in Prolog but also a rather desirable one.Comment: To appear in ICLP 200

    Improving Prolog programs: Refactoring for Prolog

    Full text link
    Refactoring is an established technique from the object-oriented (OO) programming community to restructure code: it aims at improving software readability, maintainability and extensibility. Although refactoring is not tied to the OO-paradigm in particular, its ideas have not been applied to Logic Programming until now. This paper applies the ideas of refactoring to Prolog programs. A catalogue is presented listing refactorings classified according to scope. Some of the refactorings have been adapted from the OO-paradigm, while others have been specifically designed for Prolog. The discrepancy between intended and operational semantics in Prolog is also addressed by some of the refactorings. In addition, ViPReSS, a semi-automatic refactoring browser, is discussed and the experience with applying ViPReSS to a large Prolog legacy system is reported. The main conclusion is that refactoring is both a viable technique in Prolog and a rather desirable one.Comment: To appear in Theory and Practice of Logic Programming (TPLP

    Recruitment, retention and placement: progressing the knowledge economy: special theme issue of Studies in Learning, Evaluation, Innovation and Development, Vol. 4, No. 2, 2007, pp. i-83

    Get PDF
    Special theme issue of Studies in Learning, Evaluation, Innovation and Development, Vol. 4, No. 2, 2007, pp. i-83

    Correct-schema-guided synthesis of steadfast programs

    Get PDF
    It can be argued that for (semi-)automated software development, program schemas are indispensable, since they capture not only structured program design principles, but also domain knowledge, both of which are of crucial importance for hierarchical program synthesis. Most researchers represent schemas purely syntactically (as higher-order expressions). This means that the knowledge captured by a schema is not formalized. We take a semantic approach and show that a schema can be formalized as an open (first-order) logical theory that contains an open logic program. By using a special kind of correctness for open programs, called steadfastness, we can define and reason about the correctness of schemas. We also show how to use correct schemas to synthesize steadfast programs

    Extrinsic Rewards and Intrinsic Motives: Standard and Behavioral Approaches to Agency and Labor Markets

    Get PDF
    Employers structure pay and employment relationships to mitigate agency problems. A large literature in economics documents how the resolution of these problems shapes personnel policies and labor markets. For the most part, the study of agency in employment relationships relies on highly stylized assumptions regarding human motivation, e.g., that employees seek to earn as much money as possible with minimal effort. In this essay, we explore the consequences of introducing behavioral complexity and realism into models of agency within organizations. Specifically, we assess the insights gained by allowing employees to be guided by such motivations as the desire to compare favorably to others, the aspiration to contribute to intrinsically worthwhile goals, and the inclination to reciprocate generosity or exact retribution for perceived wrongs. More provocatively, from the standpoint of standard economics, we also consider the possibility that people are driven, in ways that may be opaque even to themselves, by the desire to earn social esteem or to shape and reinforce identity.agency, motivation, employment relationships, behavioral economics

    The hygienics of the soul: health and wholeness in the church\u27s life and practice

    Get PDF
    Manifested in Christian tradition

    Call-by-name, call-by-value, call-by-need and the linear lambda calculus

    Get PDF
    this paper is a minor refinement of one previously presented by Wadler [41,42], which is based on Girard's successor to linear logic, the Logic of Unity [15]. A similar calculus has been devised by Plotkin and Barber [6]. In many presentations of logic a key role is played by the structural rules: contraction provides the only way to duplicate an assumption, while weakening provides the only way to discard one. In linear logic [14], the presence of contraction or weakening is revealed in a formula by the presence of the `of course' connective, written `!'. The Logic of Unity [15] takes this separation one step further by distinguishing linear assumptions, which one cannot contract or weaken, from nonlinear or intuitionistic assumptions, which one can. Corresponding to Girard's first translation we define a mapping ffi from the call-byname to the linear calculus and show that this mapping is sound, in that M \Gamma\Gamma\Gamma\Gamma

    Against Amnesia: Re-Imagining Central Banking

    No full text
    The purpose of the present paper is to identify and challenge contemporary adherence to the core of the prevailing monetary policy consensus. This consensus consists of what we call the holy trinity of the inflation targeting paradigm: price stability as the primary goal of the central bank; central bank independence as the institutional arrangement; and the short-term interest rate as the operational target. Drawing on the literature on the history and political economy of central banking, we argue that the inability to think beyond this holy trinity stems from a severe case of collective institutional amnesia and comes at a heavy cost. We highlight that monetary policy can be deployed towards social purposes other than controlling inflation, in institutional configurations other than isolation from the rest of the government and with instruments other than interest rate manipulation. One central message is that whereas central banks are commonly portrayed as commanding only one instrument, in reality they have a battery of instruments at their disposal. We should think of central banking not as a hammer – a tool to hit inflation where it rears its ugly head – but as a Swiss army knife – a multi-purpose tool with many instruments. Doing so will help overcome the collective amnesia that stands in the way of an enlightened debate about how the power of central banking can – and perhaps should – be harnessed in the pursuit of collective social goals.1 Introduction 2 The Holy Trinity 3 Historical Specificity 3.1 Pre-War 3.2 Post-War, Pre-Inflation 3.3 Holy Trinity 3.4 Shoring up the Holy Trinity: The Tinbergen Rule 4 Beyond the Tinbergen Rule: A Swiss Army Knife Theory of Central Banking 4.1 Lender of Last Resort 4.2 Financial Market-Shaping I: Monetary Policy Implementation 4.3 Financial Market-Shaping II: Monetary Policy Transmission 5 Conclusion Reference
    corecore