Standard

Specializing a meta-interpreter : JIT compilation of dynsem specifications on the graal VM. / Vergu, Vlad; Visser, Eelco.

Proceedings of the 15th International Conference on Managed Languages and Runtimes, ManLang 2018. New Yorj, NY : Association for Computing Machinery (ACM), 2018. 16.

Research output: Chapter in Book/Conference proceedings/Edited volumeConference contributionScientificpeer-review

Harvard

Vergu, V & Visser, E 2018, Specializing a meta-interpreter: JIT compilation of dynsem specifications on the graal VM. in Proceedings of the 15th International Conference on Managed Languages and Runtimes, ManLang 2018., 16, Association for Computing Machinery (ACM), New Yorj, NY, ManLang'18, Linz, Austria, 12/09/18. https://doi.org/10.1145/3237009.3237018

APA

Vergu, V., & Visser, E. (2018). Specializing a meta-interpreter: JIT compilation of dynsem specifications on the graal VM. In Proceedings of the 15th International Conference on Managed Languages and Runtimes, ManLang 2018 [16] New Yorj, NY: Association for Computing Machinery (ACM). https://doi.org/10.1145/3237009.3237018

Vancouver

Vergu V, Visser E. Specializing a meta-interpreter: JIT compilation of dynsem specifications on the graal VM. In Proceedings of the 15th International Conference on Managed Languages and Runtimes, ManLang 2018. New Yorj, NY: Association for Computing Machinery (ACM). 2018. 16 https://doi.org/10.1145/3237009.3237018

Author

Vergu, Vlad ; Visser, Eelco. / Specializing a meta-interpreter : JIT compilation of dynsem specifications on the graal VM. Proceedings of the 15th International Conference on Managed Languages and Runtimes, ManLang 2018. New Yorj, NY : Association for Computing Machinery (ACM), 2018.

BibTeX

@inproceedings{bc672ab9d2bb42d9b67f3f051868e3d7,
title = "Specializing a meta-interpreter: JIT compilation of dynsem specifications on the graal VM",
abstract = "DynSem is a domain-specific language for concise specification of the dynamic semantics of programming languages, aimed at rapid experimentation and evolution of language designs. DynSem specifications can be executed to interpret programs in the language under development. To enable fast turnaround during language development, we have developed a meta-interpreter for DynSem specifications, which requires minimal processing of the specification. In addition to fast development time, we also aim to achieve fast run times for interpreted programs. In this paper we present the design of a meta-interpreter for DynSem and report on experiments with JIT compiling the application of the meta-interpreter on the Graal VM. By interpreting specifications directly, we have minimal compilation overhead. By specializing pattern matches, maintaining call-site dispatch chains and using native control-flow constructs we gain significant run-time performance. We evaluate the performance of the meta-interpreter when applied to the Tiger language specification running a set of common benchmark programs. Specialization enables the Graal VM to JIT compile the meta-interpreter giving speedups of up to factor 15 over running on the standard Oracle Java VM.",
keywords = "Dynamic semantics, Interpretation, JIT, Run-time optimization",
author = "Vlad Vergu and Eelco Visser",
year = "2018",
doi = "10.1145/3237009.3237018",
language = "English",
booktitle = "Proceedings of the 15th International Conference on Managed Languages and Runtimes, ManLang 2018",
publisher = "Association for Computing Machinery (ACM)",
address = "United States",

}

RIS

TY - GEN

T1 - Specializing a meta-interpreter

T2 - JIT compilation of dynsem specifications on the graal VM

AU - Vergu, Vlad

AU - Visser, Eelco

PY - 2018

Y1 - 2018

N2 - DynSem is a domain-specific language for concise specification of the dynamic semantics of programming languages, aimed at rapid experimentation and evolution of language designs. DynSem specifications can be executed to interpret programs in the language under development. To enable fast turnaround during language development, we have developed a meta-interpreter for DynSem specifications, which requires minimal processing of the specification. In addition to fast development time, we also aim to achieve fast run times for interpreted programs. In this paper we present the design of a meta-interpreter for DynSem and report on experiments with JIT compiling the application of the meta-interpreter on the Graal VM. By interpreting specifications directly, we have minimal compilation overhead. By specializing pattern matches, maintaining call-site dispatch chains and using native control-flow constructs we gain significant run-time performance. We evaluate the performance of the meta-interpreter when applied to the Tiger language specification running a set of common benchmark programs. Specialization enables the Graal VM to JIT compile the meta-interpreter giving speedups of up to factor 15 over running on the standard Oracle Java VM.

AB - DynSem is a domain-specific language for concise specification of the dynamic semantics of programming languages, aimed at rapid experimentation and evolution of language designs. DynSem specifications can be executed to interpret programs in the language under development. To enable fast turnaround during language development, we have developed a meta-interpreter for DynSem specifications, which requires minimal processing of the specification. In addition to fast development time, we also aim to achieve fast run times for interpreted programs. In this paper we present the design of a meta-interpreter for DynSem and report on experiments with JIT compiling the application of the meta-interpreter on the Graal VM. By interpreting specifications directly, we have minimal compilation overhead. By specializing pattern matches, maintaining call-site dispatch chains and using native control-flow constructs we gain significant run-time performance. We evaluate the performance of the meta-interpreter when applied to the Tiger language specification running a set of common benchmark programs. Specialization enables the Graal VM to JIT compile the meta-interpreter giving speedups of up to factor 15 over running on the standard Oracle Java VM.

KW - Dynamic semantics

KW - Interpretation

KW - JIT

KW - Run-time optimization

UR - http://www.scopus.com/inward/record.url?scp=85055541269&partnerID=8YFLogxK

U2 - 10.1145/3237009.3237018

DO - 10.1145/3237009.3237018

M3 - Conference contribution

BT - Proceedings of the 15th International Conference on Managed Languages and Runtimes, ManLang 2018

PB - Association for Computing Machinery (ACM)

CY - New Yorj, NY

ER -

ID: 47303269