ADA: Concurrent Programming
Communicating sequential processes
Communicating sequential processes
Concurrent programming in Ada
Traps using the COUNT attribute in the readers-writers problem
ACM SIGAda Ada Letters
Specifying and automatically generating Ada tasks in Prolog
CSC '90 Proceedings of the 1990 ACM annual conference on Cooperation
A Formalization of Transition Diagram Systems
Journal of the ACM (JACM)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Distributed processes: a concurrent programming concept
Communications of the ACM
Monitors: an operating system structuring concept
Communications of the ACM
Concurrent control with “readers” and “writers”
Communications of the ACM
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
Machines, Languages and Computation
Machines, Languages and Computation
Proceedings of the International Sympoisum on Semantics of Concurrent Computation
The specification of process synchronization by path expressions
Operating Systems, Proceedings of an International Symposium
Towards the construction of verifiable software systems
Proceedings of the 1976 conference on Data : Abstraction, definition and structure
Rationale for the design of the Ada programming language
ACM SIGPLAN Notices - Rationale for the deisgn of the Ada programming language
Specifying and automatically generating Ada tasks in Prolog
CSC '90 Proceedings of the 1990 ACM annual conference on Cooperation
Modeling Operating Systems Schedulers with Multi-Stack-Queue Grammars
FCT '99 Proceedings of the 12th International Symposium on Fundamentals of Computation Theory
Hi-index | 0.00 |
The author shows how a class of concurrent programming problems can be specified with formal grammars. These grammars, more powerful than path expressions, translate readily into Ada server tasks using the rendezvous and select-statement, though they may also be applied to other synchronization constructs. The grammars may be used to clarify informal specifications, to compare different specifications, and to analyze the behavior of implementations of such specifications. They may also be easily converted into Prolog programs that can be executed to generate the strings of events accepted by a grammar or by the Ada task being modeled. The automated translation from Ada to such grammars, and from grammatical specifications to Ada is discussed. The former facilitates the analysis of Ada programs; the latter yields Ada code of high quality.