213,624 research outputs found
Logo in mainstream schools: the struggle over the soul of an educational innovation
Technologies do not follow some predetermined and inevitable course from their context of production to their context of use, and technologies used in schools are no exception. Rather, technologies and their use in the classroom are socially contextualised. They are often appropriated in ways unanticipated by their developers, locking into institutional arrangements and reflecting elements of the prevailing social relations in and around the particular context(s) of application. Through the discussion of a particular technology (the Logo programming language) as a case study in educational innovation, this article demonstrates how the use of technologies in schools is socially shaped. The paper looks into the place that Logo occupied within the institutional and organisational cultures of US and UK mainstream schools after its introduction in the early 1980s. It discusses the ways in which Logo was received in the educational arena and was implicated in the politics of educational innovation at a time of conservative restoration
The design and implementation of a relational programming system.
The declarative class of computer languages consists mainly of two paradigms
- the logic and the functional. Much research has been devoted in recent years
to the integration of the two with the aim of securing the advantages of both
without retaining their disadvantages. To date this research has, arguably, been
less fruitful than initially hoped. A large number of composite functional/logical
languages have been proposed but have generally been marred by the lack of a
firm, cohesive, mathematical basis. More recently new declarative paradigms,
equational and constraint languages, have been advocated. These however do
not fully encompass those features we perceive as being central to functional and
logic languages. The crucial functional features are higher-order definitions, static
polymorphic typing, applicative expressions and laziness. The crucial logic features are ability to reason about both functional and non-functional relationships
and to handle computations involving search.
This thesis advocates a new declarative paradigm which lies midway between
functional and logic languages - the so-called relational paradigm. In a relationallanguage program and data alike are denoted by relations. All expressions
are relations constructed from simpler expressions using operators which form
a relational algebra. The impetus for use of relations in a declarative language
comes from observations concerning their connection to functional and logic programming. Relations are mathematically more general than functions modelling
non-functional as well as functional relationships. They also form the basis of
many logic languages, for example, Prolog.
This thesis proposes a new relational language based entirely on binary relations, named Drusilla. We demonstrate the functional and logic aspects of
Drusilla. It retains the higher-order objects and polymorphism found in modern functional languages but handles non-determinism and models relationships
between objects in the manner of a logic language with notion of algorithm being composed of logic and control elements. Different programming styles -
functional, logic and relational- are illustrated.
However, such expressive power does not come for free; it has associated with
it a high cost of implementation. Two main techniques are used in the necessarily
complex language interpreter. A type inference system checks programs to ensure
they are meaningful and simultaneously performs automatic representation selection for relations. A symbolic manipulation system transforms programs to improve.
efficiency of expressions and to increase the number of possible representations
for relations while preserving program meaning
A Fuzzy Logic Programming Environment for Managing Similarity and Truth Degrees
FASILL (acronym of "Fuzzy Aggregators and Similarity Into a Logic Language")
is a fuzzy logic programming language with implicit/explicit truth degree
annotations, a great variety of connectives and unification by similarity.
FASILL integrates and extends features coming from MALP (Multi-Adjoint Logic
Programming, a fuzzy logic language with explicitly annotated rules) and
Bousi~Prolog (which uses a weak unification algorithm and is well suited for
flexible query answering). Hence, it properly manages similarity and truth
degrees in a single framework combining the expressive benefits of both
languages. This paper presents the main features and implementations details of
FASILL. Along the paper we describe its syntax and operational semantics and we
give clues of the implementation of the lattice module and the similarity
module, two of the main building blocks of the new programming environment
which enriches the FLOPER system developed in our research group.Comment: In Proceedings PROLE 2014, arXiv:1501.0169
Matrix Code
Matrix Code gives imperative programming a mathematical semantics and
heuristic power comparable in quality to functional and logic programming. A
program in Matrix Code is developed incrementally from a specification in
pre/post-condition form. The computations of a code matrix are characterized by
powers of the matrix when it is interpreted as a transformation in a space of
vectors of logical conditions. Correctness of a code matrix is expressed in
terms of a fixpoint of the transformation. The abstract machine for Matrix Code
is the dual-state machine, which we present as a variant of the classical
finite-state machine.Comment: 39 pages, 19 figures; extensions and minor correction
- …