Nothing Special   »   [go: up one dir, main page]

skip to main content
article
Free access

The Pan language-based editing system

Published: 02 January 1992 Publication History

Abstract

Powerful editing systems for developing complex software documents are difficult to engineer. Besides requiring efficient incremental algorithms and complex data structures, such editors must accommodate flexible editing styles, provide a consistent, coherent, and powerful user interface, support individual variations and projectwide configurations, maintain a sharable database of information concerning the documents being edited, and integrate smoothly with the other tools in the environment. Pan is a language-based editing and browsing system that exhibits these characteristics. This paper surveys the design and engineering of Pan, paying particular attention to a number of issues that pervade the system: incremental checking and analysis, information retention in the presence of change, tolerance for errors and anomalies, and extension facilities.

References

[1]
ACM. Proceedings of the ACM SIGPLAN SIGOA Symposium on Text Manipulation. SIGPLAN Not. (ACM) 16, 6 (June 1981).
[2]
AMBRAS, J., AND O'DAY, V. Microscope: A knowledge-based programming environment IEEE Softw. 5, 3 (May 1988), 50-58.
[3]
ATTALI, I. Compiling TYPOL with attribute grammars In Programming Languages Implementation and Logic Programmzng, P. Deransart, B. Lorho, and J. Maluszfiski, Eds. Lecture Notes in Computer Science, vol. 348. Springer-Verlag, New York, 1988, pp. 252-272.
[4]
BAECKER, R. M, AND MARCUS, A. Human Factors and Typography for More Readable Programs. ACM Press, New York, 1990
[5]
BA~LKE, R., AND SNELTIN~, G. The PSG system: From formal language definitions to interactive programming environments ACM Trans. Program Lang. Syst 8, 4 (Oct 1986), 547-576.
[6]
BALLANCE, R. A. Syntactic and semantic checking in language-based editing systems. Ph D. dissertation, Computer Science Division--EECS, Univ of Cahfornia, Berkeley, Dec. 1989. (Available as Tech. Rep. UCB/CSD 89/548.)
[7]
BALLANCE, R. A., AND GRAHAM, S I~. Incremental consistency maintenance for interactive applicatlons. In Procee&ngs of the 8th Internatmual Conference on Logic Programming, K Furukawa. Ed. MIT Press, Cambridge, Mass, 1991, pp 895-909.
[8]
BALLANCE, R A., BUTCHER, J., AND GRAHAM, S.L. Grammatical abstraction and incremental syntax analyms in a language-based editor In Proceedings of the SIGPLAN 88 Conference on Programming Language Design and Implementation. SIGPLAN Not. (ACM) 23, 7 (July 1988), 185-198.
[9]
BALLANCE, R. A., VAN DE VANTER, M. L., AND GRAHAM, S. L. The architecture of Pan I. Tech. Rep. UCB/CSD 88/409, Computer Science Division--EECS, Univ. of California, Berkely, Mar. 1988.
[10]
BORRAS, P., CLEMENT, D., DESPI~YROUX, T., INCERPI, J., KAHN, G., LANG, B., AND PASCUAL, V CENTAUR: The system. In {27}, pp. 14-24.
[11]
BUDINSKY, F. J., HOLT, R. C., AND ZAKY, S. G. SRE--A syntax-recognizing editor. Softw. Pract. Exper. 15, 5 (May 1985), 489-497.
[12]
BUTCHER, J. Ladle. Master's thesis, Computer Science Division--EECS, Univ. of California, Berkeley, Nov. 1989. (Available as Tech. Rep. UCB/CSD 89/519:)
[13]
CnEN, P., AND HARRISON, M.A. Multiple representation document development. Computer 21, 1 (Jan. 1988), 15-31.
[14]
CHEN, P., COKER, J., HARRISON, M. A., MCCARRELL, J., AND PROCTER, S. The VORTEX document preparation environment. In Proceedings of the 2nd European Conference on TEX for Scientific Documentation, J. Desarm~nien, Ed., Lecture Notes in Computer Science, vol. 236. Springer-Verlag, New York, 1986, pp. 45-54.
[15]
COHEN, J. Constraint logic programming languages. Commun. ACM 33, 7 (July 1990), 52-68.
[16]
CONRADI, R., DIDRIKSEN, W. M., AND WANVIK, D., EDS. Advanced Programming Environments. Lecture Notes in Computer Science, vol. 244. Springer-Verlag. New York, 1986.
[17]
CORBETT, n.P. Static semantics and compiler error recovery. Ph.D. dissertation, Computer Science Division--EECS, Univ. of California, Berkeley, June 1985. (Available as Tech. Rep. UCB/CSD 85,/251.)
[18]
DERANSART, P., JOURDAN, M., AND LORHO, B. Attribute Grammars: Definitions, Systems, and Bibliography. Lecture Notes in Computer Science, vol. 323. Springer-Verlag, New York, 1988.
[19]
DESPEYROUX, T. Executable specification of static semantics. In Semantics of Data Types, G. Kahn, D. B. MacQueen, and G. D. Plotkin, Eds. Lecture Notes in Computer Science, vol. 173. Springer-Verlag, New York, 1984, pp. 215-233.
[20]
DONZEAU-GOUGE, V., HUET, G., KAHN, G., AND LANG, B. Programming environments based on structured editors: The MENTOR experience. In Interactive Programming Environments, D. R. Barstow, H. E. Shrobe, and E. Sandewall, Eds. McGraw-Hill, New York, 1984, pp. 128-140.
[21]
DOWNS, L. M., AND VAN DE VANTER, M.L. Pan I version 4.0: An introduction for users. Tech. Rep. UCB/CSD 91/659, Computer Science Division--EECS, Univ. of California, Berkeley, Nov. 1991.
[22]
DOYLE, J. A truth maintenance system. In Readings in Artificial Intelligence, B. L. Webber and N. J. Nilsson, Eds. Tioga, Palo Alto, Calif., 1981, pp. 496-516.
[23]
FORSTALL, B.T. Experience with language description mechanisms in Pan. Master's thesis, Computer Science Division--EECS, Univ. of California, Berkeley, Nov. 1991.
[24]
GARLAN, D. Flexible unparsing in a structure editing environment. Tech. Rep. CMU-CS-85- 129, Dept. of Computer Science, Carnegie-Mellon Univ., Pittsburgh, Pa., Apr. 1985.
[25]
GOLDBERG, A. Programmer as reader. IEEE Softw. 4, 5 (Sept. 1987), 62-70.
[26]
H&BERMANN, A. N., AND NOTKIN, D. Gandalf: Software development environments. IEEE Trans. Softw. Eng. SE-12, 12 (Dec. 1986), 1117-1127.
[27]
HENDERSON, P., ED. ACM SIGSOFT 88: 3rd Symposium on Software Development Environments (Boston, Nov. 28-30, 1988). ACM, New York, 1988.
[28]
HILFINGER, P. N., AND COLELLA, P. Fidil: A language for scientific programming. In Symbolic Computatmn: Apphcations to Scientific Computing, R. Grossman, Ed. SIAM, Philadelphia, Pa., 1989, pp. 97-138.
[29]
HOLT, R. W., BOEHM-DAvIS, D. A., AND SCHULTZ, A.C. Mental representations of programs for student and professional programmers. In Empirical Studies of Programmers: Second Workshop, G. M. Olson, S. Sheppard, and E. Soloway, Eds. Ablex, Norwood, N.J., 1987, p, 33.
[30]
HOOVER, R., AND TEITELBAUM, T. Efficient incremental evaluation of aggregate values in attribute grammars. In Proceedings of the SIGPLAN 86 Symposium on Compiler Construction. SIGPLAN Not. (ACM) 21, 7 (July 1986), 39-50.
[31]
HORTON, M.R. Demgn of a multi-language editor with static error detection capabilities. Ph.D dissertation, Computer Science Divlsion--EECS, Univ. of Califorma, Berkeley, 1981.
[32]
Ho~wiTz, S., AND TEITELBAUM, T Generating editing environments based on relations and attributes. ACM Trans. Program. Lang. Syst. 8, 4 (Oct. 1986), 577-608.
[33]
JALmI, F., AND GALLIER, J H. Bmlding friendly parsers. In Proceedings of the 9th Annual ACM Symposium on Principles of Programming Languages (Albuquerque, N.M, Jan. 25-27). ACM, New York, 1982, pp. 196-206.
[34]
KAHN, G. Natural semantics. Tech. Rap. 601, INRIA, Feb. 1987.
[35]
KAHN, G., LANG, B., MI~LI~SE, B., AND MORCOS, E Metal: A formalism to specify formalisms Sci. Comput. Program. 3, 2 (Aug 1983), 151-188.
[36]
KAISER, G.E. Semantics for structure editing environments. Ph.D. dmsertation, Dept. of Computer Science, Carnegie-Mellon Univ., Pittsburgh, Pa., May 1985.
[37]
KmsLIS, P. A C. The SAGA editor: A language-oriented editor based on an incremental LR(1) parser. Ph.D. dissertation, Dept. of Computer Science, Umv. of Illinois at Urbana- Champaign, Dec. 1985.
[38]
KNUTH, D.E. Literate programming Computer J. 27, 2 (May 1984), 97-111.
[39]
LAMPSON, B.W. Bravo Users Manual. Palo Alto, 1978.
[40]
LANG, B. On the usefulness of syntax directed editors. In {t6}, pp 47-51.
[41]
LETOVSKY, S. Cognitive processes in program comprehension In Empirical Studies of Programmers, E. Soloway and S. Iyengar, Eds. Ablex, Norwood, N J., 1986, pp. 58-79
[42]
LETOVSKY, S., AND SOLOWAY, E. Delocalized plans and program comprehension. IEEE Soflw. 3, 3 (May 1986), 41-49
[43]
LEwIs, C., AND NORMAN, D.A. Demgning for error. In User Centered System Design: New Perspectwes on Human-Computer Interaction, D. A. Norman and S. W. Draper, Eds. Erlbaum, Hillsdale, N J., 1986, pp. 411-432.
[44]
MASINTER, L. M. Global program analysis in an interactive environment. Tech Rep. SSL-80-1, Xerox Palo Alto Research Center, Palo Alto, Calif., 1980.
[45]
MEDINA-MORA, R., AND FEILER, P. H. An incremental programming environment IEEE Trans. Soflw. Eng. SE-7, 5 (Sept. 1981), 472-481.
[46]
NEAL, L.R. Human factors m computing systems and graphical interfaces. In CHI + GI 1987 Conference Proceedings (Toronto, Apr. 5-9, 1987). ACM, New York, 1987, pp. 99-102.
[47]
NORD, R. L., AND PFENNING, F. The Ergo attribute system. In {27}, pp. 110-120
[48]
OMAN, P., AND COOK, C.R. Typographic style ~s more than cosmetic. Commun. ACM 33, 5 (May 1990), 506-520
[49]
PLOTK~N, G D. A structural approach to operational semantics Tech. Rep. DAIMI FN-19, Computer Science Dept., Aarhus Univ., Aarhus, Denmark, Sept. 1981.
[50]
PRAWITZ, D. Natural Deduction: A Proof-Theoretic Study. Almquist and Wlksell, Stockholm, 1965.
[51]
REIss, S.P. Graphical program development with PECAN program development system. In Proceedings of the A CM SIGSOFT/SIGPLAN Software Engineerzng Symposium on Practical Software Development Environments (Pittsburgh, Pa., Apr. 23-25, 1984). ACM, New York, 1984, pp. 30-41.
[52]
REPS, T., AND TEITELBAUM, T. The Synthesizer Generator Reference Manual, Second Edition. Dept. of Computer Science, Cornell Univ., Ithaca, N.Y., 1987.
[53]
REPS, T, TEITELBAUM, T., AND DEMERS, A Incremental context dependent analysis for language based editors ACM Trans. Program. Lang. Syst. 5, 3 (July 1983), 449-477.
[54]
RICH, C., AND WATERS, R.C. The programmers apprentice: A research overview Computer 21, 11 (Nov. 1988), 10-25.
[55]
SMITH, B., AND KELLEHER, G., EDS. Reason Maintenance Systems and Their Applications Series in Artificial Intelligence. Ellis Norwood, Chichester, 1988.
[56]
SOLOWAY, E., AND EHRLICH, K. Empirical studies of programming knowledge. IEEE Trans. Soflw. Eng. SE-10, 5 (Sept. 1984), 595-609.
[57]
STALLMAN, R. M EMACS: The extensibte, customizable, self-documenting display editor.
[58]
STEELE, G. L., JR., AND S~JSSMAN, G.J. Constraints. AI Memo 502, Massachusetts Institute of Technology Artificial Intelligence Laboratory, Cambridge, Mass., Nov. 1978.
[59]
STERLING, L., AND SHAPIRO, E. The Art of Prolog: Advanced Programming Techniques. MIT Press, Cambridge, Mass., 1986.
[60]
STROMFORS, O. Editing large programs using a structure-oriented text editor. In {16}, pp. 39-46.
[61]
TEITELBAUM, T., AND REPS, T. The Cornell program synthesizer: A syntax-directed programming environment. Commun. ACM 24, 9 (Sept. 1981), 563-573.
[62]
TEITELBAUM, T., REPS, T., AND HORWITZ, S. The why and wherefore of the Cornell program synthesizer. In {1}, pp. 8-16.
[63]
TEITELMAN, W. A tour through Cedar. IEEE Trans. Soflw. Eng. SE-11, 3 (Mar. 1985).
[64]
VAN DE VANTER, M.L. Error management and debugging in Pan I. Tech. Rep. UCB/CSD 89/554, Computer Science Division--EECS, Univ. of California, Berkeley, Dec. 1989.
[65]
VAN DE VANTER, M. L. User interface design for language-based editing systems. Ph.D. dissertation, Computer Science Division--EECS, Univ. of California, Berkeley. To be published.
[66]
VAN DE VANTER, M. L., BALLANCE, R. A., AND GRAHAM, S.L. Coherent user interfaces for language-based editing systems. Int. J. Man-Mach. Stud. (1992). To appear.
[67]
WATERS, R. C. Program editors should not abandon text oriented commands. SIGPLAN Not. (ACM) 17, 7 (July 1982), 39-46.
[68]
WINOGRAD, T. Beyond programming languages. Commun. ACM22, 7 (July 1979), 391-401.
[69]
WOOD, S.R. Z--The 95% program editor. In {1}, pp. 1-7.

