Abstract
The Schütz semantic editor intends to perform semantic analysis, incrementally during editing, on possibly incomplete and incorrect programs. Currently, the project is addressing a prerequisite problem of maintaining an internal tree representation, necessary for semantic analysis, while presenting the user with a text-editor style interface, essential for programmer acceptance. Prior papers have addressed the language-independent aspects of our data structure and algorithms. Here, we discuss our specifications of the language to be edited. These are initially written in a purpose-designed Language Definition Language (LDL), then transformed into internal form needed by the editor. Our approach is to first build a syntactic editor for its own LDL, then use this to define an editor for its own implementation language, i.e., Modula-3, add incremental semantics, and finally to define editors for other programming languages. We summarize our language-independent data structure and algorithms and how they are specialized for a specific language. We describe our LDL in detail and how it has evolved to support Modula-3. The current implementation supports editing of LDL descriptions. The principal contribution of this paper is that LDL is an essential part of our method of providing an acceptable user-interface, without which semantic editing would be irrelevant.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Bahlke, R., Snelting, G.: The PSG System: From Formal Language Definitions to Interactive Programming Environments. ACM Transactions on Programming Languages and Systems 8(4), 547–576 (1986)
Barrett, W., Bates, R., Gustafson, D., Couch, J.: Compiler Construction Theory and Practice, 2nd edn., SRA (1986)
Bagai, R., Bates, R.: Text Editing, Syntax-Directed Editing. In: International Conference on Advances in Infrastructure for Electronic Business, Science, and Education on the Internet, L’Aquila Italy (August 2001)
Bates, R.: Sequence-Trees: Slicing and Concatenation of Sequences in Logarithmic Time. In: presented at 14th Midwest Conference on Combinatorics, Cryptography, and Computing, Wichita State University, Wichita, KS (October 2000)
Bates, R.: Text Editor Interfaces for Semantic Editors., SBLP2002, VI Simpósio Brasileiro do Linguagens de Programmação, Rio de Janeiro, Brazil (June 2002)
Bates, R.: Logarithmic-Time Slicing and Concatenation of Sequences. Journal of Combinatorial Mathematics and Combinatorial Computing 42 (August 2002)
Boshernitsan, M.: Harmonia: A Flexible Framework for Constructing Interactive Language-Based Programming Tools, Tech. Report CSD-01-1149, University of California, Berkeley (June 2001)
Habermann, A., Notkin, D.: Gandalf: Software Development Environments. IEEE Transactions on Software Engineering SE-12(12), 1117–1127 (1986)
Halme, H., Heinaenen, J.: GNU Emacs as a Dynamically Extensible Programming Environment. Software-Practice and Experience 18(10), 999–1009 (1988)
Kaiser, G., Feiler, P., Jalili, F., Schlichter, J.: A Retrospective on DOSE: An Interpretive Approach to Structure Editor Generation. Software Practice and Experience 18(8), 733–748 (1988)
Maddox, W.: Incremental Static Semantic Analysis., Ph.D. dissertation, Report No. UCB//CSD-97-948, Computer Science Division, University of California, Berkeley, CA
Morris, J., Schwartz, M.: The Design of a Language-Directed Editor for Block- Structured Languages. ACM SIGPLAN Notices 16(6), 28–33 (1981)
Reiss, S.: Graphical Program Development with PECAN Program Development Systems. ACM SIGPLAN Notices 19(5), 30–41 (1984)
Reps, T., Teitelbaum, T., Demers, A.: Incremental Context-Dependent Analysis for Language-Based Editors. ACM Transactions on Programming Languages and Systems 5(3), 449–477 (1983)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bates, R.M. (2003). Language Definition in the Schütz Semantic Editor. In: Böszörményi, L., Schojer, P. (eds) Modular Programming Languages. JMLC 2003. Lecture Notes in Computer Science, vol 2789. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45213-3_29
Download citation
DOI: https://doi.org/10.1007/978-3-540-45213-3_29
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40796-6
Online ISBN: 978-3-540-45213-3
eBook Packages: Springer Book Archive