171,073 research outputs found
Integration Principles in Numerical Software
Since personal computers are currently being used by individuals who are not professional computer specialists, the need for a framework allowing quick and easy development of user-friendly software is necessary. One such framework is the concept of software integration. This concept is now reasonably popular and several software tools allowing for such integration are available on the market. Unfortunately, all of these tools are oriented towards office automation systems, word processing, telecommunications etc. No such tools are available for scientific users which would allow easy utilization of mathematical programming software, model building and analysis etc.
This paper presents the system DISO which can support dialogue solving mathematical programming problems. The system allows for the treatment of all mathematical programming modules in a uniform way, allowing easy interaction with the user utilizing various metaphors for data presentation and analysis of results as well as being open -- i.e. new mathematical programming modules can be easily linked to the system. The DISO system has been designed utilizing modern software engineering concepts, like hierarchical program structuring, object-oriented paradigm and abstract data types oriented interface
Programming Model Based on Concurrent Objects for the AIBO Robot
This paper presents the object-oriented programing envir-
onment for the AIBO robot, focusing in its concurrency model. Con-
currency problems arise when programming a robot due to the various
sensors and actuators that the programmers must manage. As this man-
agement has some aspects of real time and communication, involves some
coplexity. In order to deal with this complexity Sony has developed a
framework for programming the AIBO Robot. The description of this
API called OPEN-R is presented. Also we will discuss how the under-
lying operating system, APERTOS, hides almost all the complexity of
implement applications compounded of concurrent objects intercommu-
nicate
Improving Learning of Programming Through E-Learning by Using Asynchronous Virtual Pair Programming
The problem of learning programming subjects, especially through distance
learning and E-Learning, has been widely reported in literatures. Many attempts
have been made to solve these problems. This has led to many new approaches in
the techniques of learning of programming. One of the approaches that have been
proposed is the use of virtual pair programming (VPP). Most of the studies about
VPP in distance learning or e-learning environment focus on the use of the
synchronous mode of collaboration between learners. Not much research have been
done about asynchronous VPP. This paper describes how we have implemented VPP
and a research that has been carried out to study the effectiveness of asynchronous
VPP for learning of programming. In particular, this research study the
effectiveness of asynchronous VPP in the learning of object-oriented programming
among students at Open University Malaysia (OUM). The result of the research has
shown that most of the learners have given positive feedback, indicating that they
are happy with the use of asynchronous VPP. At the same time, learners did
recommend some extra features that could be added in making asynchronous VPP
more enjoyable. (Authors' abstract
Enabling the âEasy Buttonâ for Broad, Parallel Optimization of Functions Evaluated by Simulation
Java Optimization by Simulation (JOBS) is presented: an open-source, object-oriented Java library designed to enable the study, research, and use of optimization for models evaluated by simulation. JOBS includes several novel design features that make it easy for a simulation modeler, without extensive expertise in optimization or parallel computation, to define an optimization model with deterministic and/or stochastic constraints, choose one or more metaheuristics to solve it and run, using massively parallel function evaluation to reduce wall-clock times.
JOBS is supported by a new language independent, application programming interface (API) for remote simulation model evaluation and a serverless computing environment to provide massively parallel function evaluation, on demand. Dynamic loop scheduling methods are evaluated in the serverless environment with the opportunity for significant resource contention for master node computing power and network bandwidth.
JOBS implements several population-based and single-solution improvement metaheuristics (solvers) for real, discrete, and mixed problems. The object-oriented design is extendible with classes that drastically reduce the amount of code required to implement a new solver and encourage re-use of solvers as building blocks for creating new multi-stage solvers or memetic algorithms
A Global Optimisation Toolbox for Massively Parallel Engineering Optimisation
A software platform for global optimisation, called PaGMO, has been developed
within the Advanced Concepts Team (ACT) at the European Space Agency, and was
recently released as an open-source project. PaGMO is built to tackle
high-dimensional global optimisation problems, and it has been successfully
used to find solutions to real-life engineering problems among which the
preliminary design of interplanetary spacecraft trajectories - both chemical
(including multiple flybys and deep-space maneuvers) and low-thrust (limited,
at the moment, to single phase trajectories), the inverse design of
nano-structured radiators and the design of non-reactive controllers for
planetary rovers. Featuring an arsenal of global and local optimisation
algorithms (including genetic algorithms, differential evolution, simulated
annealing, particle swarm optimisation, compass search, improved harmony
search, and various interfaces to libraries for local optimisation such as
SNOPT, IPOPT, GSL and NLopt), PaGMO is at its core a C++ library which employs
an object-oriented architecture providing a clean and easily-extensible
optimisation framework. Adoption of multi-threaded programming ensures the
efficient exploitation of modern multi-core architectures and allows for a
straightforward implementation of the island model paradigm, in which multiple
populations of candidate solutions asynchronously exchange information in order
to speed-up and improve the optimisation process. In addition to the C++
interface, PaGMO's capabilities are exposed to the high-level language Python,
so that it is possible to easily use PaGMO in an interactive session and take
advantage of the numerous scientific Python libraries available.Comment: To be presented at 'ICATT 2010: International Conference on
Astrodynamics Tools and Techniques
Implementing fault tolerant applications using reflective object-oriented programming
Abstract: Shows how reflection and object-oriented programming can be used to ease the implementation of classical fault tolerance mechanisms in distributed applications. When the underlying runtime system does not provide fault tolerance transparently, classical approaches to implementing fault tolerance mechanisms often imply mixing functional programming with non-functional programming (e.g. error processing mechanisms). The use of reflection improves the transparency of fault tolerance mechanisms to the programmer and more generally provides a clearer separation between functional and non-functional programming. The implementations of some classical replication techniques using a reflective approach are presented in detail and illustrated by several examples, which have been prototyped on a network of Unix workstations. Lessons learnt from our experiments are drawn and future work is discussed
Strategic Directions in Object-Oriented Programming
This paper has provided an overview of the field of object-oriented programming. After presenting a historical perspective and some major achievements in the field, four research directions were introduced: technologies integration, software components, distributed programming, and new paradigms. In general there is a need to continue research in traditional areas:\ud
(1) as computer systems become more and more complex, there is a need to further develop the work on architecture and design; \ud
(2) to support the development of complex systems, there is a need for better languages, environments, and tools; \ud
(3) foundations in the form of the conceptual framework and other theories must be extended to enhance the means for modeling and formal analysis, as well as for understanding future computer systems
Recommended from our members
Reflective Composition: the declarative composition of roles to unify objects, roles, and aspects [poster session]
As bases for object-orientation, both class-based and prototype-based organization have limitations. We argue that roles have significant benefits as a foundation for organizing objects. We further argue that these benefits can be realised most flexibly using logic meta-programming. Additional benefits from this approach are to reduce redundancy and subsume aspects
Open Programming Language Interpreters
Context: This paper presents the concept of open programming language
interpreters and the implementation of a framework-level metaobject protocol
(MOP) to support them. Inquiry: We address the problem of dynamic interpreter
adaptation to tailor the interpreter's behavior on the task to be solved and to
introduce new features to fulfill unforeseen requirements. Many languages
provide a MOP that to some degree supports reflection. However, MOPs are
typically language-specific, their reflective functionality is often
restricted, and the adaptation and application logic are often mixed which
hardens the understanding and maintenance of the source code. Our system
overcomes these limitations. Approach: We designed and implemented a system to
support open programming language interpreters. The prototype implementation is
integrated in the Neverlang framework. The system exposes the structure,
behavior and the runtime state of any Neverlang-based interpreter with the
ability to modify it. Knowledge: Our system provides a complete control over
interpreter's structure, behavior and its runtime state. The approach is
applicable to every Neverlang-based interpreter. Adaptation code can
potentially be reused across different language implementations. Grounding:
Having a prototype implementation we focused on feasibility evaluation. The
paper shows that our approach well addresses problems commonly found in the
research literature. We have a demonstrative video and examples that illustrate
our approach on dynamic software adaptation, aspect-oriented programming,
debugging and context-aware interpreters. Importance: To our knowledge, our
paper presents the first reflective approach targeting a general framework for
language development. Our system provides full reflective support for free to
any Neverlang-based interpreter. We are not aware of any prior application of
open implementations to programming language interpreters in the sense defined
in this paper. Rather than substituting other approaches, we believe our system
can be used as a complementary technique in situations where other approaches
present serious limitations
Recommended from our members
Towards an aspect weaving BPEL engine
This position paper proposes the use of dynamic aspects and
the visitor design pattern to obtain a highly configurable and
extensible BPEL engine. Using these two techniques, the
core of this infrastructural software can be customised to
meet new requirements and add features such as debugging,
execution monitoring, or changing to another Web Service
selection policy. Additionally, it can easily be extended to
cope with customer-specific BPEL extensions. We propose
the use of dynamic aspects not only on the engine itself
but also on the workflow in order to tackle the problems of
Web Service hot deployment and hot fixes to long running
processes. In this way, composing aWeb Service "on-the-fly"
means weaving its choreography interface into the workflow
- âŠ