13,765 research outputs found

    Covariance and Controvariance: a fresh look at an old issue (a primer in advanced type systems for learning functional programmers)

    Full text link
    Twenty years ago, in an article titled "Covariance and contravariance: conflict without a cause", I argued that covariant and contravariant specialization of method parameters in object-oriented programming had different purposes and deduced that, not only they could, but actually they should both coexist in the same language. In this work I reexamine the result of that article in the light of recent advances in (sub-)typing theory and programming languages, taking a fresh look at this old issue. Actually, the revamping of this problem is just an excuse for writing an essay that aims at explaining sophisticated type-theoretic concepts, in simple terms and by examples, to undergraduate computer science students and/or willing functional programmers. Finally, I took advantage of this opportunity to describe some undocumented advanced techniques of type-systems implementation that are known only to few insiders that dug in the code of some compilers: therefore, even expert language designers and implementers may find this work worth of reading

    Bricklayer: An Authentic Introduction to the Functional Programming Language SML

    Full text link
    Functional programming languages are seen by many as instrumental to effectively utilizing the computational power of multi-core platforms. As a result, there is growing interest to introduce functional programming and functional thinking as early as possible within the computer science curriculum. Bricklayer is an API, written in SML, that provides a set of abstractions for creating LEGO artifacts which can be viewed using LEGO Digital Designer. The goal of Bricklayer is to create a problem space (i.e., a set of LEGO artifacts) that is accessible and engaging to programmers (especially novice programmers) while providing an authentic introduction to the functional programming language SML.Comment: In Proceedings TFPIE 2014, arXiv:1412.473

    A comparison between tests for changes in the adjustment coefficients in cointegrated systems

    Get PDF
    In this paper we examine several approaches to detecting changes in the adjustment coefficients in cointegrated VARs. We adopt recursive and rolling techniques as mis-specification tests for the detection of non-constancy and the estimation of the breakpoints. We find that inspection of the recursive eigenvalues is not useful to detect a break in the adjustment coefficients, whilst recursive estimation of the coefficients can only indicate non-constancy, but not the exact breakpoint. Rolling estimation is found to perform better in detecting non-constancy in the parameters and their true value after the breakpoint. However, it only detects a region where the break is likely to occur. To overcome the drawbacks of these techniques, we use an OLS-based sequential test. To assess its performance, we derive its critical values for different sample sizes. Monte Carlo evidence shows that the test has reasonably good power even in moderately sized samples and that it can be used as a graphical device, as it shows a kink at the breakpoint. As a benchmark we use the Kalman filter, of which we analyse the performance on the same data generating processes (DGP)

    A Refinement Calculus for Logic Programs

    Get PDF
    Existing refinement calculi provide frameworks for the stepwise development of imperative programs from specifications. This paper presents a refinement calculus for deriving logic programs. The calculus contains a wide-spectrum logic programming language, including executable constructs such as sequential conjunction, disjunction, and existential quantification, as well as specification constructs such as general predicates, assumptions and universal quantification. A declarative semantics is defined for this wide-spectrum language based on executions. Executions are partial functions from states to states, where a state is represented as a set of bindings. The semantics is used to define the meaning of programs and specifications, including parameters and recursion. To complete the calculus, a notion of correctness-preserving refinement over programs in the wide-spectrum language is defined and refinement laws for developing programs are introduced. The refinement calculus is illustrated using example derivations and prototype tool support is discussed.Comment: 36 pages, 3 figures. To be published in Theory and Practice of Logic Programming (TPLP

    COMPUTABLE GENERAL EQUILIBRIUM MODELS FOR THE CENTRAL AND EASTERN EUROPEAN EU MEMBER STATES: A SURVEY

    Get PDF
    The accession of twelve Central and Eastern European countries (CEEC) to the European Union (in 2004 and 2007) has given rise to new challenges in evaluating the effects of integration, for both the old and the new member states. These issues can only be addressed in a consistent, economy-wide framework, given that the institutional and economic changes implied by the membership process produce numerous, dynamic and complex interactions between the economic agents and sectors. Applied general equilibrium offers such a framework. This paper reviews the existing computable general equilibrium (CGE) models for the Central and Eastern European EU member states.General equilibrium, EU, CEEC, integration
    • 

    corecore