ABSTRACT
O repentino avanço da necessidade de utilização de aplicações Web ocorreu em paralelo com a dificuldade de produtividade e automatização de processos que a envolvem. Para abstrair e automatizar o processo de criação da estrutura do backend, pode-se empregar uma Domain Specific Language (DSL) que especifique todas as funcionalidades desejadas. Desta forma, por meio de um arquivo de entrada no formato JSON, é possível definir as informações necessárias para a geração e disponibilização de um serviço REST. Portanto, o objetivo deste trabalho é especificar e desenvolver uma DSL e interpretá-la utilizando a linguagem de programação Haskell para abstração da camada de backend, complementando o ecossistema desta linguagem, visto que a mesma possui um número reduzido ferramentas para desenvolvimento Web, fazendo com que a mesma ainda possua baixa adesão em aplicações nesta área. Com isso, espera-se que um programador iniciante consiga desenvolver uma API REST para suas demandas e necessidades, de forma rápida e com as garantias provenientes de uma linguagem com sistema de tipos bastante restritivo.
- Michael D Adams and Thomas M DuBuisson. 2012. Template your boilerplate: Using Template Haskell for efficient generic programming. ACM SIGPLAN Notices 47, 12 (2012), 13–24.Google ScholarDigital Library
- James Cheney and Ralf Hinze. 2003. Phantom types. Technical Report. Technical Report CUCIS TR20003-1901, Cornell University.Google Scholar
- Marco Antonio Copetti 2012. Um processo integrado para qualidade em model-driven engineering. (2012).Google Scholar
- Antonio Delgado, A Estepa, and Rafael Estepa. 2007. WAINE-Automatic Generator of Web Based Applications. In International Conference on Web Information Systems and Technologies, Vol. 2. SCITEPRESS, 226–233.Google Scholar
- Hamza Ed-Douibi, Javier Luis Cánovas Izquierdo, Abel Gómez, Massimo Tisi, and Jordi Cabot. 2016. EMF-REST: generation of RESTful APIs from models. In Proceedings of the 31st Annual ACM Symposium on Applied Computing. 1446–1453.Google ScholarDigital Library
- Martin Fowler. 2010. Domain-specific languages. Pearson Education.Google Scholar
- Omar S Gómez, Raúl H Rosero, and Karen Cortés-Verdín. 2020. CRUDyLeaf: a DSL for generating spring boot REST APIs from entity CRUD operations. Cybernetics and Information Technologies 20, 3 (2020), 3–14.Google ScholarDigital Library
- Paul Hudak and Joseph H Fasel. 1992. A gentle introduction to Haskell. ACM Sigplan Notices 27, 5 (1992), 1–52.Google ScholarDigital Library
- Timothy Karungu, Lawrence Nderu, and Dennis Kaburu. 2022. An Enhanced Automatic Generation of CRUD Operations in React-JS. (2022).Google Scholar
- Benoît Langlois, Consuela-Elena Jitia, and Eric Jouenne. 2007. DSL classification. In OOPSLA 7th workshop on domain specific modeling.Google Scholar
- Marco Livraghi. 2016. Automatic generation of Web crud applications. (2016).Google Scholar
- Marjan Mernik, Jan Heering, and Anthony M Sloane. 2005. When and how to develop domain-specific languages. ACM computing surveys (CSUR) 37, 4 (2005), 316–344.Google ScholarDigital Library
- Oscar M Pereira, Rui L Aguiar, and Maribel Yasmina Santos. 2010. CRUD-DOM: a model for bridging the gap between the object-oriented and the relational paradigms. In 2010 Fifth International Conference on Software Engineering Advances. IEEE, 114–122.Google ScholarDigital Library
- Irum Rauf and Ivan Porres. 2011. Beyond crud. In REST: From Research to Practice. Springer, 117–135.Google Scholar
- Roberto Rodriguez-Echeverria, Juan C. Preciado, Javier Sierra, Jose M. Conejero, and Fernando Sanchez-Figueroa. 2018. AutoCRUD: Automatic generation of CRUD specifications in interaction flow modelling language. Science of Computer Programming 168 (2018), 165–168. https://doi.org/10.1016/j.scico.2018.09.004Google ScholarCross Ref
- Douglas C Schmidt 2006. Model-driven engineering. Computer-IEEE Computer Society- 39, 2 (2006), 25.Google ScholarDigital Library
- Sean Seefried, Manuel Chakravarty, and Gabriele Keller. 2004. Optimising embedded dsls using template haskell. In Generative Programming and Component Engineering: Third International Conference, GPCE 2004, Vancouver, Canada, October 24-28, 2004. Proceedings 3. Springer, 186–205.Google ScholarCross Ref
- Tim Sheard and Simon Peyton Jones. 2002. Template meta-programming for Haskell. In Proceedings of the 2002 ACM SIGPLAN workshop on Haskell. 1–16.Google ScholarDigital Library
- M Šipek, D Muharemagić, B Mihaljević, and Aleksander Radovan. 2021. Next-generation Web Applications with WebAssembly and TruffleWasm. In 2021 44th International Convention on Information, Communication and Electronic Technology (MIPRO). IEEE, 1695–1700.Google Scholar
- Ciprian-Octavian Truica, Florin Radulescu, Alexandru Boicea, and Ion Bucur. 2015. Performance evaluation for CRUD operations in asynchronously replicated document oriented database. In 2015 20th International Conference on Control Systems and Computer Science. IEEE, 191–196.Google ScholarCross Ref
Index Terms
- Uma DSL para gerar APIs RESTFul em Haskell
Comments