The proceedings contain 39 papers. The topics discussed include: variant path types for scalable extensibility;dependent classes;component nextgen: a sound and expressive component framework for Java;user-changeable v...
详细信息
ISBN:
(纸本)9781595937865
The proceedings contain 39 papers. The topics discussed include: variant path types for scalable extensibility;dependent classes;component nextgen: a sound and expressive component framework for Java;user-changeable visibility resolving unanticipated name clashes in traits;tractions with isolation and cooperation;granting Java interface developers their wishes;the justadd extensible Java compiler;streamflex: high-throughput stream programming in Java;the causes of bloat, the limits of health;notation and representation in collaborative object-oriented design: an observational study;WebRB: evaluating a visual domain-specific language for building relational web-application;modular typestate checking of aliased objects;and modular verification of higher-order methods with mandatory calls specified by model programs.
The proceedings contain 32 papers. The topics discussed include: toward molecular programming with DNA;overshadow: a virtualization-based approach to retrofitting protection in commodity operating systems;accelerating...
详细信息
ISBN:
(纸本)9781595939586
The proceedings contain 32 papers. The topics discussed include: toward molecular programming with DNA;overshadow: a virtualization-based approach to retrofitting protection in commodity operating systems;accelerating two-dimensional page walks for virtualized systems;efficiency trends and limits from comprehensive microarchitectural adaptivity;exploiting access semantics and program behavior to reduce snoop power in chip multiprocessors;PICSEL: measuring user-perceived performance to control dynamic frequency scaling;improving the performance of object-orientedlanguages with dynamic predication of indirect jumps;the mapping collector: virtual memory support for generational, parallel, and concurrent compaction;HardBound: architectural support for spatial safety of the C programming language;Archipelago: trading address space for reliability and security;and accurate branch prediction for short threads.
The semantic Web offers new opportunities to integrate desktop applications seamlessly with one another, but most software applications currently still rely on proprietary RDBMS systems for data storage, and applicati...
详细信息
The semantic Web offers new opportunities to integrate desktop applications seamlessly with one another, but most software applications currently still rely on proprietary RDBMS systems for data storage, and application logic is typically expressed only through general-purpose programminglanguages without being formally defined. In this article we propose an alternative approach to designing simple applications, using an OWL-DL ontology to define ECA rules for a domain and then use a novel software framework to transform these into a functional Java API that can execute these rules according to the ontology specification. We use the simple case of a turn based word-game to illustrate the framework in action. The project methodology and framework design are discussed and suggestions for further work are proposed.
Level - *** intermediate-level tutorial is aimed at people with a technical background in software development. No previous experience with safety-critical standards is required. Some familiarity with one or more of C...
详细信息
ISBN:
(纸本)9781605582740
Level - *** intermediate-level tutorial is aimed at people with a technical background in software development. No previous experience with safety-critical standards is required. Some familiarity with one or more of C, C++, Ada, or Java would be ***-critical systems (whose anomalous behavior could cause catastrophic or major failure involving loss of life) are becoming increasingly prevalent. Standards such as DO-178B, originally developed for commercial avionics, are attracting attention in other segments. The requirement to comply with such standards imposes constraints (on quality assurance, traceability, etc.) much beyond what is typical for Commercial-Off-The-Shelf Software. One of the major decisions that affects safety certification is the choice of programming language(s). Specific language features, either by their presence of absence, may make certification easier or harder. (Practicalities such as tool support and programmer experience are of course also important but are outside the scope of the tutorial).This tutorial first summarizes existing safety standards, with a focus on DO-178B, and explains how they affect the requirements on a programming language. It specifically addresses the challenges imposed by object-oriented Technology and summarizes the work currently underway on DO-178C. The tutorial then assesses three language technologies - C (including C++), Ada, and Java - with respect to suitability for meeting these requirements through appropriate subsetting. MISRA C, SPARK, and the in-progress Safety-Critical Java Technology are specifically identified and reviewed.
Mainstream object-orientedlanguages such as C# and Java provide an initialization model for objects that does not guarantee programmer controlled initialization of fields. Instead, all fields are initialized to defau...
详细信息
Mainstream object-orientedlanguages such as C# and Java provide an initialization model for objects that does not guarantee programmer controlled initialization of fields. Instead, all fields are initialized to default values (0 for scalars and null for non-scalars) on allocation. This is in stark contrast to functional languages, where all parts of an allocation are initialized to programmer-provided values. These choices have a direct impact on two main issues: 1) the prevalence of null in objectorientedlanguages (and its general absence in functional languages), and 2) the ability to initialize circular data structures. This paper explores connections between these differing approaches and proposes a fresh look at initialization. Delayed types are introduced to express and formalize prevalent initialization patterns in object-orientedlanguages.
Since the introduction of object-orientedprogramming few programminglanguages have attempted to provide programmers with more than objects and classes, i.e., more than two levels. Those that did, almost exclusively ...
详细信息
Since the introduction of object-orientedprogramming few programminglanguages have attempted to provide programmers with more than objects and classes, i.e., more than two levels. Those that did, almost exclusively aimed at describing language properties - i. e., their metaclasses exert linguistic control on language concepts and mechanisms often in order to make the language extensible. In terms of supporting logical domain classification levels, however, they are still limited to two levels. In this paper we conservatively extend the object-orientedprogramming paradigm to feature an unbounded number of domain classification levels. We can therefore avoid the introduction of accidental complexity into programs caused by accommodating multiple domain levels within only two programming levels. We present a corresponding language design featuring "deep instantiation" and demonstrate its features with a running example. Finally, we outline the implementation of our compiler prototype and discuss the potentials of further developing our language design.
Current real-world software applications typically involve heavy use of relational and XML data and their query languages. Unfortunately object-orientedlanguages and database query languages are based on different se...
详细信息
Current real-world software applications typically involve heavy use of relational and XML data and their query languages. Unfortunately object-orientedlanguages and database query languages are based on different semantic foundations and optimization strategies. The resulting "ROX ( Relations, objects, XML) impedance mismatch" makes life very difficult for developers. Microsoft Corporation is developing extensions to the. NET framework to facilitate easier processing of non-object-oriented data models. Part of this project (known as "LINQ") includes various extensions to the. NET languages to leverage this support. In this paper we consider proposals for C-# 3.0, the next version of the C-# programming language. We give both an informal introduction to the new language features, and a precise formal account by defining a translation from C-# 3.0 to C-# 2.0. This translation also demonstrates how these language extensions do not require any changes to the underlying CLR.
Conscientious software is a recently proposed paradigm for developing reliable, self-sustaining software systems. Conscientious software systems consist of an allopoietic part, which encapsulates application functiona...
详细信息
Conscientious software is a recently proposed paradigm for developing reliable, self-sustaining software systems. Conscientious software systems consist of an allopoietic part, which encapsulates application functionality, and an autopoietic part that is responsible for keeping the system alive by monitoring the application and adapting it to environmental changes. Practical application of the conscientious software paradigm requires solutions to two open problems: The design of suitable autopoietic programminglanguages and the proposal of concrete architectures for combining the autopoietic and allopoietic parts. In this paper, we tackle the second challenge, and propose a concrete, aspect-oriented architecture for realizing conscientious software. Here, we introduce epi-aspects, a construct for upgrading new and existing applications into conscientious software. This paper provides the architectural design of epi-aspects, an autopoietic simulator, and a concrete framework for developing epi-aspects in Java. The framework and the simulator are used to conduct a case study in which we develop and test a conscientious Java application.
A dynamic language promotes ease of use through flexible typing, a focus on high-level programming, and by streamlining the edit-compile-debug cycle. Live languages go beyond dynamic languages with more ease of use fe...
详细信息
A dynamic language promotes ease of use through flexible typing, a focus on high-level programming, and by streamlining the edit-compile-debug cycle. Live languages go beyond dynamic languages with more ease of use features. A live language supports live programming that provides programmers with responsive and continuous feedback about how their edits affect program execution. A live language is also based on high-level constructs such as declarative rules so that programmers can write less code. A live language could also provide programmers with responsive semantic feedback to enable time-saving services such as code completion. This paper describes the design of a textual live language that is based on reactive data-flow values known as signals and dynamic inheritance. Our language, Super-Glue, supports live programming with responsive semantic feedback, which we demonstrate with a working prototype.
Many web-applications can be characterized as "relational". In this paper we introduce and evaluate WebRB, a visual domain-specific language for building such applications. WebRB addresses the limitations of...
详细信息
Many web-applications can be characterized as "relational". In this paper we introduce and evaluate WebRB, a visual domain-specific language for building such applications. WebRB addresses the limitations of the conventional "imperative-embedding" approach typically used to build relational web-applications. We describe the WebRB language, present extended examples of its use, and discuss the WebRB visual editor, libraries, and runtime. We then evaluate WebRB by comparing it to alternative approaches, and demonstrate its effectiveness in building relational web-applications.
暂无评论