Bowen, J., Breuer, P., and Lano, K. (1993). A com-
pendium of formal techniques for software main-
tenance. IEE/BCS Software Engineering Journal,
8(5):253 – 262.
Bucchiarone, A., Cabot, J., Paige, R., and Pierantonio, A.
(2020). Grand challenges in MDE: an analysis of the
state of the research. SoSyM, 19:5–13.
Burgueno, L., Cabot, J., and Gerard, S. (2019a). An LSTM-
based neural network architecture for model transfor-
mations. In MODELS ’19, pages 294–299.
Burgueno, L., Cabot, J., and Gerard, S. (2019b). The future
of model transformation languages: an open commu-
nity discussion. JOT, 18(3).
Burgueno, L., Clariso, R., Gerard, S., Li, S., and Cabot,
J. (2021). An NLP-based architecture for the auto-
completion of partial domain models. In CAiSE 2021,
pages 91–106. Springer.
Buttner, F. and Gogolla, M. (2014). On ocl-based imper-
ative languages. Science of Computer Programming,
92:162–178.
Clark, T. and Muller, P. (2012). Exploiting model-driven
technology: a tale of two startups. SoSyM, 11:481–
493.
Desai, A., Gulwani, S., Hingorani, V., Jain, N., Karkare, A.,
Marron, M., Sailesh, R., and Roy, S. (2016). Program
synthesis using natural language. In ICSE 2016, pages
345–356.
Eclipse (2022). Eclipse OCL Version 6.4.0,
https://projects.eclipse.org/projects/modeling.mdt.ocl.
Eclipse Agile UML project (2022).
projects.eclipse.org/projects/modeling.agileuml,
accessed 18.5.2022.
Izquierdo, J. C. and Molina, J. G. (2014). Extracting models
from source code in software modernization. Software
Systems Modelling, 13:713–734.
Kernighan, B. and Ritchie, D. (1988). The C Programming
Language. Prentice Hall, 2nd edition.
Lachaux, M.-A., Roziere, B., Chanussot, L., and Lample,
G. (2020). Unsupervised translation of programming
languages. arXiv:2006.03511v3.
Lano, K., Kolahdouz-Rahimi, S., and Fang, S. (2021).
Model Transformation Development using Auto-
mated Requirements Analysis, Metamodel Match-
ing and Transformation By-Example. ACM TOSEM,
31(2):1–71.
Lano, K., Kolahdouz-Rahimi, S., and Jin, K. (2022). OCL
libraries for software specification and representation.
In OCL 2022, MODELS 2022 Companion Proceed-
ings.
Lano, K. and Xue, Q. (2020). Agile specification of code
generators for model-driven engineering. In 2020
15th International Conference on Software Engineer-
ing Advances (ICSEA), pages 9–15.
Lano, K. and Xue, Q. (2022). Code generation by example.
In Proceedings of the 10th International Conference
on Model-Driven Engineering and Software Develop-
ment (MODELSWARD), pages 84–92.
Lano, K., Yassipour-Tehrani, S., Alfraihi, H., and
Kolahdouz-Rahimi, S. (2017). Translating from
UML-RSDS OCL to ANSI C. In OCL 2017, STAF
2017, pages 317–330.
Liu, X., Yang, H., and Zedan, H. (1997). Formal meth-
ods for the re-engineering of computing systems. In
Compsac ‘97.
Papyrus, E. (2022). Papyrus toolset,
https://www.eclipse.org/papyrus.
Sanders, J. (2019). https://www.techrepublic.com/article/
jpmorgans-athena-has- 35- million- lines-of-python-
code-and-wont-be-updated-to-python-3-in-time.
Whittle, J., Hutchinson, J., Rouncefield, M., Burden, H.,
and Heldal, R. (2017). A taxonomy of tool-related
issues affecting the adoption of MDE. Sosym, 16:313–
331.
Zaki-Ismail, A., Osama, M., Abdelrazek, M., Grundy,
J., and Ibrahim, A. (2022). Rcm-extractor: an au-
tomated nlp-based approach for extracting a semi-
formal representation model from natural language re-
quirements. AUSE, 29(1):1–33.
Zhao, L. et al. (2020). Natural language processing for re-
quirements engineering: a systematic mapping study.
ACM Computing Surveys.
Zucker, J. and D‘Leeuwen, M. (2020). Arbiter: a domain-
specific language for ethical machine learning. In
AIES ‘20.
APPENDIX
A CGTL script for processing a language L consists
of a group of rulesets, each ruleset has a name and
an associated sequence of rules, and processes syntax
trees with the same tag as the ruleset name. Figure 3
shows the metamodel of CGTL, adapted from that of
CSTL (Lano and Xue, 2020).
Figure 3: CGTL metamodel.
Ruleset names are usually the same as the source
language syntax categories defined in the L grammar.
A ruleset has the format:
rulesetName::
(rule\n)+
Lightweight Software Language Processing Using Antlr and CGTL
29