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

skip to main content
article
Free access

A meta-environment for generating programming environments

Published: 01 April 1993 Publication History

Abstract

Over the last decade, considerable progress has been made in solving the problems of automatic generation of programming/development environments, given a formal definition of some programming or specification language. In most cases, research has focused on the functionality and efficiency of the generated environments, and, of course, these aspects will ultimately determine the acceptance of environment generators. However, only marginal attention has been paid to the development process of formal language definitions itself. Assuming that the quality of automatically generated environments will be satisfactory within a few years, the development costs of formal language definitions will then become the next limiting factor determining ultimate success and acceptance of environment generators.
In this paper we describe the design and implementation of a meta-environment (a development environment for formal language definitions) based on the formalism ASF + SDF. This meta-environment is currently being implemented as part of the Centaur system and is, at least partly, obtained by applying environment generation techniques to the language definition formalism itself. A central problem is providing fully interactive editing of modular language definitions such that modifications made to the language definition during editing can be translated immediately to modifications in the programming environment generated from the original language definition. Therefore, some of the issues addressed are the treatment of formalisms with user-definable syntax and incremental program generation techniques.

References

[1]
~BAHLKE, R., AND SNELTING, G. The PSG system. From formal language defimtions to ~interactive progncamlning environments. ACM Trans. Program. Lang. Syst. 8, 4 (1986), ~547 576.
[2]
~BALLANCE, R. A., GRAHAM, S, L., AND VAN DE VANTER, M.L. The Pan language-based editing ~system. ACM Trans. Softw. Eng. Meth. 1, 1 (1992), 95 127.
[3]
~BERGSTRA, J. A., HEERINt;, J., AND KLINT, P., EDS. Algebrazc Speczfication. ACM Press ~Frontier Series, New York, 1989.
[4]
~BORRAS, P., CLt~MENT, D., DESPEYROUX, T., INCERPI, J., KAHN, G., LANO, B., AND PASCUAL, V. ~Centaur: The system. In the 3rd Annual Symposzum on Software Development Enwronment,s ~(SIGSOFT'88) (Boston, 1988). ACM, New York.
[5]
~DESPEYROUX, T Executable specificahon of static semantics. In Sernantzcs of Data Types, ~vol. 173. Lecture Notes in Computer Science. Springer-Verlag, New York, 1984, 215 233.
[6]
~DONZEAU-GOUGE, V., HUET, G., KAHN, G, AND LANG, B. Programming environments based ~on structured editors the Mentor experience. In Interactzve Programrazng Envzronments. ~McGraw-Hill, New York, 1984, 128-140,
[7]
~ENDRES, R., AND SCHNEIDER, M. The GRASPIN software engineering environment. In ~ESPRIT '88' Puttzng the Technology to Use. North-Holland, Amsterdam, 1988, 349 364.
[8]
~ESPRIT (An overwew of Genesis. Project 1222 (GENESIS), 1987. Deliverable 12Y3
[9]
~FUTATSUGI, K., GOGUEN, J. A., JOUANNAUD, J.-P., AND MESEOUER, J. Principles of OBJ2. In ~Conference Record of the 12th Annual ACM Symposium on Pr~nczple.~ of Programming ~Languages. ACM, New York, 52-66.
[10]
~HABERMANN, A. N., AND NOTKIN, D. Gandalf: Software development environments. IEEE ~Trans. Softw ETzg. 12, 12 (1986), 1117 1127.
[11]
~HEERING, J. Een programmeeromgevmg gebaseerd op taaldefinities. In Colloquium Pro- ~grammeeromgev~ngen, vol. 30. Mathematmal Centre Syllabus, 1983, 69 81. In Dutch.
[12]
~HEERING, J., AND KLINT, P. Towards monolingual programming enwronments. ACM Trans. ~Program. Lat~g Syst. 7, 2 (1985), 183-213.
[13]
~HEERING, J., HENDRIKS, P. R. H., KLIN% P., AND REKERS, J. The syntax definition formalism ~SDF--reibrence manual. SIGPLAN Not. 24, 11 i1989), 43 75.
[14]
~EEmN6, J., KAHN, G., KLAN% P., AND LANG, B. Generation of interactive programming ~environments. In ESPRIT '85: Status Report of Contznuing Work. North-Holland, Amster- ~dam, 1986, 467-477.
[15]
~HEERING, J., KLINT, P., AND REKERS, d, Incremental generatmn of lexlcal scanners. ACM ~Trans. Program. Lang. Syst. 14, 4 (Oct, 1992), 471 520.
[16]
~HEERING, J., KLINT, P., AND REKERS, J. Lazy and incremental program generation. ACM ~Trans. Program. Lar~g. Sy6t. To be published.
[17]
~HEERING, J, KLINT, P., AND REKERS, J, Incremental generation of parsers. IEEE Trans. ~Softw. Eng. 16, 2 (1990), 1344-1351.
[18]
~HENDRIKS, P. R. H. Implementation of modular algebraic specifications. Ph.D. thesis, ~University of Amsterdam, 1991.
[19]
~HENDRIKS, P. R.H. Lists and associative functions in algebraic specifications--semantics ~and implementation. Rep. CS-R8908, Centrmn voor Wiskunde en Informatica (CWD, Ams- ~terdam, 1989.
[20]
~KAHN, G. Natural semantics. In the 4th Annual Symposium on Theoretical Aspects of ~Computer Science, vol. 247. Lecture Notes in Computer Science. Springer-Verlag, New York, ~1987, 22 39.
[21]
~KAHN, G., LANG, B., MfiLgSE, B., AND MORCOS, E. Metal: A formalism to specify formalisms. ~Sci. Comput. Program. 3, 2 (1983), 151-188.
[22]
~KLINT, P. Lazy scanner generation for modular regular grammars. Tech. Rep. CS-R9158, ~Centrum voor Wiskunde en Informatica (CWI), Amsterdam, 1991.
[23]
~KOORN, J. W.C. Connecting semantic tools to a syntax-directed user-interface. Tech. Rep., ~Programming Research Group, University of Amsterdam, 1992.
[24]
~KOORN, J. W. C. GSE: A generic text and structure editor. Rep. P9202, Univermty of ~Amsterdam, 1992,
[25]
~LOGGE~, M. H. An integrated text and syntax-directed editor. Rep. CS-R8820, Centrum ~voor Wiskunde en Infbrmatiea (CWI), Amstm'dam, 1988.
[26]
~REKEnS, J. Modular parser generation. Rep. CS-R8933, Centrum voor Wiskunde en Infor- ~matica (CWI), Amsterdmn, 1989.
[27]
~REPS, T., AND TEITELBAUM, T. The Synthesizer Generotor: A System for Constructing ~language-Based Editors. Springer-Verlag, New York, 1989.
[28]
~VAN DER MEULEN, E.A. Deriving incremental implementations from algebraic specifica- ~tions. Rep. CS-R9072, Centrum voor Wlskunde en Informatica (CWI), Amsterdam, 1990.
[29]
~VAN DER MEULEN, E.A. Algebrmc specification of a compiler for a language with pointers. ~Rep. CS-R8848, Centrum voor Wiskunde en Infomatica (CWI), Amsterdam, 1988.
[30]
~VAN DEURSEN, A., KLINT, P., AND TIP, F. Origin tracking. Rep. CS-R9230, Centrum voor ~Wiskunde en Informatica (CWI), Amsterdam, 1992.
[31]
~VAN DIJK, M. H. H., ann KOORN, J. W. C. GSE, a generic syntax-directed editor. Rep. ~CS-R9045, Centrum voor Wiskunde en lnformatica (CWI), Amsterdam, 1990.
[32]
~VOISIN, F. CIGALE: A tool for interactive grammar construction and expression parsing. ~Sci. Comput. Program. 7, I (1986), 61 86.
[33]
~WALTERS, H. R. On equal terms, implementing algebraic specificatmns. Ph.D. thesis, ~University of Amsterdam, 1991.

Cited By

View all

Recommendations

Reviews

Jacques Jean Arsac

Over the last decade, automatic generators of programming environments for new programming languages have been developed. They are based on the assumption that most programming languages have a lot of structures and types in common, so the major parts of the environments are language-<__?__Pub Caret>independent, the other parts being derived from high-level formal specifications of the language. This kind of system resembles an extensible toolkit. Klint has combined two formalisms for formal language specifications, algebraic specification formalism (ASF) and syntax definition formalism (SDF). An interactive development environment has been designed and implemented for these formalisms. Thus, a language may be specified and modified within this environment, producing an environment for this language in which experiments can be performed. The paper describes ASF and SDF. Klint discusses the general architecture of the environment for them, with special attention to the problem of allowing modifications in the specifications that change what has previously been done. This problem is solved by using a modular specification, in which modules are edited separately. The author describes the various parts of the system and the implementation techniques. This paper is sound, richly documented, well presented, and easy to read. Examples illustrate the various aspects of the system. The design and implementation choices are discussed, leading to a convincing paper. Nevertheless, some doubts remain. The last section of the paper discusses some remaining problems, the most important being that “it is not yet clear whether the proposed implementation model…will scale up to industrial-size applications.” The examples given in the paper are toy examples, but this may be done only for pedagogical effect; no reason is given. This research looks like what was done in the early 1960s: a lot of new languages were developed, leading to a demand for compilers, and compiler generators were created. We discovered later that much energy had been lost in creating unnecessary languages, instead of trying to solve programming difficulties. Clearly, researchers must go on looking for more convenient languages, most of which will not reach industrial applications. Do we really need this kind of sophisticated system__?__ It could be more efficient to build specific environments for the rare languages that reach the industrial stage. This research may help us to understand what a language specification and an environment are, as the work done in the 1960s has contributed to the theory of programming languages and compiling.

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

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 2, Issue 2
April 1993
93 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/151257
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 April 1993
Published in TOSEM Volume 2, Issue 2

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)87
  • Downloads (Last 6 weeks)19
Reflects downloads up to 18 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Concrete Syntax MetapatternsProceedings of the 17th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3687997.3695637(43-55)Online publication date: 17-Oct-2024
  • (2024) i C o L a +Journal of Systems and Software10.1016/j.jss.2024.111979211:COnline publication date: 2-Jul-2024
  • (2023)A personal retrospective on language workbenchesSoftware and Systems Modeling (SoSyM)10.1007/s10270-023-01101-922:3(847-850)Online publication date: 20-Mar-2023
  • (2023)A generic framework for representing and analyzing model concurrencySoftware and Systems Modeling (SoSyM)10.1007/s10270-022-01073-222:4(1319-1340)Online publication date: 9-Jan-2023
  • (2022)Suppose You Had Blocks within a NotebookProceedings of the 1st ACM SIGPLAN International Workshop on Programming Abstractions and Interactive Notations, Tools, and Environments10.1145/3563836.3568728(57-62)Online publication date: 29-Nov-2022
  • (2021)Debugging and Verification Tools for Lingua Franca in Gemoc Studio2021 Forum on specification & Design Languages (FDL)10.1109/FDL53530.2021.9568383(01-08)Online publication date: 8-Sep-2021
  • (2021)PAMOJAScience of Computer Programming10.1016/j.scico.2021.102703211:COnline publication date: 1-Nov-2021
  • (2020)Block-based syntax from context-free grammarsProceedings of the 13th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3426425.3426948(283-295)Online publication date: 16-Nov-2020
  • (2020)Multi-purpose Syntax Definition with SDF3Software Engineering and Formal Methods10.1007/978-3-030-58768-0_1(1-23)Online publication date: 14-Sep-2020
  • (2019)Lessons learned from developing mbeddrSoftware and Systems Modeling (SoSyM)10.1007/s10270-016-0575-418:1(585-630)Online publication date: 1-Feb-2019
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media