Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Open access

The PegaSys System: pictures as formal documentation of large programs

Published: 01 August 1986 Publication History
  • Get Citation Alerts
  • Abstract

    PegsSys is an experimental system in which a user formally describes how a program is put together by means of a hierarchically structured collection of pictures, called formal dependency diagrams (FDDs). Icons in an FDD denote a wide range of data and control dependencies among the relatively coarse-grained entities contained in large programs. Dependencies considered atomic with respect to one level in a hierarchy can be decomposed into a number of dependencies at a lower level. Each dependency can be a predefined primitive of the FDD language or it can be defined by a PegaSys user in terms of the primitives.
    A PegsSys user is given the illusion that logical formulas do not exist, even though PegaSys reasons about them internally. This involves (1) checking whether an FDD is meaningful syntactically, (2) determining whether hierarchical refinements of an FDD are methodologically sound, and (3) deciding whether an FDD hierarchy is logically consistent with the program that it is intended to describe. The techniques used to provide these capabilities are discussed along with the logical properties that enable PegaSys to maintain the user illusion.

    References

    [1]
    Referwtwe Monual for the Ada Programming Language. ANSI/MIL-STD-1815A-1983, Department of Defense, United States Government, Washington, D.C. 20301, Jan. 1983.
    [2]
    BAECKER, R. Sorting out sorting. 16ram color sound film, 25 minutes, 1981. (SIGGRAPH 1981, Dallas, Texas).
    [3]
    BALZER, R. EXDAMS -- Extendable debugging and monitoring system. In Proceedings of AFIPS Spring Joint Computer Conference (1969), pp. 567-580.
    [4]
    BORNING, A. The programming language aspects of ThingLab, A constraint-oriented simulation laboratory. ACM Trans. Prograrn~ Lang. Syst. 3, 4 (Oct. 1981), 353-387.
    [5]
    BROWN, G., CARLING, R., HEROT, C., KRAMLICH, D., AND SOUZA, P. Program visualization: Graphical support for software development. IEEE Computer 18, 6 (Aug. 1985), 27-35.
    [6]
    BROWN, M., AND SEDGEWICK, R. Techniques for algorithm animation. IEEESoftware 2, 1 (Jan. 1985), 28-39.
    [7]
    DAVIS, A., AND KELLER, R. Data flow program graphs. IEEECompnter15, 2 (Feb. 1982), 26-41.
    [8]
    FREI, H., WELLER, D., AND WILLIAMS, R. A graphics-based programming-support system. Computer Graphics 1~, 3 (Aug. 1978), 43-49.
    [9]
    HOARE, C. Proof of correctness of data reporesentations. Acta Inf. 1, 4 (1972), 271-281.
    [10]
    HORWITZ, S., AND TEITELBAUM, T. Relations and attributes: A symbiotic basis for editing environments. In Proceedings of ACM SIGPLAN 85 Symposium on Language Issuez in Programming Enviromnentz (Seattle, Washington, June 1985), pp. 93-106.
    [11]
    JACOB, R. A state transition diagram language for visual programming. IEEE Computer 18, 6 (Aug. 1985), 51-59.
    [12]
    LONDON, R., AND DUISBERG, R. Animating programs using Smalltalk. IEEE Computer 18, 6 (Aug. 1985), 61-71.
    [13]
    MASINTER, L. Globalpragrara analysis in an interactive environment. Tech. Rep. SSL-80-1, Xerox Palo Alto Research Center, Palo Alto, CA 94304, Jan. 1980.
    [14]
    MORICONI, M., AND HARE, D. PegaSys: A system for graphical explanation of program designs. In Proceedings of ACM SIGPLAN 85 Sgrnposiura on Language Issues in Prograraraing Environment~ (Seattle, Washington, June 1985), pp. 148-160.
    [15]
    MORICONI, M., AND HARE, D. Visualizing program designs through PegaSys. IEEE Computer 18, 8 (Aug. 1985), 72-85.
    [16]
    MYERS, B. D/sp/a~ng data structures for interact/re debugg/ng. Tech. Rep. CSL-80-7, Xerox Palo Alto Research Center, Palo Alto, CA 94304, June 1980.
    [17]
    POWELL, M., AND LINTON, M. Visual abstraction in an interactive programming environment. In Pro~e~ngs of ACM SIGPLAN 83 Symposium on Programming Language Issues in Software Systems (June 1983), pp. 14-21.
    [18]
    RAEDER, G. Programming in pictures. PhD thesis, Computer Science Department, University of Southern California, Nov. 1984. Short summary in IEEE Computer, 18(8):23, August 1985.
    [19]
    REISS, S. PECAN: Program development systems that support multiple views. IEEE T~ons. $o~. Eng. SE-11, 3 (March 1985), 30-41.
    [20]
    RICH, C., AND SHROBE, H. Initial report on a Lisp programmer's apprentice. IEEE ~ns. Sofiw. Eng. $F_r4, 6 (Nov. 1978), 456-466.
    [21]
    ROBINSON, J. Logic: Form and Funct/orL Elsevier North Holland Publishing Company, 1979.
    [22]
    TEITELMAN, W. A tour through Cedar. IEEE Software J, 2 (Apr. 1984), 44-73.

    Cited By

    View all
    • (1995)Correct Architecture RefinementIEEE Transactions on Software Engineering10.1109/32.38597221:4(356-3)Online publication date: 1-Apr-1995
    • (1994)Correctness and composition of software architecturesACM SIGSOFT Software Engineering Notes10.1145/195274.19540319:5(164-174)Online publication date: 1-Dec-1994
    • (1994)Correctness and composition of software architecturesProceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering10.1145/193173.195403(164-174)Online publication date: 1-Dec-1994
    • Show More Cited By

    Recommendations

    Reviews

    Shahram Javey

    The authors declare that data and control dependencies play an important role in programming in the large. (Examples of typical dependencies are “calls” dependencies between subprograms and “dataflow” dependencies between processes.) To address this problem, they've developed a software system called PegaSys. In PegaSys, the user supplies a pictorial description, called a Formal Dependency Diagram (FDD), of all the relevant dependencies of a program written in Ada. The PegaSys system will establish whether an FDD hierarchy is logically consistent with the program it is intended to describe. The pictures are meant to be a somehwat easier method for stating dependencies than the logical formulas which they denote. Indeed, the user is given the illusion that logical formulas do not exist. A major component of the PegaSys is its “program verifier,” which could be changed to support a different programming language. (The verifier is not intended to establish that a program satisfies its output requirement; instead it is a method for establishing that a program is consistent with its FDD hierarchy.) The authors provide a convincing and rigorous argument for why and how the PegaSys and all its major components work. This kind of comprehensive (and domain-specific) programming environment could prove to be an invaluable tool to the practicing software engineer. Overall, the paper is very well written, clear, and informative.

    Access critical reviews of Computing literature here

    Become a reviewer for Computing Reviews.

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Transactions on Programming Languages and Systems
    ACM Transactions on Programming Languages and Systems  Volume 8, Issue 4
    Oct. 1986
    190 pages
    ISSN:0164-0925
    EISSN:1558-4593
    DOI:10.1145/6465
    Issue’s Table of Contents

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 August 1986
    Published in TOPLAS Volume 8, Issue 4

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)31
    • Downloads (Last 6 weeks)4
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (1995)Correct Architecture RefinementIEEE Transactions on Software Engineering10.1109/32.38597221:4(356-3)Online publication date: 1-Apr-1995
    • (1994)Correctness and composition of software architecturesACM SIGSOFT Software Engineering Notes10.1145/195274.19540319:5(164-174)Online publication date: 1-Dec-1994
    • (1994)Correctness and composition of software architecturesProceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering10.1145/193173.195403(164-174)Online publication date: 1-Dec-1994
    • (1992)A CASE environment for parallel programming[1992] Proceedings of the Fifth International Workshop on Computer-Aided Software Engineering10.1109/CASE.1992.200154(214-224)Online publication date: 1992
    • (1991)Visual languages their definition and applications in system developmentMicroprocessing and Microprogramming10.1016/0165-6074(91)90375-432:1-5(383-391)Online publication date: Aug-1991
    • (1991)Towards innovative software engineering environmentsJournal of Systems and Software10.1016/0164-1212(91)90085-K14:1(17-29)Online publication date: 2-Jan-1991
    • (1991)Ein Visualisierungswerkzeug für die Wartung modularer ProgrammeTelekommunikation und multimediale Anwendungen der Informatik10.1007/978-3-642-77060-9_36(405-414)Online publication date: 1991
    • (1989)A program understanding support environmentIBM Systems Journal10.1147/sj.282.032428:2(324-344)Online publication date: 1-Jun-1989
    • (1989)Stepwise refinement process with modularityProceedings of the 11th international conference on Software engineering10.1145/74587.74611(166-177)Online publication date: 15-May-1989
    • (1989)Stepwise Refinement Process With Modularity: An Algebraic Approach11th International Conference on Software Engineering10.1109/ICSE.1989.714417(166-177)Online publication date: 1989
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Full Access

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media