PharoJS [8] validates application generation from Pharo to Javascript with the application test cases. It uses cross compiler Differential Testing, comparing the Pharo and Javascript compiler. It also uses a different implementation in which the Pharo environment executes the test case and is sending messages to the Javascript environment rather than compiling the test cases to Javascript and then executing them. Moreover PharoJS test cases do not rely on mutations.
~
MISSE-CHANABIER, Pierre, POLITO, Guillermo, BOURAQADI, Noury, DUCASSE, Stéphane, FABRESSE, Luc and TESONE, Pablo, 2022. Differential Testing of Simulation-Based Virtual Machine Generators: Automatic Detection of VM Generator Semantic Gaps Between Simulation and Generated VMs. In: PERROUIN, Gilles, MOHA, Naouel and SERIAI, Abdelhak-Djamel (eds.), Reuse and Software Quality. Cham: Springer International Publishing. p. 103–119. Lecture Notes in Computer Science. ISBN 978-3-031-08128-6. [Accessed 8 January 2024].
8. Bouraqadi, N., Mason, D.: Mocks, Proxies, and Transpilation as Development Strategies for Web Development. In: Proceedings of the 11th edition of the International Workshop on Smalltalk Technologies. pp. 1–6. IWST’16, Association for Computing Machinery (Aug 2016), pdf
Also, rather than creating semantic gaps, some prefer removing it [6]. Besnard et al. unify the semantics of a model for execution, deployment and tooling. They implement a VM to run the executable model. This VM allows them to control remotely the execution, allowing tooling such as debuggers.
6. Besnard, V., Brun, M., Dhaussy, P., Jouault, F., Olivier, D., Teodorov, C.: Towards one Model Interpreter for Both Design and Deployment. In: Third International Workshop on Executable Modeling (EXE 2017) (Sep 2017), hal