ABSTRACT
Language workbenches are widely used to implement domain-specific languages (DSLs) and their accompanying integrated development environments (IDEs). They help to define the abstract syntax, concrete syntax(es), type system, and transformations for the languages. However, there are other language aspects, specifically program analyses and optimizations, that are also crucial to a language implementation, but state-of-the-art language workbenches has only limited support for them. The high implementation effort for these language aspects is justifiable for a general-purpose language (GPL), but is not justifiable for DSLs because of their different development economies.
To this end, I conduct research on dedicated support for analyses and optimizations for DSLs in language workbenches. My main goal is to develop declarative meta-languages that help to define static program analyses and that capture and automate patterns and techniques of optimizations. The research directions are directly driven by industrial need, and upon successful completion, the results would be applied in projects centered around DSLs for high-performance computing (HPC), insurance, and concurrent embedded systems.
- B. Aktemur, Y. Kameyama, O. Kiselyov, and C.-c. Shan. Shonan Challenge for Generative Programming: Short Position Paper. In Proceedings of the ACM SIGPLAN 2013 Workshop on Partial Evaluation and Program Manipulation, PEPM ’13, pages 147–154, New York, NY, USA, 2013. ACM. Google ScholarDigital Library
- J. Aldrich, C. Chambers, E. G. Sirer, and S. Eggers. Static Analyses for Eliminating Unnecessary Synchronization from Java Programs, pages 19–38. Springer Berlin Heidelberg, Berlin, Heidelberg, 1999. Google ScholarDigital Library
- S. Erdweg, T. van der Storm, M. Völter, L. Tratt, R. Bosman, W. R. Cook, A. Gerritsen, A. Hulshout, S. Kelly, A. Loh, G. Konat, P. J. Molina, M. Palatnik, R. Pohjonen, E. Schindler, K. Schindler, R. Solmi, V. Vergu, E. Visser, K. van der Vlist, G. Wachsmuth, and J. van der Woning. Evaluating and comparing language workbenches. Comput. Lang. Syst. Struct., 44(PA):24–47, Dec. 2015. Google ScholarDigital Library
- E. Visser. Generative and Transformational Techniques in Software Engineering II. chapter WebDSL: A Case Study in Domain-Specific Language Engineering, pages 291–373. Springer-Verlag, Berlin, Heidelberg, 2008. Google ScholarDigital Library
- M. Voelter, A. v. Deursen, B. Kolb, and S. Eberle. Using C Language Extensions for Developing Embedded Software: A Case Study. In Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2015, pages 655–674, New York, NY, USA, 2015. ACM. Google ScholarDigital Library
- M. Voelter and S. Lisson. Supporting Diverse Notations in MPS’ Projectional Editor. In GEMOC@Models 2014, Valencia, - Spain, September 28, 2014.Google Scholar
- , pages 7–16, 2014.Google Scholar
- Introduction Problem Statement Solution Approach EvaluationGoogle Scholar
Index Terms
Dedicated support for analyses and optimizations in language workbenches
Recommendations
Language extension and composition with language workbenches
OOPSLA '10: Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companionDomain-specific languages (DSLs) provide high expressive power focused on a particular problem domain. They provide linguistic abstractions and specialized syntax specifically designed for a domain, allowing developers to avoid boilerplate code and low-...
Declaratively defining domain-specific language debuggers
GCPE '11Tool support is vital to the effectiveness of domain-specific languages. With language workbenches, domain-specific languages and their tool support can be generated from a combined, high-level specification. This paper shows how such a specification ...
Bootstrapping domain-specific meta-languages in language workbenches
GPCE 2016: Proceedings of the 2016 ACM SIGPLAN International Conference on Generative Programming: Concepts and ExperiencesIt is common practice to bootstrap compilers of programming languages. By using the compiled language to implement the compiler, compiler developers can code in their own high-level language and gain a large-scale test case. In this paper, we ...
Comments