This Article 
 Bibliographic References 
 Add to: 
A Model of Visibility Control
April 1988 (vol. 14 no. 4)
pp. 512-520

A number of mechanisms have been created for controlling entity visibility. As with most language concepts in computer science, visibility control mechanisms have been developed in an essentially ad hoc fashion, with no clear indication given by their designers as to how one proposed mechanism relates to another. This paper introduces a formal model for describing and evaluating visibility control mechanisms. The model reflects a general view of visibility in which the concepts of requisition of access and provision of access are distinguished.This model provides a means for characterizing and reasoning about the various properties of visibility control mechanisms. Specifically, a notion of preciseness is defined in this paper. The utility of the model is illustrated by using it to evaluate and compare the relative strengths and weaknesses, with respect to preciseness, of the visibility control mechanisms found in Algol60, Ada, Gypsy, and an approach we have developed, called PIG, that specifically addresses the concerns of visibility control in large software systems.

[1] A. L. Ambler, D. I. Good, J. C. Browne, W. F. Burger, R. M. Cohen, C. G. Hoch, and R. E. Wells, "Gypsy: A language for specification and implementation of verifiable programs," inProc. ACM Conf. Language Design for Reliable Software; inSIGPLAN Notices. vol. 12, no. 3, pp. 1-10, Mar. 1977.
[2] American National Standard Programming Language Fortran. ANSI X3.9, 1978.
[3] D. Bjorner and C. G. Jones, Eds., Lecture Notes in Computer Science. Volume 61:The Vienna Development Method: The Meta-Language(Lecture Notes in Computer Science, vol. 61). Berlin: Springer-Verlag, 1978.
[4] P. Brinch Hansen, "The design of Edison,"Software-Practice and Experience. vol. 11, no. 4, pp. 363-396, Apr. 1981.
[5] L. A. Clarke, J. C. Wileden, and A. L. Wolf, "Nesting in Ada programs is for the birds," inProc. ACM-SIGPLAN Symp. on the Ada Program. Language, 1980, pp. 139-145 (also published inSIGPLAN Notices, vol. 15, no. 11, 1980).
[6] E. W. Dijkstra,A Discipline of Programming. Englewood Cliffs, NJ: Prentice-Hall, 1976.
[7] Reference Manual for the Ada Programming LanguageU.S. Dep. Defense, Washington, DC. ANSI/MIL-STD-1815A, Jan. 1983.
[8] Formal Definition of the Ada Programming Language. Honeywell, Inc., Minneapolis, MN, Nov. 1980.
[9] A. Goldberg and D. Robson,Smalltalk80: The Language and Its Implementation. Reading, MA: Addison-Wesley, May 1983.
[10] D. R. Hanson, "Is block structure necessary?"Software--Practice and Experience, vol. 11, no. 8, pp. 853-866, Aug. 1981.
[11] J. L. Hennessy and R. B. Kieburtz, "The formal definition of a real-time language,"Acta Inform., vol. 16, pp. 309-345, 1981.
[12] K. Jensen and N. Wirth, "Pascal user manual and report,"Lecture Notes in Computer Science. New York: Springer-Verlag, 1974, vol. 18, 2nd corrected ed., 1976.
[13] B. W. Lampson, J. J. Homing, R. L. London, J. G. Mitchell, and G. J. Popek, "Report on the programming language Euclid," Xerox PARC, Palo Alto, CA, Tech. Rep. CSL-81-12, Oct. 1981.
[14] R. J. Lipton and L. Snyder, "A linear time algorithm for deciding subject security,"J. ACM, vol. 24, no. 3, pp. 455-464, July 1977.
[15] B. Liskovet al., CLU Reference Manual(Lecture Notes in Computer Sci., vol. 114). Berlin: Springer-Verlag, 1981.
[16] N. H. Minsky, "Locality in software systems," inConf Rec. Tenth Ann. ACM Symp. Principles of Programming Languages, Austin, TX, Jan. 1983, pp. 299-312.
[17] J. G. Mitchell, W. Maybury, and R. Sweet, "Mesa language manual version 5.0," Xerox PARC, Palo Alto, CA, Tech. Rep. CSL-79-3, Apr. 1979.
[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] B. Schwanke, "Survey of scope issues in programming languages," Dep. Comput. Sci., Carnegie-Mellon Univ., Pittsburgh, PA. Tech. Rep. CMU-CS-78-131, 1978.
[20] A. Snyder, "Encapsulation and inheritance in object-oriented programming languages," inProc. ACM Conf. OOPSLA, pp. 38-45, Sept. 1986.
[21] G. L. Steele, Jr.,Common Lisp The Language. Burlington, MA: Digital Press, 1984.
[22] J. W. Thomas, "Module interconnection in programming systems supporting abstraction," Comput. Sci. Program. Brown Univ., Tech. Rep. CS-16, Apr. 1976.
[23] J. Welsh, W. J. Sneeringer, and C. A. R. Hoare, "Ambiguities and insecurities in Pascal,"Software--Practice and Experience, vol. 7. no. 6, pp. 685-696, Nov./Dec. 1977.
[24] N. Wirth,Programming in Modula-2, 3rd ed. Berlin: Springer-Verlag, 1985.
[25] A. L. Wolf, "Language and tool support for precise interface control," Ph.D. dissertation. Dep. COINS. Univ. Massachusetts, Amherst, Tech. Rep. 85-23, Sept. 1985.
[26] A. L. Wolf, L. A. Clarke, and J. C. Wileden, "Ada-based support for programming-in-the-large,"IEEE Software, vol. 2, no. 2, pp. 58-71, Mar. 1985.
[27] A. L. Wolf, L. A. Clarke, and J. C. Wileden, "The AdaPIC toolest: Supporting interface control and analysis throughout the software development process,"IEEE Trans. Software Eng., 1988, to be published.
[28] W. A. Wulf and M. Shaw, "Global variable considered harmful,"SIGPLAN Notices, vol. 8, no. 2, pp. 28-34, Feb. 1973.

Index Terms:
Computer languages, module interface control, scope, visibility.
A.L. Wolf, L.A. Clarke, J.C. Wileden, "A Model of Visibility Control," IEEE Transactions on Software Engineering, vol. 14, no. 4, pp. 512-520, April 1988, doi:10.1109/32.4673
Usage of this product signifies your acceptance of the Terms of Use.