Partial evaluation as universal compiler tool - Experiences from the SAC eco system

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Compilation of high-level languages, be they domain-specific ones or general purpose ones, typically entails rather sophisticated program analyses to facilitate extensive program manipulations and target architecture-specific code generation. This talk shows how several of these techniques can benefit vastly from the use of partial evaluation techniques; it reflects some of the experiences gained in the context of the ecosystem of compiler tools around the programming language SAC (Single Assignment C). I describe how partial evaluation over the lifetime of the compiler development project has turned into a versatile tool that supports several aspects during the compilation, optimisation and code generation for SAC programs. At three concrete use scenarios in our toolchain: Type inference, constraint resolution and applicationspecific code generation, I demonstrate the gains from partial evaluation. A discussion about limitations, further application potential and possible alternatives concludes the presentation. Categories and Subject Descriptors D.3.4.a [Programming Languages]: Code Generation; D.3.4.b [Programming Languages]: Compilers; D.3.4.d [Programming Languages]: Incremental Compilers; D.3.4.g [Programming Languages]: Optimization.

Original languageEnglish
Title of host publicationPEPM 2014 - Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, Co-located with POPL 2014
PublisherACM
Pages95-96
Number of pages2
ISBN (Print)9781450326193
DOIs
Publication statusPublished - 2014
EventACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation - San Diego, CA, United Kingdom
Duration: 20 Jan 201421 Jan 2014

Conference

ConferenceACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation
Abbreviated titlePEPM 2014 - Co-located with POPL 2014
CountryUnited Kingdom
CitySan Diego, CA
Period20/01/1421/01/14

Fingerprint

Computer programming languages
High level languages
Ecosystems
Code generation

Keywords

  • Highly optimising compilers
  • Partial evaluation
  • SAC

ASJC Scopus subject areas

  • Computer Graphics and Computer-Aided Design
  • Computer Vision and Pattern Recognition
  • Software

Cite this

Scholz, S. B. (2014). Partial evaluation as universal compiler tool - Experiences from the SAC eco system. In PEPM 2014 - Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, Co-located with POPL 2014 (pp. 95-96). ACM. https://doi.org/10.1145/2543728.2543747
Scholz, Sven Bodo. / Partial evaluation as universal compiler tool - Experiences from the SAC eco system. PEPM 2014 - Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, Co-located with POPL 2014. ACM, 2014. pp. 95-96
@inproceedings{376293dd94ae442b93174f769440ade4,
title = "Partial evaluation as universal compiler tool - Experiences from the SAC eco system",
abstract = "Compilation of high-level languages, be they domain-specific ones or general purpose ones, typically entails rather sophisticated program analyses to facilitate extensive program manipulations and target architecture-specific code generation. This talk shows how several of these techniques can benefit vastly from the use of partial evaluation techniques; it reflects some of the experiences gained in the context of the ecosystem of compiler tools around the programming language SAC (Single Assignment C). I describe how partial evaluation over the lifetime of the compiler development project has turned into a versatile tool that supports several aspects during the compilation, optimisation and code generation for SAC programs. At three concrete use scenarios in our toolchain: Type inference, constraint resolution and applicationspecific code generation, I demonstrate the gains from partial evaluation. A discussion about limitations, further application potential and possible alternatives concludes the presentation. Categories and Subject Descriptors D.3.4.a [Programming Languages]: Code Generation; D.3.4.b [Programming Languages]: Compilers; D.3.4.d [Programming Languages]: Incremental Compilers; D.3.4.g [Programming Languages]: Optimization.",
keywords = "Highly optimising compilers, Partial evaluation, SAC",
author = "Scholz, {Sven Bodo}",
year = "2014",
doi = "10.1145/2543728.2543747",
language = "English",
isbn = "9781450326193",
pages = "95--96",
booktitle = "PEPM 2014 - Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, Co-located with POPL 2014",
publisher = "ACM",

}

Scholz, SB 2014, Partial evaluation as universal compiler tool - Experiences from the SAC eco system. in PEPM 2014 - Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, Co-located with POPL 2014. ACM, pp. 95-96, ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, San Diego, CA, United Kingdom, 20/01/14. https://doi.org/10.1145/2543728.2543747

Partial evaluation as universal compiler tool - Experiences from the SAC eco system. / Scholz, Sven Bodo.

PEPM 2014 - Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, Co-located with POPL 2014. ACM, 2014. p. 95-96.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

TY - GEN

T1 - Partial evaluation as universal compiler tool - Experiences from the SAC eco system

AU - Scholz, Sven Bodo

PY - 2014

Y1 - 2014

N2 - Compilation of high-level languages, be they domain-specific ones or general purpose ones, typically entails rather sophisticated program analyses to facilitate extensive program manipulations and target architecture-specific code generation. This talk shows how several of these techniques can benefit vastly from the use of partial evaluation techniques; it reflects some of the experiences gained in the context of the ecosystem of compiler tools around the programming language SAC (Single Assignment C). I describe how partial evaluation over the lifetime of the compiler development project has turned into a versatile tool that supports several aspects during the compilation, optimisation and code generation for SAC programs. At three concrete use scenarios in our toolchain: Type inference, constraint resolution and applicationspecific code generation, I demonstrate the gains from partial evaluation. A discussion about limitations, further application potential and possible alternatives concludes the presentation. Categories and Subject Descriptors D.3.4.a [Programming Languages]: Code Generation; D.3.4.b [Programming Languages]: Compilers; D.3.4.d [Programming Languages]: Incremental Compilers; D.3.4.g [Programming Languages]: Optimization.

AB - Compilation of high-level languages, be they domain-specific ones or general purpose ones, typically entails rather sophisticated program analyses to facilitate extensive program manipulations and target architecture-specific code generation. This talk shows how several of these techniques can benefit vastly from the use of partial evaluation techniques; it reflects some of the experiences gained in the context of the ecosystem of compiler tools around the programming language SAC (Single Assignment C). I describe how partial evaluation over the lifetime of the compiler development project has turned into a versatile tool that supports several aspects during the compilation, optimisation and code generation for SAC programs. At three concrete use scenarios in our toolchain: Type inference, constraint resolution and applicationspecific code generation, I demonstrate the gains from partial evaluation. A discussion about limitations, further application potential and possible alternatives concludes the presentation. Categories and Subject Descriptors D.3.4.a [Programming Languages]: Code Generation; D.3.4.b [Programming Languages]: Compilers; D.3.4.d [Programming Languages]: Incremental Compilers; D.3.4.g [Programming Languages]: Optimization.

KW - Highly optimising compilers

KW - Partial evaluation

KW - SAC

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

U2 - 10.1145/2543728.2543747

DO - 10.1145/2543728.2543747

M3 - Conference contribution

SN - 9781450326193

SP - 95

EP - 96

BT - PEPM 2014 - Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, Co-located with POPL 2014

PB - ACM

ER -

Scholz SB. Partial evaluation as universal compiler tool - Experiences from the SAC eco system. In PEPM 2014 - Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, Co-located with POPL 2014. ACM. 2014. p. 95-96 https://doi.org/10.1145/2543728.2543747