Title :
Temporal logic-based deadlock analysis for Ada
Author :
Karam, Gerald M. ; Buhr, Raymond J A
Author_Institution :
Dept. of Syst. & Comput. Eng., Carleton Univ., Ottawa, Ont., Canada
fDate :
10/1/1991 12:00:00 AM
Abstract :
A temporal logic-based specification language and deadlock analyzer for Ada is described. The deadlock analyzer is intended for use within Timebench, a concurrent system-design environment with support for Ada. The specification language, COL, uses linear-time temporal logic to provide a formal basis for axiomatic reasoning. The deadlock analysis tool uses the reasoning power of COL to demonstrate that Ada designs specified in COL are systemwide deadlock-free: in essence, it uses a specialized theorem prover to deduce the absence of deadlock. The deadlock algorithm is shown to be decidable for finite systems and acceptable otherwise. It is also shown to have a worst-case computational complexity that is exponential with the number of tasks. The analyzer has been implemented in Prolog. Numerous examples are evaluated using the analyzer, including readers and writers, gas station, five dining philosophers, and a layered communications system. The results indicate that analysis time is reasonable for moderate designs in spite of the worst-case complexity of the algorithm
Keywords :
Ada; computational complexity; inference mechanisms; logic programming; specification languages; system recovery; temporal logic; Ada designs; COL; Prolog; Timebench; axiomatic reasoning; concurrent system-design environment; deadlock algorithm; deadlock analysis tool; deadlock analyzer; dining philosophers; finite systems; formal basis; gas station; layered communications system; linear-time temporal logic; readers; reasoning power; specification language; systemwide deadlock-free; temporal logic-based specification language; theorem prover; worst-case computational complexity; writers; Algorithm design and analysis; Communication systems; Computational complexity; Design automation; Design methodology; Logic design; Process design; Software design; Specification languages; System recovery;
Journal_Title :
Software Engineering, IEEE Transactions on