Cited By

View all
  • (2023)Impact of Software Engineering Research in Practice: A Patent and Author Survey AnalysisIEEE Transactions on Software Engineering10.1109/TSE.2022.320821049:4(2020-2038)Online publication date: 1-Apr-2023
  • (2021)Filling typed holes with live GUIsProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454059(511-525)Online publication date: 19-Jun-2021
  • (2019)A Declarative Enhancement of JavaScript Programs by Leveraging the Java Metadata InfrastructureScience of Computer Programming10.1016/j.scico.2019.05.005Online publication date: May-2019
  • Show More Cited By

Recommendations

Reviews

Paul W. Abrahams

An editor is a programmer's most vital tool. Programmers have strong feelings about the editors they use and are sensitive to the quality of those editors. The Pan editor is designed for experienced programmers—software professionals proficient with their primary tools, intimately familiar with their programming languages, and skilled at creating programs in those languages. Judging by the description in this paper, Pan ought to be a programmer's delight. Pan is a syntax-recognizing editor—it combines the freedom and flexibility of a purely textual editor with the contextual awareness of a syntax-directed editor. Its linguistic knowledge is derived from a collection of language descriptions that include both syntactic and semantic information, so it is not inherently limited to a particular language. It can perform syntactic analysis even when the program text is syntactically ill-formed; it views such a program as merely a variant of a correct program, treating the variance as no more important than a spelling error and maintaining a syntactic view of those parts of the document that are not affected by the variance. It provides many of the same key bindings and text services as Emacs, including generalized undo, kill rings, text filling, customization, extension, and self-documentation. Even at the textual level, it has advantages over Emacs; for instance, it provides visual highlighting of selected regions. Lexical and syntactic analysis is handled by the Ladle (Language Description Language) component of Pan, while the checking of contextual semantic constraints is handled by the Colander (Constraint Language and Interpreter) component. Both components have two parts: an online part that is part of the editor itself and an offline part that generates the tables needed by the online part. An editing interface coordinates the analysis and makes derived information accessible to users and client programs. Ladle represents a language grammar as an abstract syntax augmented by additional productions that make it possible to derive the concrete syntax from the abstract syntax. The two syntaxes are related by grammatical abstraction, which ensures that a straightforward and reversible transformation exists between them. Grammatical abstraction is purely structural; it does not use semantic information to identify corresponding structures. Colander is based on the notion of logical constraint grammars, expressed in a Prolog-like language. Using the abstract syntax as a base, Colander provides for annotating production with goals (logical propositions) that must be satisfied if the document is semantically correct. An incremental evaluator monitors changes to the document and the derived information in Colander's database in order to maintain consistency between them. Users typically understand document structure in terms of structural components rather than syntax trees, naming those components using the specific terminology of the document's language. Pan therefore uses operand classes to designate kinds of document components. An operand class is an arbitrary collection of document components; operand classes may overlap. Operand classes define the textual units used for structure-oriented selection, navigation, highlighting, and editing. Expression and Statement are examples of language-specific operand classes. Examples of language-independent operand classes are Syntactic Error and Query Result . Text-oriented and structure-oriented operations combine naturally; for instance, you can move to the next expression and then make arbitrary textual changes to that expression. Despite my favorable impression of Pan, I did not find this paper easy reading. The description of Colander and its constraint grammars, which relies on a knowledge of Prolog, is particularly impenetrable; although I got the general idea of what was going on, I could not make sense of the details. Some of my difficulty was caused by the use of unexplained notations that are not standard Prolog. It is too bad that the authors were not more careful about defining their terminology and notation, since the content of the paper is so clearly worthwhile.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 02 January 1992
Published in TOSEM Volume 1, Issue 1

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Ladle
  2. Pan
  3. coherent user interfaces
  4. colander
  5. contextual constraint
  6. extension facilities
  7. grammatical abstraction
  8. interactive programming environment
  9. logic programming
  10. logical constraint grammar
  11. reason maintenance
  12. syntax-recognizing editor
  13. tolerance for errors and anomalies

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)42
  • Downloads (Last 6 weeks)8
