Task sequencing language for specifying distributed Ada systems

  • D. C. Luckham
  • D. P. Helmbold
  • S. Meldal
  • D. L. Bryan
  • M. A. Haberler
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 275)


TSL-1 is a language for specifying sequences of tasking events occuring in the execution of distributed Ada programs. Such specifications are intended primarily for testing and debugging of Ada tasking programs, although they can also be applied in designing programs. TSL-1 specifications are included in an Ada program as formal comments. They express constraints to be satis fied by the sequences of actual tasking events. An Ada program is consistent with its TSL-1 specifications if its runtime behavior always satisfies them. This paper presents an overview of TSL-1. The features of the language are described informally, and examples illustrating the use of TSL-1, both for debugging and for specification of tasking programs, are given. A definition of robust TSL-1 specifications that takes into account uncertainty in runtime observation of behavior of distributed systems is given. A runtime monitor for checking consistency of an Ada program with TSL-1 specifications has been implemented. In the future, constructs for defining abstract tasks will be added to TSL-1, forming a new language, TSL-2, for the specification of distributed systems prior to their implementation in any particular programming language.


Task Type Basic Event Event Stream Compound Event Local Stream 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. [1]
    The Ada Programming Language Reference Manual US Department of Defense, US Government Printing Office, 1983. ANSI/MILSTD 1815A Document.Google Scholar
  2. [2]
    Bates, P.C. and Wileden, J.C. EDL: A Basis for Distributed System Debugging Tools. In Proceedings of Hawaii International Conference on System Sciences, pages 86–93. Hawaii International Conference on System Sciences, Honolulu, Hawaii, January, 1982.Google Scholar
  3. [3]
    Campbell,R.H. and Habermann, A.N. The Specification of Process Synchronization by Path-Expressions. Lecture Notes in Computer Science 16, 1974.Google Scholar
  4. [4]
    Clocksin, W.F., and Mellish, C.S. Programming in Prolog. Springer-Velag, 1981.Google Scholar
  5. [5]
    Helmbold, D.P. and Luckham, D.C. Debugging Ada Tasking Programs. In Proceedings of the IEEE Computer Society 1984 Conference on Ada Applications and Environments, pages 96–110. IEEE, St. Paul, Minnesota, October 15–18, 1984.Google Scholar
  6. [5]a
    Also published, Stanford University Computer Systems Laboratory TR 84-262, July, 1984, Program Analysis and Verification Group Report 25.Google Scholar
  7. [6]
    Helmbold, D.P., and Luckham, D.C. Runtime Detection and Description of Deadness Errors in Ada Tasking. CSL Technical Report 83-249, Stanford University, November, 1983. Program Analysis and Verification Group Report 22.Google Scholar
  8. [7]
    Helmbold, D.P., and Luckham, D.C. Debugging Ada Tasking Programs. IEEE Software 2(2):47–57, March, 1985.Google Scholar
  9. [7]a
    In Proceedings of the IEEE Computer Society 1984 Conference on Ada Applications and Environments, pp.96–110. IEEE, St. Paul, Minnesota, October 15–18, 1984. Also published as Stanford University CSL TR.84-263, July, 1984.Google Scholar
  10. [8]
    Helmbold, D.P., and Luckham, D.C. TSL: Task Sequencing Language. In Proceedings of the 1985 SIGAda International Conference, pages 255–274. ACM, Paris, France, May, 1985.Google Scholar
  11. [8]a
    Also published in a special edition of Ada Letters, Vol.V, Issue 2, September-October 1985.Google Scholar
  12. [9]
    Hewitt, C. Planner: A Language for Proving Theorems and Manipulating Models in a Robot. PhD thesis, Massachusetts Institute of Technology, January, 1971.Google Scholar
  13. [10]
    Kahn, G. and MacQueen, D. Coroutines and Networks of Parallel Processes. In Proceedings of IFIP Congress '77, pages 993–998. North-Holland Publishing Company, Amsterdam, August, 1977.Google Scholar
  14. [11]
    Lamport, L., Shostak, R., and Pease, M. The Byzantine Generals Problem. Transactions of Programming Languages and Systems 4(3):382–401, July, 1982.CrossRefGoogle Scholar
  15. [12]
    Ledoux, C., and Parker, D.S. Saving Traces for Ada Debugging. In Proceedings of the Ada International Conference'85, pages 97–108. Cambridge University Press, Month, 1985.Google Scholar
  16. [13]
    Dahl, O.-J. Time Sequences as a Tool For Describing Program Behaviour. Research Report in Informatics 48, University of Oslo, August, 1979.Google Scholar
  17. [14]
    Peterson, J.L. Petri Nets. Computing Surveys 9(3), September, 1977.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • D. C. Luckham
    • 1
  • D. P. Helmbold
    • 1
  • S. Meldal
    • 1
  • D. L. Bryan
    • 1
  • M. A. Haberler
    • 1
  1. 1.Program Analysis and Verification Group Computer Systems LaboratoryStanford UniversityStanford

Personalised recommendations