15,607 research outputs found
Improving Prolog Programs: Refactoring for Prolog
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
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
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
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
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
Manifested in Christian tradition
Call-by-name, call-by-value, call-by-need and the linear lambda calculus
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
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
- …