Spoofax at Oracle: Domain-Specific Language Engineering for Large-Scale Graph Analytics

Authors Houda Boukham , Guido Wachsmuth , Toine Hartman , Hamza Boucherit, Oskar van Rest, Hassan Chafi, Sungpack Hong, Martijn Dwars , Arnaud Delamare, Dalila Chiadmi

Thumbnail PDF


  • Filesize: 2.41 MB
  • 8 pages

Document Identifiers

Author Details

Houda Boukham
  • Mohammed V University in Rabat, Ecole Mohammadia d'Ingénieurs, Morocco
  • Oracle Labs, Casablanca, Morocco
Guido Wachsmuth
  • Oracle Labs, Zürich, Switzerland
Toine Hartman
  • Oracle Labs, Utrecht, The Netherlands
Hamza Boucherit
  • Oracle Labs, Casablanca, Morocco
Oskar van Rest
  • Oracle, Redwood Shores, CA, USA
Hassan Chafi
  • Oracle Labs, Zürich, Switzerland
Sungpack Hong
  • Oracle Labs, Redwood Shores, CA, USA
Martijn Dwars
  • Oracle Labs, Zürich, Switzerland
Arnaud Delamare
  • Oracle Labs, Zürich, Switzerland
Dalila Chiadmi
  • Mohammed V University in Rabat, Ecole Mohammadia d'Ingénieurs, Morocco


The following people contributed to Spoofax implementations of domain-specific languages for graph analytics as presented in this paper (in alphabetical order): Alexander Weld, Amin Ait Lamqadem, Arnaud Delamare, Calin Iorgulescu, Daco Harkes, Daniel Lehmann, Daniel Pelsmaeker, Danny Groenewegen, Davide Basilio Bartolini, Eelco Visser, Felix Kaser, Gabriel Konat, Guido Wachsmuth, Hamid El Maazouz, Hamza Boucher, Houda Boukham, Hugo Kapp, Ivo Wilms, Jan van der Lugt, Jeff Smits, Jinha Kim, Jinsoo Lee, Korbinian Schmid, Luis Eduardo de Souza Amorim, Manuel Then, Martijn Dwars, Martin Sevenich, Matthijs Bijman, Mohammed Bacha, Moritz Baumann, Mourad Abbay, Omar Heddi, Oskar van Rest, Ossama Elbourakkadi, Patrick Gruntz, Ragahavan Raman, Rob Vermaas, Siegfried Depner, Stefan Kaestle, Sungpack Hong, Toine Hartman, Vlad Vergu.

Cite AsGet BibTex

Houda Boukham, Guido Wachsmuth, Toine Hartman, Hamza Boucherit, Oskar van Rest, Hassan Chafi, Sungpack Hong, Martijn Dwars, Arnaud Delamare, and Dalila Chiadmi. Spoofax at Oracle: Domain-Specific Language Engineering for Large-Scale Graph Analytics. In Eelco Visser Commemorative Symposium (EVCS 2023). Open Access Series in Informatics (OASIcs), Volume 109, pp. 5:1-5:8, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2023)


For the last decade, teams at Oracle relied on the Spoofax language workbench to develop a family of domain-specific languages for graph analytics in research projects and in product development. In this paper, we analyze the requirements for integrating language processors into large-scale graph analytics toolkits and for the development of these language processors as part of a larger product development process. We discuss how Spoofax helps to meet these requirements and point out the need for future improvements.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Domain specific languages
  • Software and its engineering → Translator writing systems and compiler generators
  • language workbench
  • domain-specific language


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. Sungpack Hong, Hassan Chafi, Edic Sedlar, and Kunle Olukotun. Green-marl: A dsl for easy and efficient graph analysis. In Proceedings of the Seventeenth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XVII, pages 349-362, New York, NY, USA, 2012. Association for Computing Machinery. URL: https://doi.org/10.1145/2150976.2151013.
  2. Lennart C.L. Kats and Eelco Visser. The spoofax language workbench. In Proceedings of the ACM International Conference Companion on Object Oriented Programming Systems Languages and Applications Companion, OOPSLA '10, pages 237-238, New York, NY, USA, 2010. Association for Computing Machinery. URL: https://doi.org/10.1145/1869542.1869592.
  3. Gabriël Konat. Language-Parametric Methods for Developing Interactive Programming Systems. PhD thesis, Delft University of Technology, Delft, Netherlands, November 2019. Google Scholar
  4. Gabriël Konat, Lennart Kats, Guido Wachsmuth, and Eelco Visser. Declarative name binding and scope rules. In Software Language Engineering, 5th International Conference, SLE 2012, Dresden, Germany, September 26-28, 2012, Revised Selected Papers, volume 7745, pages 311-331, January 2013. URL: https://doi.org/10.1007/978-3-642-36089-3_18.
  5. Neo4j. Cypher query language, 2022. URL: https://neo4j.com/developer/cypher/.
  6. Oracle. Pgql property graph query language, 2022. URL: https://pgql-lang.org.
  7. Oracle. Pgx documentation, 2022. URL: https://docs.oracle.com/cd/E56133_01/latest/reference/analytics/pgx-algorithm.html.
  8. Martin Sevenich, Sungpack Hong, Oskar van Rest, Zhe Wu, Jayanta Banerjee, and Hassan Chafi. Using domain-specific languages for analytic graph databases. Proc. VLDB Endow., 9(13):1257-1268, September 2016. URL: https://doi.org/10.14778/3007263.3007265.
  9. Tinkerpop. Tinkerpop, gremlin, 2022. URL: https://github.com/tinkerpop/gremlin/wiki.
  10. Oskar van Rest, Sungpack Hong, Jinha Kim, Xuming Meng, and Hassan Chafi. Pgql: A property graph query language. In Proceedings of the Fourth International Workshop on Graph Data Management Experiences and Systems, GRADES '16, New York, NY, USA, 2016. Association for Computing Machinery. URL: https://doi.org/10.1145/2960414.2960421.
  11. Eelco Visser. A family of syntax definition formalisms. Technical Report P9706, Programming Research Group, University of Amsterdam, August 1997. Google Scholar
  12. Eelco Visser. Syntax Definition for Language Prototyping. PhD thesis, University of Amsterdam, September 1997. Google Scholar
  13. Guido H. Wachsmuth, Gabriël D. P. Konat, Vlad A. Vergu, Danny M. Groenewegen, and Eelco Visser. A language independent task engine for incremental name and type analysis. In Martin Erwig, Richard F. Paige, and Eric Van Wyk, editors, Software Language Engineering, pages 260-280, Cham, 2013. Springer International Publishing. Google Scholar