Example programs and AdaS concurrency simulator
Date/Time of Processing: Monday 17 July 1995 11:03:41Pm Overall Assessment of System: OK Classification of System: C Basis of Classification -- Syntax Errors PASS Completeness PASS Independence from External Libraries FAIL Independence from a Specific Ada Compiler FAIL Explanations for failures -- System withs non-standard library units that are not provided System contains compiler-specific pragmas or uses Machine_Code Number of ... Files 50 Library Units 63 Lines 3058 Statements 1992 Comments 0 Unidentified Withed Units -- 1 unidentified withed units Subunits and Parent Units -- 3 parent program units 0 missing parent units 9 subunits 0 subunits found but not specified 0 subunits specified but not found
languages/ada/crsware/pcdp: File Name Size --------- ---- README 2,165 pcdp.zip 55,017 Totals ============== ============== 2 Files 57,182
Ada Programs for Principles of Concurrent and Distributed Programming M. Ben-Ari Prentice-Hall International 1989 These programs are Ada implementations of concurrent and distributed algorithms. They can be studied as laboratory exercises or used as a framework for implementing other algorithms. The programs are written in (standard) Ada and will run on any (validated) Ada compiler, however, the implementation of concurrency is not prescribed by the standard and thus there may be variations in the behavior of the programs. In any case, the user or instructor must be familiar with implementation- specific commands relating to tasking. The behavior of the programs can be followed by inserting print statements within the tasks. It is possible to influence the execution of the programs by changing task priorities or introducting delay statements. A good on-line debugger is extremely helpful. The AdaS program simulates concurrent execution of several processes written in Ada syntax. There are two principle reasons for using AdaS, even if a true Ada compiler is available: a. Some Ada compilers may not implement time slicing. Therefore, they cannot execute the common memory algorithms. b. Even if time-slicing is implemented, the user may not be able to control the scheduler in sufficient detail to demonstrate the pathological behavior described in the book. For example, AdaS can demonstrate livelock in the fourth example of Chapter 3 which is caused by perfect interleaving of the instructions of two processes. AdaS is NOT an Ada interpreter. It accepts only very small fragment of the language, it does not reject all incorrect programs and there are some deviations from Ada semantics. It is best used as a laboratory instrument where an example program is initially written using a true compiler and then transfered to AdaS for microscopic examination.
Originally released on diskette through Prentice-Hall International, 1990. Posted in 1994.
This prologue must be included in all copies of this software. Restrictions on use or distribution: Software available for free use by owners of the book.
This software and its documentation are provided "AS IS" and without any expressed or implied warranties whatsoever. No warranties as to performance, merchantability, or fitness for a particular purpose exist. The user is advised to test the software thoroughly before relying on it. The user must assume the entire risk and liability of using this software. In no event shall any person or organization of people be held responsible for any direct, indirect, consequential or inconsequential damages or lost profits.