A Performant Scheme Interpreter in asm.js. Van Es, N., Nicolay, J., Stiévenart, Q., D'Hondt, T., & De Roover, C. In Proceedings of the 31st ACM Symposium on Applied Computing, Programming Languages Track (SAC 2016), pages 1944–1951, 2016. ACM.
abstract   bibtex   
This paper presents the implementation of an efficient interpreter for a Scheme-like language using manually written asm.js code. The asm.js specification defines an optimizable subset of JavaScript which has already served well as a compilation target for web applications where performance is critical. However, its usage as a human-writable language that can be integrated into existing projects to improve performance has remained largely unexplored. We therefore apply this strategy to optimize the implementation of an interpreter. We also discuss the feasibility of this approach, as writing asm.js by hand is generally not its recommended use-case. We therefore present a macro system to solve the challenges we encounter. The resulting interpreter is compared to the original C implementation and its compiled equivalent in asm.js. This way, we evaluate whether manual integration with asm.js provides the necessary performance to bring larger applications and runtimes to the web.
@inproceedings{2ad7be274d7843d79d983af005c2dbbf,
  title     = "A Performant Scheme Interpreter in asm.js",
  abstract  = "This paper presents the implementation of an efficient interpreter for a Scheme-like language using manually written asm.js code. The asm.js specification defines an optimizable subset of JavaScript which has already served well as a compilation target for web applications where performance is critical. However, its usage as a human-writable language that can be integrated into existing projects to improve performance has remained largely unexplored. We therefore apply this strategy to optimize the implementation of an interpreter. We also discuss the feasibility of this approach, as writing asm.js by hand is generally not its recommended use-case. We therefore present a macro system to solve the challenges we encounter. The resulting interpreter is compared to the original C implementation and its compiled equivalent in asm.js. This way, we evaluate whether manual integration with asm.js provides the necessary performance to bring larger applications and runtimes to the web.",
  keywords  = "asm.js, JavaScript, interpreters, optimization, performance",
  author    = "{Van Es}, Noah and Jens Nicolay and Quentin Sti{\'e}venart and Theo D'Hondt and {De Roover}, Coen",
  year      = "2016",
  language  = "English",
  isbn      = "978-1-4503-3739-7",
  pages     = "1944--1951",
  booktitle = "Proceedings of the 31st ACM Symposium on Applied Computing, Programming Languages Track (SAC 2016)",
  publisher = "ACM",
}

Downloads: 0