Languages are becoming increasingly multi-paradigm. Subtype polymorphism in statically-typed object-oriented languages is being supplemented with parametric polymorphism in the form of generics. Features like first-cl...
详细信息
ISBN:
(纸本)9781450320146
Languages are becoming increasingly multi-paradigm. Subtype polymorphism in statically-typed object-oriented languages is being supplemented with parametric polymorphism in the form of generics. Features like first-class functions and lambdas are appearing everywhere. Yet existing languages like Java, C#, C++, D, and Scala seem to accrete ever more complexity when they reach beyond their original paradigm into another;inevitably older features have some rough edges that lead to nonuniformity and pitfalls. Given a fresh start, a new language designer is faced with a daunting array of potential features. Where to start? What is important to get right first, and what can be added later? What features must work together, and what features are orthogonal? We report on our experience with Virgil III, a practical language with a careful balance of classes, functions, tuples and type parameters. Virgil intentionally lacks many advanced features, yet we find its core feature set enables new species of design patterns that bridge multiple paradigms and emulate features not directly supported such as interfaces, abstract data types, ad hoc polymorphism, and variant types. Surprisingly, we find variance for function types and tuple types often replaces the need for other kinds of type variance when libraries are designed in a more functional style.
Several decision making algorithms that are developed in robotics domain are found to be useful in automotive industrial applications. In order to use these algorithms in safety critical embedded systems one has to en...
详细信息
ISBN:
(纸本)9781467364041;9781467364034
Several decision making algorithms that are developed in robotics domain are found to be useful in automotive industrial applications. In order to use these algorithms in safety critical embedded systems one has to ensure a minimum confidence level, quality assurance, and reliability. In addition, decision algorithms are designed and developed by domain experts and system integrators do not have control over the performance of low level components. Hence, there is a compelling need for a scalable framework, which accelerates the system integration and at the same time is conform to safety levels. This position paper presents a Quality of Service (QoS) based component architecture so as to address this problem. Our approach introduces a component model that segregates the functional and non-functional aspects of decision making.
Intelligent Transportation Systems (ITS) are attracting growing attention both in industry and academia due to the advances in wireless communication technologies, and a significant demand for a wide variety of applic...
详细信息
ISBN:
(纸本)9781479905430
Intelligent Transportation Systems (ITS) are attracting growing attention both in industry and academia due to the advances in wireless communication technologies, and a significant demand for a wide variety of applications targeting this kind of environments are expected. In order to make it usable in real vehicular environments, achieving a well-designed Medium Access Control (MAC) protocol is a challenging issue due to the dynamic nature of Vehicular Ad Hoc Networks (VANETs), scalability issues, and the variety of application requirements. Different standardization organizations have selected IEEE 802.11 as the first choice for VANET environments considering its availability, maturity, and cost. The contention window is a critical parameter for handling medium access collisions by the IEEE 802.11 MAC protocol, and it highly affects the communications performance. The impact of adjusting the contention window has been studied in Mobile Ad-Hoc Networks (MANETs), but the vehicular communications community has not yet addressed this issue thoroughly. This paper proposes a new contention window control scheme, called DBM-ACW, for VANET environments. Analysis and simulation results using OMNeT++ in a highway scenario show that DBM-ACW provides better overall performance compared with previous proposals, even with high network densities.
object ownership enforces encapsulation within object-oriented programs by forbidding incoming aliases into objects' representations. Many common data structures, such as collections with iterators, require incomi...
详细信息
ISBN:
(纸本)9781467330763
object ownership enforces encapsulation within object-oriented programs by forbidding incoming aliases into objects' representations. Many common data structures, such as collections with iterators, require incoming aliases, so there has been much work on relaxing ownership's encapsulation to permit multiple incoming aliases. This research asks the opposite question: Are your aliases really necessary? In this paper, we count the cost of programming with strong object encapsulation. We refactored the JDK 5.0 collection classes so that they did not use incoming aliases, following either the owner-as-dominator or the owner-as-accessor encapsulation discipline. We measured the performance time overhead the refactored collections impose on a set of microbenchmarks and on the DaCapo, SPECjbb and SPECjvm benchmark suites. While the microbenchmarks show that individual operations and iterations can be significantly slower on encapsulated collection (especially for owner-as-dominator), we found less than 3% slowdown for owner-as-accessor across the large scale benchmarks. As a result, we propose that well-known design patterns such as Iterator commonly used by software engineers around the world need to be adjusted to take ownership into account. As most design patterns are used as a building block in constructing larger pieces of software, a small adjustment to respect ownership will not have any impact on the productivity of programmers but will have a huge impact on the quality of the resulting code with respect to aliasing.
Pattern calculus treats all computation as pattern matching, which is, in turn, central to the implementation of programming languages. Hence, its realisation in the general-purpose language bondi provides a natural h...
详细信息
ISBN:
(纸本)9780769550534
Pattern calculus treats all computation as pattern matching, which is, in turn, central to the implementation of programming languages. Hence, its realisation in the general-purpose language bondi provides a natural host in which to develop domain-specific languages (DSLs). bondi is a strongly typed language that supports mixing of programming styles to support the features required for language implementation. In particular, bondi supports queries, views and transformations that can be used to develop object-oriented meta-models. The approach is illustrated by growing a small combinatory language in which each language feature i.e. each production of each grammar, is isolated within a single object-oriented class that captures the rules for parsing, type inference, evaluation and printing. Further, growth is used to support lambda-abstractions, providing good evidence that this combinatory language could grow to support a general purpose programming language.
Modern software systems are built by composing components drawn from large repositories, whose size and complexity increase at a fast pace. Software systems built with components from a release of a repository should ...
详细信息
ISBN:
(纸本)9781467330763
Modern software systems are built by composing components drawn from large repositories, whose size and complexity increase at a fast pace. Software systems built with components from a release of a repository should be seamlessly upgradeable using components from the next release. Unfortunately, users are often confronted with sets of components that were installed together, but cannot be upgraded together to the latest version from the new repository. Identifying these broken sets can be of great help for a quality assurance team, that could examine and fix these issues well before they reach the end user. Building on previous work on component co-installability, we show that it is possible to find these broken sets for any two releases of a component repository, computing extremely efficiently a concise representation of these upgrade issues, together with informative graphical explanations. A tool implementing the algorithm presented in this paper is available as free software, and is able to process the evolution between two major releases of the Debian GNU/Linux distribution in just a few seconds. These results make it possible to integrate seamlessly this analysis in a repository development process.
I present an approach to avoid functional failures at runtime in component-based application systems. The approach exploits the intrinsic redundancy of components to find workarounds as alternative sequences of operat...
详细信息
ISBN:
(纸本)9781467330763
I present an approach to avoid functional failures at runtime in component-based application systems. The approach exploits the intrinsic redundancy of components to find workarounds as alternative sequences of operations to avoid a failure. A first Java prototype is presented, and an evaluation plan, as some preliminary results, are discussed.
In experimental robotics, we are often faced with differing requirements between projects and as a project evolves, making the initial choice of technology difficult, often requiring a continuous and tedious developme...
详细信息
ISBN:
(纸本)9781467363587
In experimental robotics, we are often faced with differing requirements between projects and as a project evolves, making the initial choice of technology difficult, often requiring a continuous and tedious development of the low-level parts of the robotic system. We propose the use of FPGAs as a flexible solution to these low-level issues;We here address the hitherto unresolved issue of interfacing the FPGA-based controllers to high-level robotics software running on a PC. This paper presents the Unity-Link software-gateware stack, which connects high-level software frameworks to our modular, FPGA-based generic hardware. Unity-Link provides simple, unified abstractions for quickly and easily interconnecting PC-based systems with nodes that provide hard real-time control of distributed robotic systems. Unity-Link uses a component-based modular bus structure based on open standards, and interfaces with a library of gateware components, enabling us to create complex applications quickly and efficiently. Automated code generation is used to provide convenient, application-specific interfaces to high-level robotics middleware such as ROS.
We present a tool-supported framework for the engineering of service-based systems (SBSs) capable of self-verifying their compliance with developer-specified reliability requirements. These self-verifying systems sele...
详细信息
ISBN:
(纸本)9781479902156
We present a tool-supported framework for the engineering of service-based systems (SBSs) capable of self-verifying their compliance with developer-specified reliability requirements. These self-verifying systems select their services dynamically by using a combination of continual quantitative verification and online updating of the verified models. Our framework enables the practical exploitation of recent theoretical advances in the development of self-adaptive SBSs through (a) automating the generation of the software components responsible for model updating, continual verification and service selection;and (b) employing standard SBS development processes.
Java is a very popular object-oriented programming (OOP) language because of its platform independent and automatic memory release mechanism (or garbage collection). However, garbage collection also speeds CPU time an...
详细信息
ISBN:
(纸本)9783037856529
Java is a very popular object-oriented programming (OOP) language because of its platform independent and automatic memory release mechanism (or garbage collection). However, garbage collection also speeds CPU time and should be done after careful consideration. In the paper, memory usage behavior and run-time object characteristics, including heap and object size, object age and access frequency, are studied using several commercial benchmarks. The profiler design method and experiment detail are represented in the paper. The runtime object characteristics are very important to guide the employment of different memory management algorithm.
暂无评论