Depot4 is the latest outcome in a line of projects. It was undertaken to combine practical experience and new software technologies into a state-of-the-art tool.
Metasystems of the Depot family are closely related to compiler generators. They accept a grammar based input language and produce a parser or translator from it. The main difference comes from the intended area of application. While common compiler-compilers are tools in the hands of experts who struggle for high efficiency of compilation., this approach stresses flexibility as much as fast and easy applicability by non-specialists. The metasystem consists of a meta-language compiler, which is in fact a pre-processor, a library of modules for standard tasks and runtime support, and a user interface. All these components are implemented by use of a common programming language (e.g., Oberon, Java). Due to the pre-processing scheme this also holds for generated translators. As this host language is largely hidden from the surface its exchange causes just re-translation, thus contributing to portability.
Typical applications of Depot metasystems come from areas where rapid implementation is more essential than supreme performance of the generated translators. This is the case in prototyping or other early steps of development when designs have not been frozen yet. It holds also for the implementation of technical (programming) languages (also called DSL - domain specific languages), which is often performed by specialists from the field, and which will usually have just comparatively small groups of potential users, not justifying ambitious efforts. This is becoming more important as one can observe a growing insight that computing machinery should be controlled preferably in terms of application domains (not those of programming), thus becoming a certain specialised task machine. Recent advantages in metasystems offer additional possibilities, e.g., creation and processing of compound documents (cf. OpenDoc) or human interface design.
Depot4 features a meta-language based on Extended Backus-Naur-Form (EBNF). We hope that the choice of EBNF will ease the getting in for those not so familiar with grammars and translators. By use of modern programming paradigms and operating system features a real new level of flexibility and openness was met. The techniques of inheritance and overloading from object orientation allow the implementation of extensible and dynamically changeable translators. Dynamic loading facilities are helpful in saving resources and speeding up design and test phases. Current implementation bases on Java.Contact/Kontakt: Jürgen Lampe
© 2024- J. Lampe tools.vlampe.de/index.html