970 research outputs found
The C++0x "Concepts" Effort
C++0x is the working title for the revision of the ISO standard of the C++
programming language that was originally planned for release in 2009 but that
was delayed to 2011. The largest language extension in C++0x was "concepts",
that is, a collection of features for constraining template parameters. In
September of 2008, the C++ standards committee voted the concepts extension
into C++0x, but then in July of 2009, the committee voted the concepts
extension back out of C++0x.
This article is my account of the technical challenges and debates within the
"concepts" effort in the years 2003 to 2009. To provide some background, the
article also describes the design space for constrained parametric
polymorphism, or what is colloquially know as constrained generics. While this
article is meant to be generally accessible, the writing is aimed toward
readers with background in functional programming and programming language
theory. This article grew out of a lecture at the Spring School on Generic and
Indexed Programming at the University of Oxford, March 2010
Linguistic Reflection in Java
Reflective systems allow their own structures to be altered from within. Here
we are concerned with a style of reflection, called linguistic reflection,
which is the ability of a running program to generate new program fragments and
to integrate these into its own execution. In particular we describe how this
kind of reflection may be provided in the compiler-based, strongly typed
object-oriented programming language Java. The advantages of the programming
technique include attaining high levels of genericity and accommodating system
evolution. These advantages are illustrated by an example taken from persistent
programming which shows how linguistic reflection allows functionality (program
code) to be generated on demand (Just-In-Time) from a generic specification and
integrated into the evolving running program. The technique is evaluated
against alternative implementation approaches with respect to efficiency,
safety and ease of use.Comment: 25 pages. Source code for examples at
http://www-ppg.dcs.st-and.ac.uk/Java/ReflectionExample/ Dynamic compilation
package at http://www-ppg.dcs.st-and.ac.uk/Java/DynamicCompilation
EOS: A project to investigate the design and construction of real-time distributed embedded operating systems
The EOS project is investigating the design and construction of a family of real-time distributed embedded operating systems for reliable, distributed aerospace applications. Using the real-time programming techniques developed in co-operation with NASA in earlier research, the project staff is building a kernel for a multiple processor networked system. The first six months of the grant included a study of scheduling in an object-oriented system, the design philosophy of the kernel, and the architectural overview of the operating system. In this report, the operating system and kernel concepts are described. An environment for the experiments has been built and several of the key concepts of the system have been prototyped. The kernel and operating system is intended to support future experimental studies in multiprocessing, load-balancing, routing, software fault-tolerance, distributed data base design, and real-time processing
Comparison of DCOM and CORBA distributed computing
The movement of distributed applications from 2-tier to n-tier architectures have enabled systems to be scaled to meet the demands of an ever increasing population of users. Two middleware architectures have come to the forefront: Microsoft\u27s DCOM and the OMG\u27s CORBA. These are not the only possible architectures for n-tier distributed applications, but they are currently the only two which offer a degree of platform independence and the flexibility of using different programming languages for development.
CORBA provides platform independence because it provides a middle layer between the client and the server and services client requests using its internal naming service to identify server objects and then expose methods to the client through it\u27s object adapter (POA). CORBA is a self contained middleware that operates independent of the underlying operating system. CORBA offers the potential of ease of maintainability since server objects can be changed and the new methods can be discovered at runtime by the client using CORBAs Dynamic Invocation Interface. Client code would therefore not have be recompiled as it would using static IDL mappings and client and server stubs.
DCOM, in contrast is a platform dependent solution that can only be used on Windows machines, although ports for other platforms are in the works. It relies on the Windows registry to identify objects and the operating system to assist in runtime control of objects. Because DCOM is nothing more of a remote extension to the already established Common Object Model which all contemporary Windows operating systems and applications are built upon, it may provide the easiest path to distributed applications for Windows developers that are already familiar with the Common Object Model
A VISUAL DESIGN METHOD AND ITS APPLICATION TO HIGH RELIABILITY HYPERMEDIA SYSTEMS
This work addresses the problem of the production of hypermedia
documentation for applications that require high reliability, particularly
technical documentation in safety critical industries. One requirement of this
application area is for the availability of a task-based organisation, which
can guide and monitor such activities as maintenance and repair. In safety
critical applications there must be some guarantee that such sequences are
correctly presented. Conventional structuring and design methods for
hypermedia systems do not allow such guarantees to be made. A formal
design method that is based on a process algebra is proposed as a solution
to this problem. Design methods of this kind need to be accessible to
information designers. This is achieved by use of a technique already
familiar to them: the storyboard. By development of a storyboard notation
that is syntactically equivalent to a process algebra a bridge is made
between information design and computer science, allowing formal analysis
and refinement of the specification drafted by information designers.
Process algebras produce imperative structures that do not map easily into
the declarative formats used for some hypermedia systems, but can be
translated into concurrent programs. This translation process, into a
language developed by the author, called ClassiC, is illustrated and the
properties that make ClassiC a suitable implementation target discussed.
Other possible implementation targets are evaluated, and a comparative
illustration given of translation into another likely target, Java
An Incremental Language Conversion Method to Convert C++ into Ada95
This thesis develops a methodology to incrementally convert a legacy object oriented C++ application into Ada95. Using the experience of converting a graphic application, called Remote Debriefing Tool (RDT), in the Graphics Lab of the Air Force Institute of Technology (AFIT), this effort defined a process to convert a C++ application into Ada95. The methodology consists of five phases: (1) reorganizing the software application, (2) breaking mutual dependencies, (3) creating package specifications to interface the existing C++ classes, (4) converting C++ code into Ada programs, and (5) embellishing. This methodology used the GNAT\u27s C++ low level interface capabilities to support the incremental conversion. The goal of this methodology is not only to correctly convert C++ code into Ada95, but also to take advantage of Ada\u27s features which support good software engineering principles
Refunctionalization at Work
We present the left inverse of Reynolds's defunctionalization and we show its relevance to programming and to programming languages. We present two methods to put a program that is almost in defunctionalized form into one that is actually in defunctionalized form, and we illustrate them with a recognizer for Dyck words and with Dijkstra's shunting-yard algorithm
Development of an Android Medical Application to Classify Patient’s Symptoms by Means of Machine Learning Algorithms
The smartphone has been one of the most revolutionary inventions in this last decade and,
with this technology, the population has changed the way it searches for information.
The field of medicine has also adapted to the arrival of this technology with the release of
hundreds of applications that let the patients, not only communicate with doctor, but also help
them recognize the diseases related to their condition.
However, even though there are a lot of types of medical applications of recognition of
symptoms, the possibility of studying the symptoms of patients has not been studied enough
through the analysis of the text introduced in a vocal manner with techniques of speech
recognition and machine learning.
In this project is described the development of an application that allows the patient to classify
the introduced symptoms with voice recognition libraries and machine learning techniques.
At the beginning of the project the introduction and objective of the project is proposed,
besides presenting the necessary budget for the system to be elaborated.
Then, the different mobile platforms on the market, along with medical applications in these
platforms and voice recognition libraries, are studied. Also, the technologies that have been used
for the project development of the project, along with working environment used, are discussed
To continue, its detailed the data protection law that governs in Spain, where the reason
behind the impossibility of publication of the system is detailed. Also, the software licenses of
the technologies mentioned before.
After seeing the technologies that will be used in the development of the project and the
limitations and guidelines that the data protection law imposes, the development of the system is
related, where it is analyzed the use cases and requirements, to later present the architecture of
the system.
Once the system is developed, the evaluation of the system is presented. With the help of
personnel external to the system, it is proved for the system to show an average success rate
higher than 50% at the time of classifying the symptoms of the patient through machine learning
algorithms.El teléfono inteligente ha sido una de las revoluciones más destacadas de esta última década y,
con esta tecnologÃa, ha cambiado la forma en la cual la población busca información.
El campo de la medicina también se ha adaptado a la llegada de esta tecnologÃa sacando
aplicaciones que permiten a los pacientes, no solo poder comunicarse con los doctores, pero
también ayudar al paciente a reconocer enfermedades relacionadas con su condición.
Sin embargo, aunque existan muchos tipos de aplicaciones médicas de reconocimiento de
sÃntomas, casi no se ha estudiado la posibilidad de estudiar los sÃntomas de los pacientes a través
del análisis del texto introducido de manera vocal con técnicas de reconocimiento de voz y
aprendizaje automático.
En este proyecto se desarrolla una aplicación que permite al paciente clasificar los sÃntomas
introducidos con librerÃas de reconocimiento de voz a través de técnicas de aprendizaje automático.
Al principio del proyecto se plantea la introducción y objetivo del proyecto, además de
presentar el presupuesto necesario para que el sistema sea elaborado.
Después se estudian las diferentes plataformas móviles existentes en el mercado, junto con
aplicaciones médicas en estas plataformas y librerÃas de reconocimiento de voz. También se
exponen las tecnologÃas que han sido usadas para la elaboración del proyecto además del entorno
de trabajo utilizado.
A continuación, se detalla la ley de protección de datos que rige en España, y los motivos que
restringen la publicación del sistema elaborado en este proyecto. También se presentan las
licencias software de las tecnologÃas mencionadas anteriormente.
Tras haber visto las tecnologÃas que serán usadas y las limitaciones y directrices que impone
la ley de protección de datos, se plantea el desarrollo del sistema, donde se analizarán los casos
de uso y requisitos, para después presentar la arquitectura del sistema.
Una vez desarrollado el sistema, se pasará a ver la evaluación del mismo, a través de la
colaboración de personal externo al proyecto, donde se comprobará de que, aun utilizando una
pequeña base de datos, los resultados muestran una media de porcentaje de acierto superior al
50% a la hora de clasificar los sÃntomas del paciente con algoritmos de aprendizaje automático.IngenierÃa Informátic
Refunctionalization at Work
We present the left inverse of Reynolds's defunctionalization and we show its relevance to programming and to programming languages. We propose two methods to transform a program that is almost in defunctionalized form into one that is actually in defunctionalized form, and we illustrate them with a recognizer for Dyck words and with Dijkstra's shunting-yard algorithm
- …