This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Cecil: A Sequencing Constraint Language for Automatic Static Analysis Generation
March 1990 (vol. 16 no. 3)
pp. 268-280

A flexible and general mechanism for specifying problems relating to the sequencing of events and mechanically translating them into dataflow analysis algorithms capable of solving those problems is presented. Dataflow analysis has been used for quite some time in compiler code optimization. Most static analyzers have been custom-built to search for fixed and often quite limited classes of dataflow conditions. It is shown that the range of sequences for which it is interesting and worthwhile to search in actually quite broad and diverse. A formalism for specifying this diversity of conditions is created. It is shown that these conditions can be modeled essentially as dataflow analysis problems for which effective solutions are known. It is also shown how these solutions can be exploited to serve as the basis for mechanical creation of analyzers for these conditions.

[1] F. E. Allen, "A basis for program optimizatio," inProc. 1971 IFIP Congr., 1971, pp. 385-390.
[2] T. Araki and N. Tokura, "Flow languages equal recursively enumerable languages,"Acta Inform., vol. 15, pp. 209-218, 1981.
[3] G. S. Avrunin, L. K. Dillon, J. C. Wileden, and W. E. Riddle, "Constrained expressions: adding analysis capabilities to design methods for concurrent software systems,"IEEE Trans. Software Eng., vol. SE- 12, pp. 278-292, Feb. 1986.
[4] W. Bartussek and D. L. Parnas, "Using traces to write abstract specifications for software modules," Dep. Comput. Sci., Univ. North Carolina, Chapel Hill, Tech. Rep. 77-12, 1977.
[5] R. H. Campbell and A. N. Habermann, "Path expressions in Pascal," inProc. Fourth Int. Conf. Software Eng., 1979, p. 212-219.
[6] R. H. Campbell and R. B. Loksatd, "An overview of Path Pascal's design,"SIGPLAN Notices. vol. 15, Sept. 1980.
[7] R. A. DeMillo, R. J. Lipton, and A. J. Perlis, "Social processes and proofs of theorems and programs,"Commun. ACM, vol. 22, no. 5, pp. 271-280, 1979.
[8] L. K. Dillon, G. S. Avrunin, and J. C. Wileden, "Constrained expressions: Toward broad applicability of analysis methods for distributed software systems," Dep. Comput. Inform. Sci., Univ. Massachusetts, Amherst, Tech. Rep. 86-15, May 1986.
[9] B. Elspas, K. N. Levitt, R. J. Waldinger, and A. Waksman, "An assessment of techniques for proving program correctness,"Comput. Surveys, vol. 4, pp. 97-147, June 1972.
[10] R. W. Floyd, "Assigning meaning to programs," inProc. 19th Symp. Applied Mathematics, 1969, pp. 19-32.
[11] L. D. Fosdick and L. J. Osterweil, "Data flow analysis in software reliability,"ACM Comput. Surveys, vol. 8, no. 3, pp. 306-330, Sept. 1976.
[12] S. M. Freudenberger, "On the use of global optimization algorithms for the detection of semantic programming errors," Ph.D. dissertation, Courant Inst., New York Univ., 1984.
[13] J. V. Guttag, E. Horowitz, and D. R. Musser, "Abstract data types and software validation,"Commun. ACM, vol. 21, pp. 1048-1064, Dec. 1978.
[14] A. N. Habermann, "Path expressions," Courant Inst., New York Univ., Tech. Rep., 1975.
[15] M. A. Harrison,Introduction to Formal Language Theory. Reading, MA: Addison-Wesley, 1978.
[16] M. Hecht,Flow Analysis of Computer Programs. New York: Elsevier North-Holland, 1977.
[17] M. S. Hecht and J. D. Ullman, "A simple algorithm for global data flow analysis."SIAM J. Comput., vol. 4, pp. 519-532, Dec. 1977.
[18] C. A. R. Hoare, "An axiomatic basis for computer programming,"Commun. ACM, vol. 12, no. 10, pp. 576-583, 1969.
[19] C. A. R. Hoare, "A model for communicating sequential processes," Oxford Univ., Tech. Rep., July 1979.
[20] C.A.R. Hoare,Communicating Sequential Processes, Prentice Hall, Englewood, N.J., 1985.
[21] W. E. Howden, "A general model for static analysis," inProc. 16th Hawaii Int. Conf. System Sciences, pp. 163-169.
[22] W. Howden,Functional Program Testing and Analysis. New York: Mc-Graw-Hill, 1987.
[23] R. B. Kieburtz and A. Silberschatz, "Acces-right expressions,"ACM Trans. Prog. Lang. and Syst., vol. 5, Jan. 1983.
[24] D. C. Luckham, "An overview of Anna, a specification language for Ada," inProc. IEEE Ada Applications and Environments Conf., Oct. 1984, pp. 116-127.
[25] D. C. Luckham, D. P. Helmbold, S. Meldal, D. L. Bryan, and M. A. Haberler, "Task sequencing language for specifying distributed Ada systems (TSL-1)," Comput. Syst. Lab., Stanford Univ., Rep. CSL-TR-87-334, July 1987.
[26] J. McLean, "A formal foundation for the abstract specification of software,"J. ACM, vol. 31, no. 3, pp. 600-627, July 1984.
[27] K. M. Olender, "Cecil/Cesar: Specification and static evaluation of sequencing constraints," Ph.D. dissertation, Univ. Colorado, 1988.
[28] K. M. Olender and L. J. Osterweil, " Cesar: A static sequencing constraint analyzer," inProc. Third Testing Analysis, and Verification Symp., Dec. 1989.
[29] L. J. Osterweil and L. D. Fosdick, "DAVE-A validation, error detection and documentation system for FORTRAN programs,"Software--Practice and Experience, vol. 6, pp. 473-486, 1976.
[30] T. J. Ostrand and E. J. Weyuker, "Collecting and categorizing software error data in an industrial environment,"J. Comput. Syst. Sci., vol. 4, pp. 289-300, 1984.
[31] W. E. Riddle, "An approach to software system modeling and analysis,"Comput. Languages, vol. 49-66, 1979.
[32] B. G. Ryder and M. C. Paull, "Elimination algorithms for data flow analysis,"ACM Comput. Surveys, vol. 18, no. 3, Sept. 1986.
[33] A. C. Shaw, "Software descriptions with flow expressions,"IEEE Trans. Software Eng., vol. SE-4, pp. 242-254, May 1978.
[34] R. N. Taylor and L. J. Osterweil, "Analysis and testing based on sequencing specifications," inProc. 4th Jerusalem Conf. Information Technology, May 1984, pp. 260-266.

Index Terms:
Cecil; sequencing constraint language; automatic static analysis generation; general mechanism; dataflow analysis algorithms; compiler code optimization; custom-built; dataflow conditions; dataflow analysis problems; automatic programming; parallel programming; program compilers; specification languages.
Citation:
K.M. Olender, L.J. Osterweil, "Cecil: A Sequencing Constraint Language for Automatic Static Analysis Generation," IEEE Transactions on Software Engineering, vol. 16, no. 3, pp. 268-280, March 1990, doi:10.1109/32.48935
Usage of this product signifies your acceptance of the Terms of Use.