Join us on:

Current Programming and Applications Development Techniques

Session Chair: Tim Duval, Health Net, Inc.
Scalable Nonblocking Concurrent Objects for Mission Critical Code
Damian Dechev, Texas A&M University
Bjarne Stroustrup, Texas A&M University

The high degree of complexity and autonomy of future robotic space missions, such as the Mars Science Laboratory (MSL), poses a serious challenge in assuring their reliability and efficiency. Providing fast and safe concurrent synchronization is of critical importance to such autonomous embedded software systems. The application of nonblocking synchronization is known to help eliminate the hazards of deadlock, livelock, and priority inversion. Nonblocking programming techniques are notoriously difficult to implement and offer a variety of semantic guarantees and usability and performance trade-offs. The present software development and certification methodologies applied at NASA do not reach the level of detail of providing guidelines for the design of concurrent software. The complex task of engineering reliable and efficient concurrent synchronization is left to the programmer's ingenuity. A number of Software Transactional Memory (STM) approaches gained wide popularity because of their easy to apply concurrent interfaces, but at the present moment of time fail to offer scalable nonblocking transactions. In this work we provide an in-depth analysis of the nonblocking synchronization semantics and their applicability in mission critical code. We describe a generic implementation of a methodology for scalable implementation of concurrent objects. Our performance evaluation demonstrates that our approach is practical and outperforms the application of nonblocking transactions by a large factor.

Preon: Bit Syntax for Java
Wilfred Springer, Xebia

Writing software to deal with compressed media formats is not trivial. The same knowledge about the encoded representation will often be replicated in both the decoder, the encoder, as well as the documentation on the media format. As a consequence, the software is hard to maintain. This paper introduces Preon, a framework addressing these concerns. Preon allows you to define the mapping between an encoded representation and the in-memory representation just once, and provides the decoder, the encoder and documentation.

Using a Recursive Traversal Algorithm With an Active Composite Pattern in Swing Applications
Robert Languedoc, triVIN, Incorporated
James McKim, Winthrop University
Joseph Trausch, triVIN, Incorporated

A typical user interface contains hundreds of visual data entry components. Each component is required to perform basic functions such as clearing, validating or extracting the entered data. Additionally, components often require notification of particular events. A component may also broadcast a change in state necessary for an application that saves user input. Each component typically requires multiple lines of code in order to impart proper behavior. A significant number of bugs are associated with the failure to properly wire in every component used in the application. Considerable development time and effort is saved by employing an algorithm which discovers and directs the appropriate components within a framework at runtime. This is achieved through a recursive traversal algorithm employing a visitor construct which takes advantage of a composite structure. We call this approach the Active Composite pattern.

Please email any questions to . This e-mail address is being protected from spambots. You need JavaScript enabled to view it