Compiling embedded languages

被引:0
|
作者
Elliott, C
Finne, S
de Moor, O
机构
[1] Microsoft Res, Redmond, WA 98052 USA
[2] Univ Oxford, Comp Lab, Oxford OX1 3QD, England
关键词
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Functional languages are particularly well-suited to the implementation of interpreters for domain-specific embedded languages (DSELs). We describe an implemented technique for producing optimizing compilers for DSELs, based on Kamin's idea of DSELs for program generation. The technique uses a data type of syntax for basic types, a set of smart constructors that perform rewriting over those types, some code motion transformations, and a back-end code generator. Domain-specific optimization results from chains of rewrites on basic types. New DSELs are defined directly in terms of the basic syntactic types, plus host language functions and tuples. This definition style makes compilers easy to write and, in fact, almost identical to the simplest embedded interpreters. We illustrate this technique with a language Pan for the computationally intensive domain of image synthesis and manipulation.
引用
收藏
页码:9 / 27
页数:19
相关论文
共 50 条
  • [11] Exploring the Semantic Gap in Compiling Embedded DSLs
    Zangerl, Peter
    Jordan, Herbert
    Thoman, Peter
    Gschwandtner, Philipp
    Fahringer, Thomas
    2018 INTERNATIONAL CONFERENCE ON EMBEDDED COMPUTER SYSTEMS: ARCHITECTURES, MODELING, AND SIMULATION (SAMOS XVIII), 2018, : 195 - 201
  • [12] Compiling high-level languages for vector architectures
    Rickett, CD
    Choi, SE
    Chamberlain, BL
    LANGUAGES AND COMPILERS FOR HIGH PERFORMANCE COMPUTING, 2005, 3602 : 224 - 237
  • [13] Copperhead: Compiling an Embedded Data Parallel Language
    Catanzaro, Bryan
    Garland, Michael
    Keutzer, Kurt
    ACM SIGPLAN NOTICES, 2011, 46 (08) : 47 - 56
  • [14] Compiling non-strict functional languages for the .NET
    Monteiro, M
    Araújo, M
    Borges, R
    Santos, A
    JOURNAL OF UNIVERSAL COMPUTER SCIENCE, 2005, 11 (07) : 1255 - 1274
  • [15] SOME SOLUTIONS TO PROBLEM OF DEFINING AND COMPILING GRAPHIC LANGUAGES
    MORPURGO, R
    SAMI, M
    REVUE FRANCAISE D AUTOMATIQUE INFORMATIQUE RECHERCHE OPERATIONNELLE, 1970, 4 (NB1): : 21 - 30
  • [16] Compiling concurrent programs for embedded sequential execution
    Lin, Bill
    INTEGRATION-THE VLSI JOURNAL, 2007, 40 (02) : 106 - 117
  • [17] A Certified Framework for Compiling and Executing Garbage-collected Languages
    McCreight, Andrew
    Chevalier, Tim
    Tolmach, Andrew
    ICFP 2010: PROCEEDINGS OF THE 2010 ACM SIGPLAN INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING, 2010, : 273 - 284
  • [18] Interface compilation: Steps toward compiling program interfaces as languages
    Engler, DR
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1999, 25 (03) : 387 - 400
  • [19] A Certified Framework for Compiling and Executing Garbage-collected Languages
    McCreight, Andrew
    Chevalier, Tim
    Tolmach, Andrew
    ACM SIGPLAN NOTICES, 2010, 45 (09) : 273 - 284
  • [20] Compiling parallel MATLAB for general distributions using telescoping languages
    Fletcher, Mary
    McCosh, Cheryl
    Jin, Guohua
    Kennedy, Ken
    2007 IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING, VOL IV, PTS 1-3, 2007, : 1193 - +