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)
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
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
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
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
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
- âŠ