Reflects downloads up to 29 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Impact of Software Engineering Research in Practice: A Patent and Author Survey AnalysisIEEE Transactions on Software Engineering10.1109/TSE.2022.320821049:4(2020-2038)Online publication date: 1-Apr-2023
  • (2021)Filling typed holes with live GUIsProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454059(511-525)Online publication date: 19-Jun-2021
  • (2019)A Declarative Enhancement of JavaScript Programs by Leveraging the Java Metadata InfrastructureScience of Computer Programming10.1016/j.scico.2019.05.005Online publication date: May-2019
  • (2013)TAE-JSProceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools10.1145/2500828.2500830(13-24)Online publication date: 11-Sep-2013
  • (2013)Structure Editors: Old Hat or Future Vision?Evaluation of Novel Approaches to Software Engineering10.1007/978-3-642-32341-6_6(82-97)Online publication date: 2013
  • (2010)Xeena for schema: creating XML documents with a coordinated grammar treeInternational Journal of Computational Science and Engineering10.5555/1883649.18836545:2(127-146)Online publication date: 1-Nov-2010
  • (2010)Code migration through transformationsCASCON First Decade High Impact Papers10.1145/1925805.1925817(201-213)Online publication date: 1-Nov-2010
  • (2007)A formalism for navigating and editing XML document structureProceedings of the 5th international conference on Databases in networked information systems10.5555/1779354.1779364(96-114)Online publication date: 17-Oct-2007
  • (2007)A Formalism for Navigating and Editing XML Document StructureDatabases in Networked Information Systems10.1007/978-3-540-75512-8_8(96-114)Online publication date: 17-Oct-2007
  • (2005)CitrusProceedings of the 18th annual ACM symposium on User interface software and technology10.1145/1095034.1095037(3-12)Online publication date: 23-Oct-2005
  • 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