We present a programminglanguage with first-class timing constructs, whose semantics is based on time-constrained relationships between observable events. Since a system specification postulates timing relationships ...
详细信息
ISBN:
(纸本)9780897915984
We present a programminglanguage with first-class timing constructs, whose semantics is based on time-constrained relationships between observable events. Since a system specification postulates timing relationships between events, realizing the specification in a program becomes a more straightforward process. Using these constraints, as well as those imposed by data and control flow properties, our objective is to transform the code so that its worst-case execution time is consistent with its real-time requirements. To accomplish this goal we first translate an event-based source program into intermediate code, in which the timing constraints are imposed on the code itself, and then use a compilation technique which synthesizes feasible code from the original source program.
This paper presents the design and implementation of a `quasi real-time' garbage collector for Concurrent Caml Light, an implementation of ML with threads. This two-generation system combines a fast, asynchronous ...
详细信息
ISBN:
(纸本)0897915607
This paper presents the design and implementation of a `quasi real-time' garbage collector for Concurrent Caml Light, an implementation of ML with threads. This two-generation system combines a fast, asynchronous copying collector on the young generation with a non-disruptive concurrent marking collector on the old generation. This design crucially relies on the ML compile-time distinction between mutable and immutable objects.
Ada 83 is an abstraction-oriented programminglanguage. It supports the definition of abstract data types in modules called "packages," with a separate interface and implementation. The next revision of the ...
详细信息
We present a new programming paradigm called Communicating Reactive Processes or CRP that unifies the capabilities of asynchronous and synchronous concurrent programminglanguages. Asynchronous languages such as CSP, ...
详细信息
ISBN:
(纸本)0897915607
We present a new programming paradigm called Communicating Reactive Processes or CRP that unifies the capabilities of asynchronous and synchronous concurrent programminglanguages. Asynchronous languages such as CSP, OCCAM, or ADA are well-suited for distributed algorithms;their processes are loosely coupled and communication takes time. The ESTEREL synchronous language is dedicated to reactive systems;its processes are tightly coupled and deterministic, communication being realized by instantaneous broadcasting. Complex applications such as process or robot control require to couple both forms of concurrency, which is the object of CRP. A CRP program consists of independent locally reactive ESTEREL nodes that communicate with each other by CSP rendezvous. CRP faithfully extends both ESTEREL and CSP and adds new possibilities such as precise local watchdogs on rendezvous. We present the design of CRP, its semantics, a translation into classical process calculi for program verification, an application example, and implementation issues.
Strongtalk™ is a typechecker for a downwardcompatible Smalltalk dialect. It is designed for large-scale production software development, and incorporates a strong, modem structural type system. It not only separates t...
详细信息
A data breakpoint associates debugging actions with programmer-specified conditions on the memory state of an executing program. Data breakpoints provide a means for discovering program bugs that are tedious or imposs...
详细信息
ISBN:
(纸本)0897915984
A data breakpoint associates debugging actions with programmer-specified conditions on the memory state of an executing program. Data breakpoints provide a means for discovering program bugs that are tedious or impossible to isolate using control breakpoints alone. In practice, programmers rarely use data breakpoints, because they are either unimplemented or prohibitively slow in available debugging software. In this paper, we present the design and implementation of a practical data breakpoint facility. A data breakpoint facility must monitor all memory updates performed by the program being debugged. We implemented and evaluated two complementary techniques for reducing the overhead of monitoring memory updates. First, we checked write instructions by inserting checking code directly into the program being debugged. The checks use a segmented bitmap data structure that minimizes address lookup complexity. Second, we developed data flow algorithms that eliminate checks on some classes of write instructions but may increase the complexity of the remaining checks. We evaluated these techniques on the SPARC using the SPEC benchmarks. Checking each write instruction using a segmented bitmap achieved an average overhead of 42%. This overhead is independent of the number of breakpoints in use. Data flow analysis eliminated an average of 79% of the dynamic write checks. For scientific programs such the NAS kernels, analysis reduced write checks by a factor of ten or more. On the SPARC these optimizations reduced the average overhead to 25%.
Using an Object-Oriented (OO) model, we developed an architecture for an extensible and portable class library designed to build applications mat manipulate programs. This library enables applications to manipulate st...
详细信息
The Department of Defense PoD) High Order language *** program begin in 1975 with the goal of establishing a single high order computer programminglanguage appropriate for DoD real-time embedded computer systems. A H...
详细信息
ISBN:
(纸本)0897915704
The Department of Defense PoD) High Order language *** program begin in 1975 with the goal of establishing a single high order computer programminglanguage appropriate for DoD real-time embedded computer systems. A High Order language Working Group (HOLWG) was chartered D formulate the DoD requirements for High Order languages, to evaluate existing languages against thoie reqjirements, and to implement the rrinimaJ set of languages required for DoD use. Other pans of the effort included administrative initiatives toward the eventual gca.. Specifically, DoD Directive 5000.29 which provided that new defense systems should be programmed in a DoD "approved" and centrally controlled high order language and DoD Instructicn 5000.31 which gave the interim defining list of approved ianguajes. The HCLWG language requirements were widely distributed for comment throughout the military and civil communities worldwide. Each successive version of the requirements, from STRAWMAN through STEELMAN, produced a more refined definition of the proposed language. During the requirement development process, it was determined Thai the set cf requirements generated was bcxh necessary and sufficient for all major DoD applications (and the analogous large commercial applications). Formal evauations were performed on dozens of existing languages. It was concludcd that no existing language could be adopted as a single common high order language for the DoD, but lhat a single language meeting essentially all the requirements was both feasible and desirable. Four contractors were funded to producc competitive prototypes. A first-phase evaluation reduced the designs to two. which were earned to complrtion. In turn, a single languagedesign was subsequently chosen. Follcw-on steps included the test and evaluation of the language, control of the language ind validation cf compilers. The production of compilers aid a program development and tool environment were to be accomplishsd separately
In this paper we introduce a statically-typed, functional, object-oriented programminglanguage, TOOPL, which supports classes, objects, methods, instance variables, subtypes, and inheritance. It has proved to be surp...
详细信息
ISBN:
(纸本)0897915607
In this paper we introduce a statically-typed, functional, object-oriented programminglanguage, TOOPL, which supports classes, objects, methods, instance variables, subtypes, and inheritance. It has proved to be surprisingly difficult to design statically-type object-oriented languages which are nearly as expressive as Smalltalk and yet have no holes in their typing systems. A particular problem with statically type checking object-oriented languages is determining whether a method provided in a superclass will continue to type check when inherited in a subclass. This problem is solved in our language by providing type checking rules which guarantee that a method which type checks as part of a class will type check correctly in all legal subclasses in which it is inherited. This feature enables library providers to provide only the interfaces of classes with executables and still allow users to safely create subclasses. The design of TOOPL has been guided by an analysis of the semantics of the language, which is given in terms of a sufficiently rich model of the F-bounded second-order lambda calculus. This semantics supported the languagedesign by provided a means of proving that the type-checking rules for the language are sound, ensuring that well-typed terms produce objects of the appropriate type. In particular, in a well-typed program it is impossible to send a message to an object which lacks a corresponding method.
This paper describes an experience with Lisp as an extension language for a large electronics CAD environment and the role it plays in software design automation. This paper is not about extension languages in general...
详细信息
This paper describes an experience with Lisp as an extension language for a large electronics CAD environment and the role it plays in software design automation. This paper is not about extension languages in general, for an analysis of extension languages in CAD, see, [HNS90] and [Bar89]. Cadence is a full range supplier of software based Electronics CAD tools. SKILL has been leveraged for various uses throughout the product range and the software development cycles. Among the important roles SKILL plays: • An environment for software development • A meta-language for describing domain specific languages • Extension language for Product customizing • Test automation. The paper goes on to describe each of these roles, and more, after a brief introduction to the history of SKILL.
暂无评论