Criando uma Linguagem Específica de Domínio usando o Xtext: Uma Opção Open Source para Implementar a Canopus

  • Aníbal Neto UNIPAMPA
  • Luiz Paulo Franz UNIPAMPA
  • Jonnathan Lopes UNIPAMPA
  • Elder Rodrigues UNIPAMPA
  • Maicon Bernardino UNIPAMPA

Abstract


Domain-Specific Language (DSL) is the name given to languages used in specific aspects of a system. Implementing a DSL is not a trivial task, since they are programming languages and have a syntax that is defined by a grammar. In this way, it is necessary to use tools that support the definition of concepts for the new language. Tools with this ability are popularly known as Language Workbenches. This article presents a guide to assist on the development of a DSL using the Xtext Eclipse framework and aims to present an alternative to the definition of the textual notation and development of the Canopus DSL.

References

Ammann, P. and Offutt, J. (2008). Introduction to Software Testing. Cambridge Press.

Arkin, E. and Tekinerdogan, B. (2014). Domain specific language for deployment of parallel applications on parallel computing platforms. Vienna, Austria.

Bernardino, M., Rodrigues, E. M., and Zorzo, A. F. (2016a). Performance Testing Modeling: An Empirical Evaluation of DSL and UML-based Approaches. In 31st Annual ACM Symposium on Applied Computing, pages 1660–1665, New York, USA. ACM.

Bernardino, M., Zorzo, A. F., and Rodrigues, E. M. (2016b). Canopus: A domain-specific language for modeling performance testing. In Int. Conf. on Software Testing, Verification and Validation, pages 157–167.

Bettini, L. (2016). Implementing domain-specific languages with Xtext and Xtend. Packt Publishing Ltd.

Cunha, M., Mendonca, N., and Sampaio, A. (2013). A declarative environment for automatic performance evaluation in iaas clouds. In 6th Int. Conf. on Cloud Computing, pages 285–292. IEEE.

Demirkol, S., Challenger, M., Getir, S., Kosar, T., Kardas, G., and Mernik, M. (2013). A DSL for the Development of Software Agents working within a Semantic Web Environment. Computer Science and Information Systems, 10(4):1525–1556.

Eysholdt, M. and Behrens, H. (2010). Xtext: Implement your language faster than the quick and dirty way. In Int. Conf. Companion on Object Oriented Programming Systems Languages and Applications Companion, pages 307–309, New York, USA. ACM.

Fowler, M. (2010). Domain-specific languages. Pearson Education.

GatlingCorp (2017). Gatling. http://gatling.io/.

Heyman, J., Byström, C., and Hamrén, J. (2017). Locust. http://locust.io/.

Jayasinghe, D., Swint, G., Malkowski, S., Li, J., Wang, Q., Park, J., and Pu, C. (2012).

Expertus: A generator approach to automate performance testing in iaas clouds. In 5th Int. Conf. on Cloud Computing, pages 115–122. IEEE.

JetBrains (2017). MPS - Create your own domain-specific language. https://www.jetbrains.com/mps/.

Kramer, A. and Legeard, B. (2016). Model-Based Testing Essentials - Guide to the ISTQB Certified Model-Based Tester: Foundation Level. Wiley.

Marand, E. A., Marand, E. A., and Challenger, M. (2015). DSML4CP: a domain-specific modeling language for concurrent programming. Computer Languages, Systems & Structures, 44:319–341.

MetaCase (2017). MetaEdit+ Modeler – Supports your modeling language. http://www.metacase.com/mep/.

Nakamura, H., Nagano, R., Hisazumi, K., Kamei, Y., Ubayashi, N., and Fukuda, A.(2012). QORAL: An External Domain-Specific Language for Mining Software Repositories. In 4th Int. Workshop on Empirical Software Engineering in Practice, pages 23–29.

Russell, S. and Norvig, P. (2004). Inteligência artificial. CAMPUS - RJ.

Scheuner, J., Leitner, P., Cito, J., and Gall, H. (2014). Cloud Work Bench–Infrastructure-as-Code Based Cloud Benchmarking. In 6th Int. Conf. on Cloud Computing Technology and Science, pages 246–253. IEEE.

Silva, M., Hines, M. R., Gallo, D., Liu, Q., Ryu, K. D., and Da Silva, D. (2013). Cloudbench: Experiment automation for cloud environments. In Int. Conf. on Cloud Engineering, pages 302–311. IEEE.

Solmi, R. (2017). Whole. https://whole.sourceforge.io/.

Wende, C., Seifert, M., Heidenreich, F., Karol, S., and Johannes, J. (2017). EMFText. http://www.emftext.org.
Published
2017-10-18
NETO, Aníbal; FRANZ, Luiz Paulo; LOPES, Jonnathan; RODRIGUES, Elder; BERNARDINO, Maicon. Criando uma Linguagem Específica de Domínio usando o Xtext: Uma Opção Open Source para Implementar a Canopus. In: REGIONAL SCHOOL OF SOFTWARE ENGINEERING (ERES), 1. , 2017, Alegrete. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2017 . p. 57-64.