Knit is a new component definition and linking language for systems code. Knit helps make C code more understandable and reusable by third parties, helps eliminate much of the performance overhead of componentization,...
详细信息
Knit is a new component definition and linking language for systems code. Knit helps make C code more understandable and reusable by third parties, helps eliminate much of the performance overhead of componentization, detects subtle errors in component composition that cannot be caught with normal component type systems, and provides a foundation for developing future analyses over C-based components, such as cross-component optimization. The language is especially designed for use with component kits, where standard linking tools provide inadequate support for component configuration. In particular, we developed Knit for use with the OSKit, a large collection of components for building low-level systems. However, Knit is not OSKit-specific, and we have implemented parts of the Click modular router in terms of Knit components to illustrate the expressiveness and flexibility of our language. This paper provides an overview of the Knit language and its applications.
We present a new static analysis method for first-class continuations that uses an effect system to classify the control domain behavior of expressions in a typed polymorphic language. We introduce two new control eff...
详细信息
We present a new static analysis method for first-class continuations that uses an effect system to classify the control domain behavior of expressions in a typed polymorphic language. We introduce two new control effects, goto and comefrom, that describe the control flow properties of expressions. An expression that does not have a goto effect is said to be continuation following because it will always call its passed return continuation. An expression that does not have a comefrom effect is said to be continuation discarding because it will never preserve its return continuation for later use. Unobservable control effects can be masked by the effect system. Control effect soundness theorems guarantee that the effects computed statically by the effect system are a conservative approximation of the dynamic behavior of an expression.
The relationships between objects in an object-oriented program are an essential property of the program's design and implementation. Two previous approaches to implement relationships with aspects were associatio...
详细信息
Mul-T is a parallel Lisp system, based on Multilisp's future construct, that has been developed to run on an Encore Multimax multiprocessor. Mul-T is an extended version of the Yale T system and uses the T system&...
详细信息
Mul-T is a parallel Lisp system, based on Multilisp's future construct, that has been developed to run on an Encore Multimax multiprocessor. Mul-T is an extended version of the Yale T system and uses the T system's ORBIT compiler to achieve 'production quality' performance on stock hardware - about 100 times faster than Multilisp. Mul-T shows that futures can be implemented cheaply enough to be useful in a production-quality system. Mul-T is fully operational, including a user interface that supports managing groups of parallel tasks.
A runtime supervisor is an Ada package in the standard environment which provides a scheduling interface between a compiled tasking program and the virtual machine upon which it is to execute. Its visible operations i...
详细信息
ISBN:
(纸本)0897910877
A runtime supervisor is an Ada package in the standard environment which provides a scheduling interface between a compiled tasking program and the virtual machine upon which it is to execute. Its visible operations implement the more complex aspects of the tasking dynamic semantics. These operations are very high level in the sense that they conform closely to Ada tasking constructs. Internal to the supervisor is a small kernel of machine dependent code providing the actual interface to the target virtual *** this kind of runtime environment, the compiled code of a tasking program is equivalent to the code generated by a compilation of sequential Ada constructs with embedded calls to the supervisor visible operations. All parallelism is abstracted out of the program prior to the code generation phase of the compilation, and the implementation of the parallel constructs of the Ada language is shifted into the runtime supervisor package. While the form of the sequential Ada code implementing tasking constructs will depend on design decisions made by the implementors of specific compilers as in [3] and [5], a carefully designed supervisor will be compatible with the code generated by any Ada compiler calling that supervisor's visible operations in the specified *** benefits of this approach, which was originally adopted for the design of the experimental Adam compiler [4], are apparent. Target machine dependent aspects of scheduling, and details of scheduling strategies are separated from compilation. The code generation phase of the Ada compiler is greatly simplified by factoring out all tasking related routines. Compiler builders need not reimplement all of tasking for each new compiler or intended target machine. In addition, experimental and special purpose supervisors will gain wider distribution and evaluation due the portability inherent in this *** this paper we analyze the feasibility of implementing a runtime supervisor in Ada, point
We describe the automatic generation of a complete, realistic compiler from formal specifications of the syntax and semantics of Sol/C, a nontrivial imperative language “sort of like C.” The compiler exhibits a thre...
ISBN:
(纸本)9780897912693
We describe the automatic generation of a complete, realistic compiler from formal specifications of the syntax and semantics of Sol/C, a nontrivial imperative language “sort of like C.” The compiler exhibits a three pass structure, is efficient, and produces object programs whose performance characteristics compare favorably with those produced by commercially available compilers. To our knowledge, this is the first time that this has been accomplished.
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.
This paper describes the design, specification, implementation of and experiences from an interactive flowcharting technique for communicating and realizing algorithms. Educating the expert to know how to use the comp...
详细信息
This paper describes the design, specification, implementation of and experiences from an interactive flowcharting technique for communicating and realizing algorithms. Educating the expert to know how to use the computer system is important, since then he/she can easily express his/her ideas in the same 'language' as the other persons in the software development group. Our goals are: to help novices to understand computers, by giving them a framework for organizing algorithms, and to support development of software produced by groups of people over an extended period of time. Based on the notions of dimensional flowcharts a system called the DIMsystem has been developed for handling structured flowcharts.
Graphics Processing Units (GPU) have been playing an important role in the general purpose computing market recently. The common approach to program GPU today is to write GPU specific code with low level GPU APIs such...
详细信息
ISBN:
(纸本)9781450301787
Graphics Processing Units (GPU) have been playing an important role in the general purpose computing market recently. The common approach to program GPU today is to write GPU specific code with low level GPU APIs such as CUDA. Although this approach can achieve very good performance, it raises serious portability issues: programmers are required to write a specific version of code for each potential target architecture. It results in high development and maintenance cost. We believe it is desired to have a programming model which provides source code portability between CPUs and CPUs, and different GPUs: Programmers only need to write one version of code and can be compiled and executed on either CPUs or CPUs efficiently without modification. In this paper, we propose MapCG, a Map Reduce framework to provide source code level portability between CPU and GPU. Different from OpenCL, our framework is based on Map Reduce, which provides a high level programming model, making programming much easier. We describe the design of the Map Reduce-based high-level programminglanguage and the underlying runtime system to enable portability between CPU and CPU. A prototype of MapCG runtime was implemented, supporting multi-core CPU and NVIDIA GPUs. Experiments show that our implementation can execute the same source code efficiently on multi-core CPU platforms and CPUs, achieving an average of 1.6-2.5x speedup over previous implementations of Map Reduce on eight commonly used applications.
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.
暂无评论