We study AOP in the context of business programming with Cobol. We face the following questions: What are join points in Cobol programs? What is advice?. Does classic Cobol provide any constructs that hint at AOP? (Ye...
详细信息
ISBN:
(纸本)1595930434
We study AOP in the context of business programming with Cobol. We face the following questions: What are join points in Cobol programs? What is advice?. Does classic Cobol provide any constructs that hint at AOP? (Yes!) What are typical crosscutting concerns in the Cobol world? How do otherwise typical crosscutting concerns make sense for Cobol? How does AOP for Cobol align with classic re-engineering transformations for Cobol? We deliver an AOP languagedesign for Cobol. Codename: AspectCobol. While we adopt several ideas from AspectJ and friends, we also devise original techniques for join-point identification and context capture. We briefly discuss a prototypical implementation of AspectCobol. Copyright 2005 acm.
Research in the design of aspect-oriented programminglanguages requires a workbench that facilitates easy experimentation with new language features and implementation techniques. In particular, new features for Aspe...
详细信息
ISBN:
(纸本)1595930434
Research in the design of aspect-oriented programminglanguages requires a workbench that facilitates easy experimentation with new language features and implementation techniques. In particular, new features for AspectJ have been proposed that require extensions in many dimensions: syntax, type checking and code generation, as well as data flow and control flow analyses. The AspectBench Compiler (abc) is an implementation of such a workbench. The base version of abc implements the full AspectJ language. Its frontend is built, using the Polyglot framework, as a modular extension of the Java language. The use of Polyglot gives flexibility of syntax and type checking. The backend is built using the Soot framework, to give modular code generation and analyses. In this paper, we outline the design of abc, focusing mostly on how the design supports extensibility. We then provide a general overview of how to use abc to implement an extension. Finally, we illustrate the extension mechanisms of abc through a number of small, but non-trivial, examples, abc is freely available under the GNU LGPL. Copyright 2005 acm.
We present the design and implementation of an automatic polyhedral source-to-source transformation framework that can optimize regular programs ( sequences of possibly imperfectly nested loops) for parallelism and lo...
详细信息
We present the design and implementation of an automatic polyhedral source-to-source transformation framework that can optimize regular programs ( sequences of possibly imperfectly nested loops) for parallelism and locality simultaneously. Through this work, we show the practicality of analytical model-driven automatic transformation in the polyhedral model-far beyond what is possible by current production compilers. Unlike previous works, our approach is an end-to-end fully automatic one driven by an integer linear optimization framework that takes an explicit view of finding good ways of tiling for parallelism and locality using affine transformations. The framework has been implemented into a tool to automatically generate OpenMP parallel code from C program sections. Experimental results from the tool show very high speedups for local and parallel execution on multi-cores over state-of-the-art compiler frameworks from the research community as well as the best native production compilers. The system also enables the easy use of powerful empirical/iterative optimization for general arbitrarily nested loop sequences.
The Observ methodology for software development is based on rapid construction of an executable specification (or prototype) of a system, which may be examined and modified repeatedly to achieve the desired functional...
详细信息
ISBN:
(纸本)0818620099
The Observ methodology for software development is based on rapid construction of an executable specification (or prototype) of a system, which may be examined and modified repeatedly to achieve the desired functionality. The objectives of Oobserv also include facilitating a smooth transition to a target system and providing the means for reusing specification, design, and code of (sub)systems. Of particular interest is the handling of embedded systems, which are likely to have concurrency and real-time requirements. The Observ prototyping language combines several paradigms to express the behavior of a system. The object-oriented approach provides the basic mechanisms for building a system from a collection of objects, with well-defined interfaces between them. Finite-state machines are used to model the behavior of individual objects. At a lower level, activities that occur within objects are described with the logic-programming paradigm, thus allowing a nonprocedural description when possible. An attempt has been made to provide flexible tools for executing (simulating) the prototype being built, as well as for browsing and static checking. The current implementation of the tools is window-based but not graphical.
The proceedings contain 57 papers. The topics discussed include: CAPS as a requirements engineering tool;Ada and CMS-2 cohabitation a transition method for U.S. Navy realtime tactical systems;experiences in developing...
ISBN:
(纸本)0897914457
The proceedings contain 57 papers. The topics discussed include: CAPS as a requirements engineering tool;Ada and CMS-2 cohabitation a transition method for U.S. Navy realtime tactical systems;experiences in developing an Ada cross compiler;Ada semantic interface specification (ASIS);debugging of optimized ADA code;Adam, an Ada simulation library;vaijdating the adarts software design method for real-time systems;Ada-based support for abstraction, encapsulation and unit hierarchy;SA-2-Ada : a methodology for deriving Ada designs from structured analysis specifications;a microprocessor with ADA real time support;SDL: a standard language for Ada real -time applications;pilot command center testbed development environment: a better way to develop C3systems;dynamic software replacement model and its Ada implementation;design and implementation of a multi-tool ADA front end;a three level ADA interface to a commercial database;efficient loop-level parallelism in Ada;building distributed Ada applications from specifications and functional components;distribution of Ada tasks onto a heterogeneous environment;and supporting packed decimal in Ada.
We present an object-oriented design model and its mapping to Ada 95 in order to build Active Information Systems. This represents part of a methodology based, for each step of the software life cycle, on a model and ...
详细信息
AspectJ does not provide a mechanism to hide implementation details from advice. As a result, aspects are tightly coupled to the implementation of the code they advise, while the behaviour of the base code is impossib...
详细信息
ISBN:
(纸本)159593300X
AspectJ does not provide a mechanism to hide implementation details from advice. As a result, aspects are tightly coupled to the implementation of the code they advise, while the behaviour of the base code is impossible to determine without analysing all advice that could modify its behaviour. The concept of open modules is proposed by Aldrich to solve the problems that arise from unrestricted advice. Defined for a, small functional language, it provides an encapsulation construct that allows an implementation to limit the set of points to which external advice may apply. We present an adaptation of open modules for AspectJ. We expand open modules to encompass the full set of point-cut primitives for AspectJ, extend its method of module composition to include the ability to open up a module, and describe the implementation of the design as an extension of the AspectBench compiler. We also provide an example of the use of open modules on a substantial AspectJ program to show how it would fit into existing AspectJ projects. Copyright 2006 acm.
Architectural decisions for DSP modules are often analyzed using high level C models. Such high-level explorations allow early examination of the algorithms and the architectural trade-offs that must be made for a pra...
详细信息
ISBN:
(纸本)1595933816
Architectural decisions for DSP modules are often analyzed using high level C models. Such high-level explorations allow early examination of the algorithms and the architectural trade-offs that must be made for a practical implementation. The same models can be reused during the verification of the RTL subsequently developed, provided that various "hooks" which are desirable during the verification process are considered while creating these high level models. In addition, consideration must be given to the qualitative content of these high level models to permit an optimal verification flow allowing for compromise between features of the model and the completeness of the verification. Thus, high quality design and verification are achieved by the use of valid models and the valid use of models. In this paper, we describe our approach and show examples from a typical image processing application. Copyright 2006 acm.
The authors present the Delphi project, which deals with the design and implementation of a software engineering environment (SEE) to enhance software productivity, in particular, one that targets information systems ...
详细信息
ISBN:
(纸本)0818620099
The authors present the Delphi project, which deals with the design and implementation of a software engineering environment (SEE) to enhance software productivity, in particular, one that targets information systems (IS) for business data processsing problems. A set of specification languages was designed to specify the IS in a modular manner. Collectively, these languages are called the data processing specification outlining language (DPSOL). DPSOL is customizable, executable, extensible, and translatable and can be used in rapid prototyping or in automatic translation to a target 3GL/environment. The authors present the expressive power of DPSOL to specify the IS, and its automated process of checking referential integrity and computational consistency. The approach is translational (using templates) instead of transformational. It was found that templating is a powerful concept in automatic programming, at least for IS. The templates can be edited and modified to generate customized 3GL source code. Moreover, documentation can also be automatically generated.
ICE (Intermediate Code Engine) and ICE/T (ICE/Translator) are compiler back ends that execute on a Java Virtual Machine (JVM). They allow the student to complete a working compiler quickly and can execute on any platf...
详细信息
ISBN:
(纸本)9781450377942
ICE (Intermediate Code Engine) and ICE/T (ICE/Translator) are compiler back ends that execute on a Java Virtual Machine (JVM). They allow the student to complete a working compiler quickly and can execute on any platform that supplies a JVM. ICE is a quadruple interpreter that executes ICE code directly, and includes an assembler, which a builder can use to side-step most symbol management issues. ICE/T is a translator that accepts ICE assembly code as input, and generates an equivalent Java class file as output. This paper advocates the use of these tools in compiler implementation courses.
暂无评论