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.
Orca is a language for parallel programming on distributed systems. Communication in Orca is based on shared data-objects, which is a form of distributed shared memory. The performance of Orca programs depends strongl...
详细信息
A key mechanism of a persistent programminglanguage is its ability to detect and handle references to non-resident objects. Ideally, this mechanism should be hidden from the programmer, allowing the transparent manip...
详细信息
ISBN:
(纸本)0897915879
A key mechanism of a persistent programminglanguage is its ability to detect and handle references to non-resident objects. Ideally, this mechanism should be hidden from the programmer, allowing the transparent manipulation of all data regardless of its potential lifetime. We term such a mechanism object faulting, in a deliberate analogy with page faulting in virtual memory systems. This paper presents a number of mechanisms for detecting and handling references to persistent objects, and evaluates their relative performance within an implementation of Persistent Smalltalk.
暂无评论