Abstract
Research in compiler-compilers has contributed to facilitating the implementation of domainspecific programming languages and syntax-based software design. We present a formalism for the description of formal translations whose use requires no more than common procedural programming skills and an understanding of the EBNF notation. The soundness and applicability of the ideas presented have been proved by implementing the Depot4 metasystem. Its metalanguage, Ml4, extends EBNF in a symmetrical way; i.e., target descriptions utilise features already known from syntax definitions. The current implementation is by preprocessing. Simple use, flexibility and extensibility have been rated high. Applying principles of object-oriented programming, a concise and extensible system was built. A flexible access scheme allows the separate replacement of modules even during run time, thus enabling dynamic adjustment. New ways of application may originate from a more general view of source and target languages as well.
Similar content being viewed by others
References
Ainsworth, M., Bennett, J.P.: The Design of a Programming Language for the Analysis of Problems in Biochemistry. J. Prog. Lang. 1: 2, pp. 143–151 (1993)
Cornelius, B.J.: Problems with the Language Modula-2. Softw. Pract. Exper. 18: 6, pp. 529–543 (1988)
Eulenstein, M.: Generierung portabler Compiler. Informatik-Fachberichte 164, (Springer, Berlin Heidelberg 1988)
Féèle C., Lecarme, O.: Towards a Toolkit for Building Language Implementations. Softw. Pract. Exper. 22: 11, pp. 911–936 (1992)
Franz, M.: Technological Steps towards a Software Component Industry. In: Gutknecht, J. (ed) Programming Languages and System Architectures. Proceedings. (Springer, Berlin, Heidelberg, New York 1994) pp. 259–281
Gamma, E., Helm, R., Johnson, R.: Design Patterns: Elements of Reusable Object-Oriented Software. (Addison-Wesley, Reading, Mass. 1995)
Gerady, R.: Experimental Comparison of Some Parsing Methods. SIGPLAN Notices 22: 8, pp. 79–88 (1987)
Gray, R.W., Heurig, V.P., Levi, S.P., Sloane, A.M., Waite, W.M.: Eli: A Complete Flexible Compiler Construction System. CACM 35: 2, pp. 121–131 (1992)
Hahn, W., Toenniessen, F., Wittkowski, A.: Eine objektorientierte Zugriffsschicht zu relationalen Datenbanken. Informatik-Spektrum 18: 3, pp. 143–151 (1995)
Jansen, P.G.M.: Software Robots - Automating the Software Factory. In: Proceedings CC’96 Workshop on Compiler Techniques for Application Domain Languages and Extensible Languages Models (ALEL’96), Linköping, 1996, pp. 34–41
Johnstone, A.: rdp - a Recursive Descent Compiler Compiler. User manual for version 1.4. University of London, Computer Science Dept., Technical CSD-TR-95-03 (1995)
Klatte, R., Kulisch, U., Neuga, M., Ratz, D., Ullrich, C.: Pascal-XSC. Language Reference with Examples. (Springer, Berlin, Heidelberg, New York 1992)
Koskimies, K., Mössenböck, H.: Designing a Framework by Stepwise Generalization. In: Proceedings 5th European Software Engineering Conference, Barcelona, 1995
Koskimies, K., Nurmi, O., Paakki, J., Sippu, S.: The Design of a Language Processor Generator. Softw. Pract. Expr. 18: 2, pp. 107–135 (1988)
Koskimies, K., Vihavainen, J.: Incremental Parser Construction with Metaobjects. Department of Computer Science, University Report A-1992-5 (1992)
Krasner, G.E., Pope, S.T.: A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk-80. JOOP 1: 3, pp. 26–49 (1988)
Laffra, C.: Advanced Java. (Prentice Hall, Upper Saddle River 1997)
Lötzsch, J.: Die Dresdner Fachsprachenlinie (ein Überblick). Wiss. Z. TU Dresden 36: 3, pp. 203–206 (1987)
Mössenböck, H.: Object-Oriented Programming in Oberon-2. In: Proceedings 2nd Intl. Modula-2 Conference, Loghborough, 1991, pp 179–195
Ohshima, Y.: Rie — A Comiler Generator Based on Attribute Grammar. Techn. Report, Department of Mathematical and Computer Science, Tokyo Institute of Technology, Tokyo 1995, ftp://ftp.is.titech.ac.jp/pub/Rie
Rechenberg, P., Mössenböck, H.: Ein Compiler-Generator für Mikrocomputer. (Hanser, München 1988)
Salomaa, A.: Formale Sprachen. (Springer, Berlin, Heidelberg 1978)
Schmitz, L., Schulter, F., Laak, Jv.: SIC’95 Report and User Manual. Univ. d. Bundeswehr, Report 9501 (1995)
Tewkesbury, G., Sanders, D.: A Framework for the Automatic Programming of Advanced Production Machinery. In: Proceedings IEEE 20th Euromicro 94, 1994, pp. 224–230
Tofte, M.: Compiler Generators - What They Can Do, What They Might Do, and What they Probably Never Will Do. EATCS Monographs on Theoretical Computer Science 19, (Springer, Berlin, Heidelberg, New York 1990)
Waite, W.M.: Compiler Construction: Craftsmanship or Engineering? In: Gyim-thy, T. (ed) Compiler Construction. (Springer, Berlin, Heidelberg, New York 1996) pp. 151–159
Wirth, N.: What Can We Do about the Unnecessary Diversity of Notation for Syntactic Definitions? CACM 20: 11, pp. 822–823 (1977)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Lampe, J. Depot4 — Agenerator for dynamically extensible translators. Software - Concepts & Tools 19, 97–108 (1998). https://doi.org/10.1007/s003780050013
Published:
Issue Date:
DOI: https://doi.org/10.1007/s003780050013