This Article 
 Bibliographic References 
 Add to: 
The C Information Abstraction System
March 1990 (vol. 16 no. 3)
pp. 325-334

A system for analyzing program structures is described. The system extracts relational information from C programs according to a conceptual model and stores the information in a database. It is shown how several interesting software tasks can be performed by using the relational views. These tasks include generation of graphical views, subsystem extraction, program layering, dead code elimination and binding analysis.

[1] A. Aho, B. Kernighan, and P. Weinberger,The Awk Programming Language. Reading, MA: Addison-Wesley, 1988.
[2] J. Browne and D. B. Johnson, "FAST: A second generation program analysis system," inProc. Second Int. Conf. Software Engineering, pp. 142-148, 1977.
[3] P. S. Chen,The Entity-Relationship Approach to Software Engineering. New York: Elsevier Science, 1983.
[4] Y.-F. Chen and C. V. Ramamoorthy, "The C information abstractor," inProc. Tenth Int. Computer Software and Applications Conf. (COMPAC), Oct. 1986, pp. 291-298.
[5] J. Conklin, "Hypertext: An Introduction and Survey,"Computer, Vol. 20, No. 9, Sept. 1987, pp. 17-41.
[6] S. I. Feldman, "Make--A program for maintaining computer programs,"Software--Practice and Experience, vol. 9, no. 4, pp. 256- 265, Apr. 1979.
[7] G. S. Fowler, "The fourth generation Make," inProc. USENIX Portland 1985 Summer Conf., 1985, pp. 159-174.
[8] E. Gansner, S. C. North, and K. P. Vo, "DAG--A program that draws directed graphs."Software--Practice and Experience, vol. 18, no. 11, pp. 1047-1062, Nov. 1988.
[9] A. Habermann, L. Flon, and L. Cooprider, "Modularization and hierarchy in a family of operating systems,"Commun. ACM, vol. 19, no. 5, pp. 266-272, May 1976.
[10] S. Horwitz and T. Teitelbaum, "Generating editing environments based on relations and attributes,"ACM Trans. Program. Lang. Syst., vol. 8, no. 4, pp. 577-608, Oct. 1986.
[11] D. Hutchens and V.R. Basili, "System Structure Analysis: Clustering with Data Bindings,"IEEE Trans. Software Eng., Vol. SE-11, No. 8, Aug. 1985, pp. 749-757.
[12] American National Standards Inst.,Draft Proposed American National Standard for Information Systems--Programming Language C, Document X3J11/88-090, May 1988.
[13] USC Inform. Sci. Inst.,Introduction to the CLF Environment, Mar. 1986.
[14] B. W. Kernighan and D. M. Ritchie,The C Programming Language. Englewood Cliffs, NJ: Prentice-Hall, 1978.
[15] AT&T Bell Laboratories,Unix System V Programmer's Manual, 1985.
[16] M. A. Linton, "ImpIementing relational views of programs," inSIGSOFT/SIGPLAN Software Engineering Symp. Practical Software Development Environments, Pittsburgh, PA, Apr. 1984, pp. 132-140, see alsoSIGSOFT Software Eng. Notes, vol. 9, no. 3, May 1984; see alsoSIGPLAN Notices, vol. 19, no. 5, May 1984.
[17] M. Nishimoto and Y. F. Chen, "Tutorial on the C information abstraction system," Comput. Sci. Division, Univ. California, Berkeley, Tech. Rep. UCB/CSD 327, 1987.
[18] H. L. Ossher, "Grids: A new program structuring mechanism based on layered graphs," inProc. ACM Symp. Principles of Programming Languages, Jan. 1984, pp. 11-22.
[19] D. Parnas, "Designing software for ease of extension and contraction,"IEEE Trans. Software Eng., pp. 128-137, Mar. 1979.
[20] M. J. Rochkind, "The source code control system,"IEEE Trans. Software Eng., vol. 5, no. 2, pp. 364-370, Dec. 1975.
[21] J. L. Steffen, "Interactive examination of a C program with Cscope," InProc. USENIX Assoc. Winter Conf., Jan. 1985, pp. 170-175.
[22] M. Stonebraker,et al., "The design and implementation of INGRES,"ACM Trans. Database Syst., vol. 1, no. 3, Sept. 1976.
[23] B. Stroustrup,The C++ Programming Language. Reading, MA: Addison-Wesley, 1986.
[24] W. Teitelman and L. Masinter, "The Interlisp programming environment,"Computer, vol. 14, no. 4, pp. 25-34, Apr. 1981.
[25] W. F. Tichy, "Design, implementation, and evaluation of a revision control system," inProc. 6th IEEE Int. Conf. Software Engineering, Sept. 1982, pp. 58-67.
[26] K. Walden, "Automatic generation of Make dependencies,"Software--Practice and Experience, vol. 14, no. 6, pp. 575-585, June 1984.
[27] M. Weiser, "Program slicing,"IEEE Trans. Software Eng., vol. SE-10, no. 4, pp. 352-357, July 1984.

Index Terms:
C information abstraction system; program structures; relational information; C programs; conceptual model; software tasks; relational views; graphical views; subsystem extraction; program layering; dead code elimination; binding analysis; C language; data structures; programming; relational databases.
Y.-F. Chen, M.Y. Nishimoto, C.V. Ramamoorthy, "The C Information Abstraction System," IEEE Transactions on Software Engineering, vol. 16, no. 3, pp. 325-334, March 1990, doi:10.1109/32.48940
Usage of this product signifies your acceptance of the Terms of Use.