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.
- 1 ACM. Proceedings of the ACM SIGPLAN SIGOA Symposium on Text Manipulation. SIGPLAN Not. (ACM) 16, 6 (June 1981).Google Scholar
- 2 AMBRAS, J., AND O'DAY, V. Microscope: A knowledge-based programming environment IEEE Softw. 5, 3 (May 1988), 50-58. Google Scholar
- 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. Google Scholar
- 4 BAECKER, R. M, AND MARCUS, A. Human Factors and Typography for More Readable Programs. ACM Press, New York, 1990 Google Scholar
- 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. Google Scholar
- 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.) Google Scholar
- 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.Google Scholar
- 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. Google Scholar
- 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. Google Scholar
- 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. Google Scholar
- 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.Google Scholar
- 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:) Google Scholar
- 13 CnEN, P., AND HARRISON, M.A. Multiple representation document development. Computer 21, 1 (Jan. 1988), 15-31. Google Scholar
- 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. Google Scholar
- 15 COHEN, J. Constraint logic programming languages. Commun. ACM 33, 7 (July 1990), 52-68. Google Scholar
- 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. Google Scholar
- 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.) Google Scholar
- 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. Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- 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. Google Scholar
- 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.Google Scholar
- 23 FORSTALL, B.T. Experience with language description mechanisms in Pan. Master's thesis, Computer Science Division--EECS, Univ. of California, Berkeley, Nov. 1991.Google Scholar
- 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.Google Scholar
- 25 GOLDBERG, A. Programmer as reader. IEEE Softw. 4, 5 (Sept. 1987), 62-70.Google Scholar
- 26 H&BERMANN, A. N., AND NOTKIN, D. Gandalf: Software development environments. IEEE Trans. Softw. Eng. SE-12, 12 (Dec. 1986), 1117-1127. Google Scholar
- 27 HENDERSON, P., ED. ACM SIGSOFT 88: 3rd Symposium on Software Development Environments (Boston, Nov. 28-30, 1988). ACM, New York, 1988. Google Scholar
- 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.Google Scholar
- 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. Google Scholar
- 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. Google Scholar
- 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. Google Scholar
- 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. Google Scholar
- 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. Google Scholar
- 34 KAHN, G. Natural semantics. Tech. Rap. 601, INRIA, Feb. 1987.Google Scholar
- 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.Google Scholar
- 36 KAISER, G.E. Semantics for structure editing environments. Ph.D. dmsertation, Dept. of Computer Science, Carnegie-Mellon Univ., Pittsburgh, Pa., May 1985. Google Scholar
- 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.Google Scholar
- 38 KNUTH, D.E. Literate programming Computer J. 27, 2 (May 1984), 97-111. Google Scholar
- 39 LAMPSON, B.W. Bravo Users Manual. Palo Alto, 1978.Google Scholar
- 40 LANG, B. On the usefulness of syntax directed editors. In {t6}, pp 47-51. Google Scholar
- 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 Google Scholar
- 42 LETOVSKY, S., AND SOLOWAY, E. Delocalized plans and program comprehension. IEEE Soflw. 3, 3 (May 1986), 41-49Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- 45 MEDINA-MORA, R., AND FEILER, P. H. An incremental programming environment IEEE Trans. Soflw. Eng. SE-7, 5 (Sept. 1981), 472-481.Google Scholar
- 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. Google Scholar
- 47 NORD, R. L., AND PFENNING, F. The Ergo attribute system. In {27}, pp. 110-120 Google Scholar
- 48 OMAN, P., AND COOK, C.R. Typographic style ~s more than cosmetic. Commun. ACM 33, 5 (May 1990), 506-520 Google Scholar
- 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.Google Scholar
- 50 PRAWITZ, D. Natural Deduction: A Proof-Theoretic Study. Almquist and Wlksell, Stockholm, 1965.Google Scholar
- 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. Google Scholar
- 52 REPS, T., AND TEITELBAUM, T. The Synthesizer Generator Reference Manual, Second Edition. Dept. of Computer Science, Cornell Univ., Ithaca, N.Y., 1987. Google Scholar
- 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. Google Scholar
- 54 RICH, C., AND WATERS, R.C. The programmers apprentice: A research overview Computer 21, 11 (Nov. 1988), 10-25. Google Scholar
- 55 SMITH, B., AND KELLEHER, G., EDS. Reason Maintenance Systems and Their Applications Series in Artificial Intelligence. Ellis Norwood, Chichester, 1988. Google Scholar
- 56 SOLOWAY, E., AND EHRLICH, K. Empirical studies of programming knowledge. IEEE Trans. Soflw. Eng. SE-10, 5 (Sept. 1984), 595-609.Google Scholar
- 57 STALLMAN, R. M EMACS: The extensibte, customizable, self-documenting display editor.Google Scholar
- 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.Google Scholar
- 59 STERLING, L., AND SHAPIRO, E. The Art of Prolog: Advanced Programming Techniques. MIT Press, Cambridge, Mass., 1986. Google Scholar
- 60 STROMFORS, O. Editing large programs using a structure-oriented text editor. In {16}, pp. 39-46. Google Scholar
- 61 TEITELBAUM, T., AND REPS, T. The Cornell program synthesizer: A syntax-directed programming environment. Commun. ACM 24, 9 (Sept. 1981), 563-573. Google Scholar
- 62 TEITELBAUM, T., REPS, T., AND HORWITZ, S. The why and wherefore of the Cornell program synthesizer. In {1}, pp. 8-16. Google Scholar
- 63 TEITELMAN, W. A tour through Cedar. IEEE Trans. Soflw. Eng. SE-11, 3 (Mar. 1985). Google Scholar
- 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. Google Scholar
- 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.Google Scholar
- 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. Google Scholar
- 67 WATERS, R. C. Program editors should not abandon text oriented commands. SIGPLAN Not. (ACM) 17, 7 (July 1982), 39-46. Google Scholar
- 68 WINOGRAD, T. Beyond programming languages. Commun. ACM22, 7 (July 1979), 391-401. Google Scholar
- 69 WOOD, S.R. Z--The 95% program editor. In {1}, pp. 1-7. Google Scholar
Index Terms
- The Pan language-based editing system
Recommendations
Cedalion: a language for language oriented programming
OOPSLA '11Language Oriented Programming (LOP) is a paradigm that puts domain specific programming languages (DSLs) at the center of the software development process. Currently, there are three main approaches to LOP: (1) the use of internal DSLs, implemented as ...
Cedalion: a language for language oriented programming
OOPSLA '11: Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applicationsLanguage Oriented Programming (LOP) is a paradigm that puts domain specific programming languages (DSLs) at the center of the software development process. Currently, there are three main approaches to LOP: (1) the use of internal DSLs, implemented as ...
Comments