11,561 research outputs found
Static and dynamic analysis for robustness under slowdown
Robustness of embedded systems to potential
changes in their environment, which may result in the inputs
being affected, is crucial for reliable behaviour. One typical
possible change is that the system’s inputs are slowed down,
altering its temporal behaviour. Algorithmic analysis of systems
to be able to deduce their robustness under such environmental
interference is desirable. In this paper, we present a framework
for the analysis of synchronous systems to analyse their behaviour
when the inputs slow down through stuttering. We identify
different types of slowdown robustness constraints and present
static and dynamic analysis techniques for determining whether
systems written in Lustre satisfy these robustness properties.peer-reviewe
Programming tools for intelligent systems
Les outils de programmation sont des programmes informatiques qui aident les humains à programmer des ordinateurs. Les outils sont de toutes formes et tailles, par exemple les éditeurs, les compilateurs, les débogueurs et les profileurs. Chacun de ces outils facilite une tâche principale dans le flux de travail de programmation qui consomme des ressources cognitives lorsqu’il est effectué manuellement. Dans cette thèse, nous explorons plusieurs outils qui facilitent le processus de construction de systèmes intelligents et qui réduisent l’effort cognitif requis pour concevoir, développer, tester et déployer des systèmes logiciels intelligents. Tout d’abord, nous introduisons un environnement de développement intégré (EDI) pour la programmation d’applications Robot Operating System (ROS), appelé Hatchery (Chapter 2). Deuxièmement, nous décrivons Kotlin∇, un système de langage et de type pour la programmation différenciable, un paradigme émergent dans l’apprentissage automatique (Chapter 3). Troisièmement, nous proposons un nouvel algorithme pour tester automatiquement les programmes différenciables, en nous inspirant des techniques de tests contradictoires et métamorphiques (Chapter 4), et démontrons son efficacité empirique dans le cadre de la régression. Quatrièmement, nous explorons une infrastructure de conteneurs basée sur Docker, qui permet un déploiement reproductible des applications ROS sur la plateforme Duckietown (Chapter 5). Enfin, nous réfléchissons à l’état actuel des outils de programmation pour ces applications et spéculons à quoi pourrait ressembler la programmation de systèmes intelligents à l’avenir (Chapter 6).Programming tools are computer programs which help humans program computers. Tools come in all shapes and forms, from editors and compilers to debuggers and profilers. Each of these tools facilitates a core task in the programming workflow which consumes cognitive resources when performed manually. In this thesis, we explore several tools that facilitate the process of building intelligent systems, and which reduce the cognitive effort required to design, develop, test and deploy intelligent software systems. First, we introduce an integrated development environment (IDE) for programming Robot Operating System (ROS) applications, called Hatchery (Chapter 2). Second, we describe Kotlin∇, a language and type system for differentiable programming, an emerging paradigm in machine learning (Chapter 3). Third, we propose a new algorithm for automatically testing differentiable programs, drawing inspiration from techniques in adversarial and metamorphic testing (Chapter 4), and demonstrate its empirical efficiency in the regression setting. Fourth, we explore a container infrastructure based on Docker, which enables reproducible deployment of ROS applications on the Duckietown platform (Chapter 5). Finally, we reflect on the current state of programming tools for these applications and speculate what intelligent systems programming might look like in the future (Chapter 6)
Teaching Parallel Programming Using Java
This paper presents an overview of the "Applied Parallel Computing" course
taught to final year Software Engineering undergraduate students in Spring 2014
at NUST, Pakistan. The main objective of the course was to introduce practical
parallel programming tools and techniques for shared and distributed memory
concurrent systems. A unique aspect of the course was that Java was used as the
principle programming language. The course was divided into three sections. The
first section covered parallel programming techniques for shared memory systems
that include multicore and Symmetric Multi-Processor (SMP) systems. In this
section, Java threads was taught as a viable programming API for such systems.
The second section was dedicated to parallel programming tools meant for
distributed memory systems including clusters and network of computers. We used
MPJ Express-a Java MPI library-for conducting programming assignments and lab
work for this section. The third and the final section covered advanced topics
including the MapReduce programming model using Hadoop and the General Purpose
Computing on Graphics Processing Units (GPGPU).Comment: 8 Pages, 6 figures, MPJ Express, MPI Java, Teaching Parallel
Programmin
Linear Programming Relaxations of Quadratically Constrained Quadratic Programs
We investigate the use of linear programming tools for solving semidefinite
programming relaxations of quadratically constrained quadratic problems.
Classes of valid linear inequalities are presented, including sparse PSD cuts,
and principal minors PSD cuts. Computational results based on instances from
the literature are presented.Comment: Published in IMA Volumes in Mathematics and its Applications, 2012,
Volume 15
Scientific Programming Tools for Water Management
This special issue delivers a platform in which researchers expose intersections between algorithm design, software platforms, and hardware architectures to deal with emerging challenges in the scientific field of management of water and water-dependent resources. Since the call for papers was announced in June 2019, this special issue has received 10 manuscripts. After a rigorous review process, 6 papers have been finally accepted for publication. Published papers deal with groundwater quality monitoring, coastal groundwater-dependent irrigation agriculture, desertification risk, water recovery from tailings, future scenarios of water resources, and vulnerability of coastal aquifers
Ada as an implementation language for knowledge based systems
Debates about the selection of programming languages often produce cultural collisions that are not easily resolved. This is especially true in the case of Ada and knowledge based programming. The construction of programming tools provides a desirable alternative for resolving the conflict
- …