In a previously published companion paper a method for extending programming languages with timing constructs was proposed. It was shown that the extension enables the construction of real-time programs that can be pr...
详细信息
In a previously published companion paper a method for extending programming languages with timing constructs was proposed. It was shown that the extension enables the construction of real-time programs that can be proven correct independently of the properties of the machine that is used for their execution. It also yields a strict division of system construction into two phases: (1) a platform-independent programming phase that includes the expression of timing requirements, and (2) an implementation phase where all platform dependencies are addressed. In this second paper the approach is illustrated using an example problem often quoted in the literature: the mine-pump system. The two mentioned phases are described in detail for this example. First, a program is obtained in a systematic way. Then, realizations of the program under various schemes for distribution and scheduling are considered and analyzed. A comparison with other approaches to real-time programming is given.
A method for extending programming languages with timing constructs is proposed. It enables the specification of timing constraints in programs. The approach is not language specific and the extension can be included ...
详细信息
A method for extending programming languages with timing constructs is proposed. It enables the specification of timing constraints in programs. The approach is not language specific and the extension can be included in many existing programming languages. With the extension it is possible to write real-time program components that can be proven correct independently of the properties of the machine that is used for their execution. It therefore provides a similar abstraction from the execution platform as is normal in non-real-time programming. The presented approach distinguishes two phases in system construction: (1) a platform-independent programming phase that includes the expression of timing requirements, and (2) an implementation phase where all platform dependencies are addressed. The latter only differs from a normal compilation in the sense that a feasible schedule must be found to execute the program.
Concurrent C is an upward-compatible parallel extension of C which runs on a variety of uniprocessors and multiprocessors. A Concurrent C program consists of a set of processes which execute in parallel and interact w...
详细信息
Concurrent C is an upward-compatible parallel extension of C which runs on a variety of uniprocessors and multiprocessors. A Concurrent C program consists of a set of processes which execute in parallel and interact with each other by sending messages. Fault-Tolerant (FT) Concurrent C, an extension of Concurrent C, is a tool for writing fault-tolerant distributed programs, based on the replication of critical processes. All details of interaction with replicated (fault-tolerant) processes are handled by the FT Concurrent C runtime system. Consequently, writing fault-tolerant distributed programs is almost the same as writing ordinary distributed programs. In this paper, we briefly describe Concurrent C, discuss its real-time facilities and describe FT Concurrent C.
Lock-based resource sharing protocols for single processor systems are well understood and supported in programming languages such as Ada and the real-time Specification for Java, and in real-time Operating Systems, s...
详细信息
Lock-based resource sharing protocols for single processor systems are well understood and supported in programming languages such as Ada and the real-time Specification for Java, and in real-time Operating Systems, such as those that conform to the real-time POSIX standard. In contrast, multiprocessor resource sharing protocols are still in their infancy with no agreed best practices, and yet current real-time programming languages and operating systems claim to be suitable for multiprocessor applications. This paper reviews the currently available multiprocessor resource allocation policies and analyzes their applicability to the main industry standard real-time programming languages. It then proposes a framework that allows programmers to define and implement their own locking policy. A prototype implementation of the framework for Ada is presented and evaluated. Copyright (c) 2012 John Wiley & Sons, Ltd.
This paper introduces an approach to verify the correctness of the implementation of real-time languages. We apply the techniques presented in Hoare and He's "Unifying Theories of programming" to reason ...
详细信息
This paper introduces an approach to verify the correctness of the implementation of real-time languages. We apply the techniques presented in Hoare and He's "Unifying Theories of programming" to reason about the correctness of compilers and schedulers for real-time languages, using high-level abstractions such as algebraic laws. In the compilation process, the existence of unique fixed-points is exploited to verify the implementation of crucial real-time operators such as asynchronous input, delay and timeout. It is developed an abstract model for scheduling real-time programs into a uniprocessor machine. The applicability of the model is shown by instancing it with two types of schedulers: a round-robin scheduler, employed when the participating parallel processes do not include deadline constraints, and a priority-based scheduler, used when each participating process is periodic and possesses an associated deadline.
real-time programming is one of the more demanding aspects of programming and an area where the introduction of the microprocessor has had a large impact both in industrial applications and in education. In this artic...
详细信息
real-time programming is one of the more demanding aspects of programming and an area where the introduction of the microprocessor has had a large impact both in industrial applications and in education. In this article, the design of a microcomputer-controlled train set is described together with its use in the teaching of real-time programming. Experience has shown that this equipment is both very popular with students and also is able to demonstrate many of the features of control of a real-time system.
Discusses four techniques for programmingreal-time applications in Common LISP. Memory management in real-time environments; Macros in Common LISP; Type declarations to support compile-time optimizations; Techniques ...
详细信息
Discusses four techniques for programmingreal-time applications in Common LISP. Memory management in real-time environments; Macros in Common LISP; Type declarations to support compile-time optimizations; Techniques for reducing the size of applications in Common LISP.
作者:
WIRTH, NXEROX CORP
PALO ALTO RES CTRPALO ALTOCA 94304 ETH
CH-8006 ZURICHSWITZERLAND
programming is divided into three major categories with increasing complexity of reasoning in program validation: sequential programming, multiprogramming, and real-time programming. By adhering to a strict programmin...
详细信息
programming is divided into three major categories with increasing complexity of reasoning in program validation: sequential programming, multiprogramming, and real-time programming. By adhering to a strict programming discipline and by using a suitable high-level language molded after this discipline, the complexity of reasoning about concurrency and execution time constraints may be drastically reduced. This may be the only practical way to make real-time systems analytically verifiable and ultimately reliable. A possible discipline is outlined and expressed in terms of the language Modula. [ABSTRACT FROM AUTHOR]
暂无评论