23,652 research outputs found
Providing Self-Aware Systems with Reflexivity
We propose a new type of self-aware systems inspired by ideas from
higher-order theories of consciousness. First, we discussed the crucial
distinction between introspection and reflexion. Then, we focus on
computational reflexion as a mechanism by which a computer program can inspect
its own code at every stage of the computation. Finally, we provide a formal
definition and a proof-of-concept implementation of computational reflexion,
viewed as an enriched form of program interpretation and a way to dynamically
"augment" a computational process.Comment: 12 pages plus bibliography, appendices with code description, code of
the proof-of-concept implementation, and examples of executio
Free composition instead of language dictatorship
Historically, programming languages have been—benevolent—dictators: reducing all possible semantics to specific ones offered by a few built-in language constructs. Over the years, some programming languages have freed the programmers from the restrictions to use only built-in libraries, built-in data types, and builtin type-checking rules. Even though—arguably—such freedom could lead to anarchy, or people shooting themselves in the foot, the contrary tends to be the case: a language that does not allow for extensibility is depriving software engineers of the ability to construct proper abstractions and to structure software in the most optimal way. Therefore the software becomes less structured and maintainable than would be possible if the software engineer could express the behavior of the program with the most appropriate abstractions. The idea proposed by this paper is to move composition from built-in language constructs to programmable, first-class abstractions in a language. We discuss several prototypes of the Co-op language, which show that it is possible, with a relatively simple model, to express a wide range of compositions as first-class concepts
Conceptual Spaces in Object-Oriented Framework
The aim of this paper is to show that the middle level of
mental representations in a conceptual spaces framework is consistent
with the OOP paradigm. We argue that conceptual spaces framework
together with vague prototype theory of categorization appears to be
the most suitable solution for modeling the cognitive apparatus of
humans, and that the OOP paradigm can be easily and intuitively
reconciled with this framework. First, we show that the prototypebased
OOP approach is consistent with Gärdenfors’ model in terms
of structural coherence. Second, we argue that the product of cloning
process in a prototype-based model is in line with the structure of
categories in Gärdenfors’ proposal. Finally, in order to make the fuzzy
object-oriented model consistent with conceptual space, we
demonstrate how to define membership function in a more cognitive
manner, i.e. in terms of similarity to prototype
A conceptual architecture for interactive educational multimedia
Learning is more than knowledge acquisition; it often involves the active participation of the learner in a variety of knowledge- and skills-based learning and training activities. Interactive multimedia technology can support the variety of interaction channels and languages required to facilitate interactive learning and teaching.
A conceptual architecture for interactive educational multimedia can support the development of such multimedia systems. Such an architecture needs to embed multimedia technology into a coherent educational context. A framework based on an integrated interaction model is needed to capture learning and training activities in an online setting from an educational perspective, to describe them in the human-computer context, and to integrate them with mechanisms and principles of multimedia interaction
Abstracting object interactions using composition filters
It is generally claimed that object-based models are very suitable for building distributed system architectures since object interactions follow the client-server model. To cope with the complexity of today's distributed systems, however, we think that high-level linguistic mechanisms are needed to effectively structure, abstract and reuse object interactions. For example, the conventional object-oriented model does not provide high-level language mechanisms to model layered system architectures. Moreover, we consider the message passing model of the conventional object-oriented model as being too low-level because it can only specify object interactions that involve two partner objects at a time and its semantics cannot be extended easily. This paper introduces Abstract Communication Types (ACTs), which are objects that abstract interactions among objects. ACTs make it easier to model layered communication architectures, to enforce the invariant behavior among objects, to reduce the complexity of programs by hiding the interaction details in separate modules and to improve reusability through the application of object-oriented principles to ACT classes. We illustrate the concept of ACTs using the composition filters model
A taxonomy for interactive educational multimedia
Learning is more than knowledge acquisition; it often involves the active participation of the learner in a variety of knowledge- and skills-based learning and training activities. Interactive multimedia technology can support the variety of interaction channels and languages required to facilitate interactive learning and teaching. We will present a taxonomy for interactive educational multimedia that supports the classification, description and development of such systems. Such a taxonomy needs to embed multimedia technology into a coherent educational context. A conceptual framework based on an integrated interaction model is needed to capture learning and training activities in an online setting from an educational perspective, describe them in the human-computer context, and integrate them with mechanisms and principles of multimedia interaction
Reducing the Number of Annotations in a Verification-oriented Imperative Language
Automated software verification is a very active field of research which has
made enormous progress both in theoretical and practical aspects. Recently, an
important amount of research effort has been put into applying these techniques
on top of mainstream programming languages. These languages typically provide
powerful features such as reflection, aliasing and polymorphism which are handy
for practitioners but, in contrast, make verification a real challenge. In this
work we present Pest, a simple experimental, while-style, multiprocedural,
imperative programming language which was conceived with verifiability as one
of its main goals. This language forces developers to concurrently think about
both the statements needed to implement an algorithm and the assertions
required to prove its correctness. In order to aid programmers, we propose
several techniques to reduce the number and complexity of annotations required
to successfully verify their programs. In particular, we show that high-level
iteration constructs may alleviate the need for providing complex loop
annotations.Comment: 15 pages, 8 figure
- …