MetaML and multi-stage programming with explicit annotations

We introduce MetaML, a practically motivated, statically typed multi-stage programming language. MetaML is a “real” language. We have built an implementation and used it to solve multi-stage problems. MetaML allows the programmer to construct, combine, and execute code fragments in a type-safe manne...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Theoretical computer science Ročník 248; číslo 1; s. 211 - 242
Hlavní autoři: Taha, Walid, Sheard, Tim
Médium: Journal Article
Jazyk:angličtina
Vydáno: Elsevier B.V 06.10.2000
Témata:
ISSN:0304-3975, 1879-2294, 1879-2294
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Abstract We introduce MetaML, a practically motivated, statically typed multi-stage programming language. MetaML is a “real” language. We have built an implementation and used it to solve multi-stage problems. MetaML allows the programmer to construct, combine, and execute code fragments in a type-safe manner. Code fragments can contain free variables, but they obey the static-scoping principle. MetaML performs type-checking for all stages once and for all before the execution of the first stage. Certain anomalies with our first MetaML implementation led us to formalize an illustrative subset of the MetaML implementation. We present both a big-step semantics and type system for this subset, and prove the type system's soundness with respect to a big-step semantics. From a software engineering point of view, this means that generators written in the MetaML subset never generate unsafe programs. A type system and semantics for full MetaML is still ongoing work. We argue that multi-stage languages are useful as programming languages in their own right, that they supply a sound basis for high-level program generation technology, and that they should support features that make it possible for programmers to write staged computations without significantly changing their normal programming style. To illustrate this we provide a simple three-stage example elaborating a number of practical issues. The design of MetaML was based on two main principles that we identified as fundamental for high-level program generation, namely, cross-stage persistence and cross-stage safety. We present these principles, explain the technical problems they give rise to, and how we address with these problems in our implementation.
AbstractList We introduce MetaML, a practically motivated, statically typed multi-stage programming language. MetaML is a “real” language. We have built an implementation and used it to solve multi-stage problems. MetaML allows the programmer to construct, combine, and execute code fragments in a type-safe manner. Code fragments can contain free variables, but they obey the static-scoping principle. MetaML performs type-checking for all stages once and for all before the execution of the first stage. Certain anomalies with our first MetaML implementation led us to formalize an illustrative subset of the MetaML implementation. We present both a big-step semantics and type system for this subset, and prove the type system's soundness with respect to a big-step semantics. From a software engineering point of view, this means that generators written in the MetaML subset never generate unsafe programs. A type system and semantics for full MetaML is still ongoing work. We argue that multi-stage languages are useful as programming languages in their own right, that they supply a sound basis for high-level program generation technology, and that they should support features that make it possible for programmers to write staged computations without significantly changing their normal programming style. To illustrate this we provide a simple three-stage example elaborating a number of practical issues. The design of MetaML was based on two main principles that we identified as fundamental for high-level program generation, namely, cross-stage persistence and cross-stage safety. We present these principles, explain the technical problems they give rise to, and how we address with these problems in our implementation.
Author Taha, Walid
Sheard, Tim
Author_xml – sequence: 1
  givenname: Walid
  surname: Taha
  fullname: Taha, Walid
  email: walidt@cse.ogi.edu
– sequence: 2
  givenname: Tim
  surname: Sheard
  fullname: Sheard, Tim
BackLink https://urn.kb.se/resolve?urn=urn:nbn:se:hh:diva-14408$$DView record from Swedish Publication Index (Högskolan i Halmstad)
BookMark eNqFkEtLw0AURgepYFv9CUKWikRvMjNJioKU-oQWFz62w81kko4kmTIztfrvTVvpwk1Xd3POB_cMSK81rSLkNILLCKLk6hUosJCOUn4GcA4AnIZwQPpRlo7COB6xHunvkCMycO4T1lSa9MnNTHmcTQNsi6BZ1l6HzmOlgoU1lcWm0W0VrLSfB-p7UWupfUe2xqPXpnXH5LDE2qmTvzsk7w_3b5OncPry-DwZT0NJGfVhkedYYkbzJI9VwXiJJYMCIcaCAeZlliCnMSZJzHKgmeSUZwq5ZGkEKs1SOiQX2123UotlLhZWN2h_hEEt7vTHWBhbiflcRIxB1tF8S0trnLOq3PERiHUwsQkm1jUEgNgEE9B51_-87t3No96irvfat1tbdSG-tLLCSa1aqQptlfSiMHrPwi95ZoeM
CitedBy_id crossref_primary_10_1145_2398856_2364542
crossref_primary_10_1145_3355089_3356554
crossref_primary_10_1051_ita_2011008
crossref_primary_10_2197_ipsjjip_33_461
crossref_primary_10_1145_2637365_2517211
crossref_primary_10_1145_2858949_2784739
crossref_primary_10_2168_LMCS_6_4_8_2010
crossref_primary_10_1016_j_ic_2010_09_008
crossref_primary_10_1016_j_lfs_2022_121118
crossref_primary_10_1145_2967497
crossref_primary_10_1145_2076021_2048137
crossref_primary_10_1145_2480359_2429128
crossref_primary_10_1145_636517_636530
crossref_primary_10_1145_2775053_2658774
crossref_primary_10_1145_1942788_1868314
crossref_primary_10_1016_j_scico_2010_12_002
crossref_primary_10_1145_2666356_2594316
crossref_primary_10_1145_3236792
crossref_primary_10_1145_3170492_3136043
crossref_primary_10_1017_S0960129515000109
crossref_primary_10_1145_2544174_2500575
crossref_primary_10_1145_3393934_3278132
crossref_primary_10_1145_3341701
crossref_primary_10_1145_3140587_3062370
crossref_primary_10_1145_3498723
crossref_primary_10_1145_2714064_2660241
crossref_primary_10_1145_2518190
crossref_primary_10_1145_3341700
crossref_primary_10_1145_640128_604150
crossref_primary_10_1145_3170492_3136047
crossref_primary_10_1145_1932682_1869498
crossref_primary_10_1145_2398856_2364535
crossref_primary_10_1145_3170492_3136049
crossref_primary_10_1145_3428232
crossref_primary_10_1145_3674648
crossref_primary_10_1145_944746_944730
crossref_primary_10_1007_s00354_010_0099_3
crossref_primary_10_1145_3158101
crossref_primary_10_1145_3290331
crossref_primary_10_1016_j_entcs_2018_11_015
crossref_primary_10_1145_328691_328697
crossref_primary_10_1016_j_scico_2014_05_003
crossref_primary_10_1145_2666356_2594307
crossref_primary_10_1145_3241625_2976015
crossref_primary_10_5402_2012_271836
crossref_primary_10_1016_j_scico_2025_103279
crossref_primary_10_1145_3276489
crossref_primary_10_1145_3158140
crossref_primary_10_1145_1837852_1621611
crossref_primary_10_1145_3386336
crossref_primary_10_1145_2813885_2737990
crossref_primary_10_1016_j_scico_2007_01_003
crossref_primary_10_1016_j_ic_2018_03_001
crossref_primary_10_1016_j_scico_2021_102691
crossref_primary_10_1016_j_entcs_2005_06_036
crossref_primary_10_1145_3729314
crossref_primary_10_1145_3093335_2993242
crossref_primary_10_1145_3707203
crossref_primary_10_1145_1543134_1411300
crossref_primary_10_1145_2936314_2814217
crossref_primary_10_1145_3704851
crossref_primary_10_1145_2858949_2784760
crossref_primary_10_1016_j_entcs_2010_05_010
crossref_primary_10_1145_3571204
crossref_primary_10_1145_1052883_1052897
crossref_primary_10_1145_2499370_2462166
crossref_primary_10_1016_j_entcs_2016_03_003
crossref_primary_10_1145_2544174_2500596
crossref_primary_10_1145_1108970_1108973
crossref_primary_10_1145_3498700
crossref_primary_10_1145_2914770_2837623
crossref_primary_10_1145_3747518
crossref_primary_10_1145_2637365_2517220
crossref_primary_10_1145_3093333_3009867
crossref_primary_10_1145_3547641
crossref_primary_10_1145_3571255
crossref_primary_10_1145_1061254_1061257
crossref_primary_10_1016_j_scico_2006_05_004
crossref_primary_10_1080_02286203_2016_1142276
crossref_primary_10_1145_1411203_1411251
crossref_primary_10_1145_3022671_2984009
crossref_primary_10_1017_S0956796819000054
crossref_primary_10_1145_2184319_2184345
crossref_primary_10_1145_3183653
crossref_primary_10_1016_j_jsc_2004_12_011
crossref_primary_10_1016_j_scico_2022_102864
crossref_primary_10_1145_2544174_2500586
crossref_primary_10_1145_2808704_2754970
crossref_primary_10_1016_j_scico_2025_103379
crossref_primary_10_1145_2637365_2517228
crossref_primary_10_1016_j_jvlc_2018_10_006
Cites_doi 10.1145/237721.237784
10.1145/215465.215468
10.1145/115372.115369
10.21236/ADA274124
10.1145/268946.268970
10.1145/3916.3917
10.1017/S0956796800000058
10.1145/237721.237767
10.1007/3-540-49099-X_13
10.1145/258993.259018
10.1016/0304-3975(89)90091-1
10.1145/158511.158707
10.1109/LICS.1996.561317
10.1007/3-540-59293-8_219
10.1145/258993.259016
10.1109/ICSE.1996.493448
10.1145/258993.259019
10.1007/BFb0032749
10.1016/S1571-0661(05)80155-0
10.1145/800017.800513
10.1145/258993.259005
10.1016/0304-3975(86)90006-X
10.1145/237721.237788
10.1007/3-540-16442-1_2
10.1007/3540543961_30
10.1016/0022-0000(78)90014-4
10.1145/258993.258999
ContentType Journal Article
Copyright 2000
Copyright_xml – notice: 2000
DBID 6I.
AAFTH
AAYXX
CITATION
ADTPV
AOWAS
D8Z
DOI 10.1016/S0304-3975(00)00053-0
DatabaseName ScienceDirect Open Access Titles
Elsevier:ScienceDirect:Open Access
CrossRef
SwePub
SwePub Articles
SWEPUB Högskolan i Halmstad
DatabaseTitle CrossRef
DatabaseTitleList

DeliveryMethod fulltext_linktorsrc
Discipline Mathematics
Computer Science
EISSN 1879-2294
EndPage 242
ExternalDocumentID oai_DiVA_org_hh_14408
10_1016_S0304_3975_00_00053_0
S0304397500000530
GroupedDBID --K
--M
-~X
.DC
.~1
0R~
123
1B1
1RT
1~.
1~5
29Q
4.4
457
4G.
5VS
6I.
7-5
71M
8P~
9JN
AABNK
AACTN
AAEDT
AAEDW
AAFTH
AAIAV
AAIKJ
AAKOC
AALRI
AAOAW
AAQFI
AAQXK
AAXUO
AAYFN
ABAOU
ABBOA
ABEFU
ABFNM
ABJNI
ABMAC
ABTAH
ABVKL
ABXDB
ABYKQ
ACAZW
ACDAQ
ACGFS
ACNNM
ACRLP
ACZNC
ADBBV
ADEZE
ADMUD
AEBSH
AEKER
AENEX
AEXQZ
AFKWA
AFTJW
AGHFR
AGUBO
AGYEJ
AHHHB
AHZHX
AIALX
AIEXJ
AIKHN
AITUG
AJBFU
AJOXV
ALMA_UNASSIGNED_HOLDINGS
AMFUW
AMRAJ
AOUOD
ARUGR
ASPBG
AVWKF
AXJTR
AZFZN
BKOJK
BLXMC
CS3
DU5
EBS
EFJIC
EFLBG
EJD
EO8
EO9
EP2
EP3
F5P
FDB
FEDTE
FGOYB
FIRID
FNPLU
FYGXN
G-2
G-Q
G8K
GBLVA
GBOLZ
HVGLF
HZ~
IHE
IXB
J1W
KOM
LG9
M26
M41
MHUIS
MO0
N9A
NCXOZ
O-L
O9-
OAUVE
OK1
OZT
P-8
P-9
P2P
PC.
Q38
R2-
RIG
ROL
RPZ
SCC
SDF
SDG
SES
SEW
SPC
SPCBC
SSV
SSW
SSZ
T5K
TAE
TN5
WH7
WUQ
XJT
YNT
ZMT
ZY4
~G-
9DU
AATTM
AAXKI
AAYWO
AAYXX
ABDPE
ABWVN
ACLOT
ACRPL
ACVFH
ADCNI
ADNMO
ADVLN
AEIPS
AEUPX
AFJKZ
AFPUW
AGQPQ
AIGII
AIIUN
AKBMS
AKRWK
AKYEP
ANKPU
APXCP
CITATION
EFKBS
~HD
ADTPV
AOWAS
D8Z
ID FETCH-LOGICAL-c343t-dbbafa83b6b2ed45faf40da02ad40abf86a532a6624b038c5358ea5c4710e7873
ISICitedReferencesCount 159
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000089745500007&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
ISSN 0304-3975
1879-2294
IngestDate Tue Nov 04 15:47:02 EST 2025
Tue Nov 18 20:27:40 EST 2025
Sat Nov 29 06:16:34 EST 2025
Fri Feb 23 02:23:14 EST 2024
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue 1
Keywords Type-safety
Multi-level languages
High-level program generation
Programming language semantics
Multi-stage languages
Type-systems
Functional programming
λ-Calculus
Language English
License http://www.elsevier.com/open-access/userlicense/1.0
https://www.elsevier.com/tdm/userlicense/1.0
https://www.elsevier.com/open-access/userlicense/1.0
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-c343t-dbbafa83b6b2ed45faf40da02ad40abf86a532a6624b038c5358ea5c4710e7873
OpenAccessLink https://dx.doi.org/10.1016/S0304-3975(00)00053-0
PageCount 32
ParticipantIDs swepub_primary_oai_DiVA_org_hh_14408
crossref_primary_10_1016_S0304_3975_00_00053_0
crossref_citationtrail_10_1016_S0304_3975_00_00053_0
elsevier_sciencedirect_doi_10_1016_S0304_3975_00_00053_0
PublicationCentury 2000
PublicationDate 2000-10-06
PublicationDateYYYYMMDD 2000-10-06
PublicationDate_xml – month: 10
  year: 2000
  text: 2000-10-06
  day: 06
PublicationDecade 2000
PublicationTitle Theoretical computer science
PublicationYear 2000
Publisher Elsevier B.V
Publisher_xml – name: Elsevier B.V
References R.B. Kieburtz, F. Bellegarde, J. Bell, J. Hook, J. Lewis, D. Oliva, T. Sheard, L. Walton, T. Zhou, Calculating software generators from solution specifications, TAPSOFT’95, Lecture Notes in Computer Science, Vol. 915, Springer, Berlin, 1995, pp. 546–560.
Danvy (BIB3) 1988
B.C. Smith, Reflection and semantics in a procedural language, Ph.D. Thesis, Massachusetts Institute of Technology, January 1982.
R. Davies, A temporal-logic approach to binding-time analysis, Proc. 11th Ann. IEEE Symp. on Logic in Computer Science, New Brunswick, New Jersey, 27–30 July, IEEE Computer Society Press, Silverspring, MD, 1996, pp. 184–195.
M. Leone, P. Lee, A declarative approach to run-time code generation, Workshop on Compiler Support for System Software (WCSSS), February 1996.
R.B. Kieburtz, L. McKinney, J. Bell, J. Hook, A. Kotov, J. Lewis, D. Oliva, T. Sheard, I. Smith, L. Walton, A software engineering experiment in software component generation, in: 18th Internat. Conf. in Software Engineering, March 1996.
Lowry, Philpot, Pressburger, Underwood (BIB26) 1994; 31
R. Davies, F. Pfenning, A Modal Analysis of Staged Computation, 23rd Ann. ACM Symp. on Principles of Programming Languages (POPL’96), St.Petersburg Beach, Florida, January 1996.
J. Hook, T. Sheard, A semantics of compile-time reflection, Tech. Rep. CSE 93-019, Oregon Graduate Institute, 1993.
Thiemann (BIB50) April 1996
F. Nielson, H.R. Nielson, A prescriptive framework for designing multi-level lambda-calculi, Proc. Symp. on Partial Evaluation and Semantics-Based Program Manipulation, Amsterdam, June 1997.
D. Stemple, R.B. Stanton, T. Sheard, P. Philbrow, R. Morrison, G.N.C. Kirby, L. Fegaras, R.L. Cooper, R.C.H. Connor, M.P. Atkinson, S. Alagic, Type-safe linguistic reflection: a generator technology, Tech. Rep. FIDE/92/49, ESPRIT BRA Project 3070 FIDE, 1992.
M. Leone, P. Lee, Deferred compilation: the automation of run-time code generation, Tech. Rep. CMU-CS-93-225, Carnegie Mellon University, December 1993.
T. Sheard, N. Nelson, Type safe abstractions using program generators, Tech. Rep. OGI-TR-95-013, Oregon Graduate Institute of Science and Technology, 1995.
Hatcliff, Glück (BIB13) 1996; Vol. 1110
Milner (BIB27) 1978; 17
T. Sheard, A type-directed, on-line partial evaluator for a polymorphic language, in: Proc. Symp. on Partial Evaluation and Semantics-Based Program Manipulation, Amsterdam, June 1997.
B.C. Smith, Reflection and semantics in lisp, ACM Symp. on Principles of Programming Languages, January 1984.
Glück, Jørgensen (BIB9) 1995; Vol. 982
M. Shields, T. Sheard, S.P. Jones, Dynamic typing through staged type inference, in: Proc. 25th ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, January 1998.
Glück, Jørgensen (BIB10) 1996; Vol. 1181
O. Danvy, Type-directed partial evaluation, ACM Symp. on Principles of Programming Languages, Florida, ACM, New York, January 1996, pp. 242–257.
C. Consel, O. Danvy, Tutorial notes on partial evaluation, ACM Symp. on Principles of Programming Languages, January 1993, pp. 493–501.
Gomard, Jones (BIB11) 1991; 1
Nielson, Nielson (BIB34) 1992
Sheard (BIB39) 1991; 13
L. Hornof, C. Consel, J. Noyé, Effective specialization of realistic programs via use sensitivity, SAS 1997, Paris, France, September 1997, pp. 293–314.
S.L.P. Jones, J. Launchbury, Unboxed values as first class citizens in a non-strict functional language, in: Functional Programming and Computer Architecture, September 1991.
C. Consel, F. Noël, A general approach for run-time specialization and its apllication to C, Conf. Record of POPL ’96: The 23rd ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, St. Petersburg Beach, Florida, 21–24 January 1996, pp. 145–156.
Jones (BIB19) 1996; Vol. 1110
Taha, Benaissa, Sheard (BIB48) July 1998
L. Hornof, J. Noyé, Accurate binding-time analysis for imperative languages: Flow, context, and return sensitivity, Proc. ACM SIGPLAN Symp. on Partial Evaluation and Semantics-Based Program Manipulation, Amsterdam, The Netherlands, 12–13 June 1997, pp. 63–73.
E. Moggi, A categorical account of two-level languages, In MFPS 1997, 1997.
Henglein, Mossin (BIB14) April 1994; Vol. 788
T. Sheard, A user's guide to trpl, a compile-time reflective programming language, Tech. Rep. COINS Tech. Rep. 90-109, Dept. of Computer and Information Science, University of Massachusetts, 1990.
Nielson (BIB30) 1985; 7
Nielson, Nielson (BIB33) 1988; 56
Nielson, Nielson (BIB35) 1996; Vol. 1110
E. Moggi, W. Taha, Z. Benaissa, T. Sheard, An idealized MetaML: Simpler, and more expressive (includes Proofs), Tech. Rep. CSE-98-017, OGI, October 1998.
Jones, Gomard, Sestoft (BIB20) 1993
T. Sheard, Type parametric programming, Tech. Rep. CSE 93-018, Oregon Graduate Institute, 1993.
Glück, Jørgensen (BIB8) 1995; Vol. 982
Nielson (BIB32) 1989; 69
W. Taha, T. Sheard, Multi-stage programming with explicit annotations, Proc. ACM-SIGPLAN Symp. on Partial Evaluation and semantic based program manipulations PEPM’97, Amsterdam, ACM, New York, 1997, pp. 203–217.
B. Grant, M. Mock, M. Philipose, C. Chambers, S.J. Eggers, Annotation-directed run-time Specialization in C, Proc. ACM SIGPLAN Symp. on Partial Evaluation and Semantics-Based Program Manipulation, Amsterdam, The Netherlands, June 1997, pp. 163–178.
C. Pu, J. Walpole, A study of dynamic optimization techniques: lessons and directions in kernel design, Tech. Rep. OGI-CSE-93-007, Oregon Graduate Institute of Science and Technology, 1993.
T. Sheard, Guide to using crml, cmopile-time reflective ml. (Available from author's home-page), October 1993.
F. Nielson, Correctness of code generation from a two-level meta-language, in: B. Robinet, R. Wilhelm (Eds.), Proc. European Symp. on Programming (ESOP 86), Lecture Notes in Computer Science, Vol. 213, Saarbrücken, FRG, March 1986, Springer, Berlin, pp. 30–40.
Danvy, Malmkjaer, Palsberg (BIB5) 1995; 1
N.D. Jones, Mix ten years later, in: Partial Evaluation and Semantics-Based Program Manipulation, New Haven, Connecticut (Sigplan Notices, Vol. 26, no. 9, September 1991) ACM, New York, June 1995, pp. 24–38.
10.1016/S0304-3975(00)00053-0_BIB4
10.1016/S0304-3975(00)00053-0_BIB36
10.1016/S0304-3975(00)00053-0_BIB37
10.1016/S0304-3975(00)00053-0_BIB2
10.1016/S0304-3975(00)00053-0_BIB38
10.1016/S0304-3975(00)00053-0_BIB1
10.1016/S0304-3975(00)00053-0_BIB7
10.1016/S0304-3975(00)00053-0_BIB6
Milner (10.1016/S0304-3975(00)00053-0_BIB27) 1978; 17
Danvy (10.1016/S0304-3975(00)00053-0_BIB5) 1995; 1
10.1016/S0304-3975(00)00053-0_BIB31
Danvy (10.1016/S0304-3975(00)00053-0_BIB3) 1988
Glück (10.1016/S0304-3975(00)00053-0_BIB8) 1995; Vol. 982
10.1016/S0304-3975(00)00053-0_BIB29
10.1016/S0304-3975(00)00053-0_BIB25
Jones (10.1016/S0304-3975(00)00053-0_BIB20) 1993
10.1016/S0304-3975(00)00053-0_BIB28
Nielson (10.1016/S0304-3975(00)00053-0_BIB32) 1989; 69
10.1016/S0304-3975(00)00053-0_BIB21
10.1016/S0304-3975(00)00053-0_BIB22
10.1016/S0304-3975(00)00053-0_BIB23
10.1016/S0304-3975(00)00053-0_BIB24
Nielson (10.1016/S0304-3975(00)00053-0_BIB33) 1988; 56
Glück (10.1016/S0304-3975(00)00053-0_BIB9) 1995; Vol. 982
Taha (10.1016/S0304-3975(00)00053-0_BIB48) 1998
Henglein (10.1016/S0304-3975(00)00053-0_BIB14) 1994; Vol. 788
10.1016/S0304-3975(00)00053-0_BIB18
10.1016/S0304-3975(00)00053-0_BIB15
Nielson (10.1016/S0304-3975(00)00053-0_BIB35) 1996; Vol. 1110
10.1016/S0304-3975(00)00053-0_BIB16
10.1016/S0304-3975(00)00053-0_BIB17
10.1016/S0304-3975(00)00053-0_BIB12
Hatcliff (10.1016/S0304-3975(00)00053-0_BIB13) 1996; Vol. 1110
Gomard (10.1016/S0304-3975(00)00053-0_BIB11) 1991; 1
Jones (10.1016/S0304-3975(00)00053-0_BIB19) 1996; Vol. 1110
Nielson (10.1016/S0304-3975(00)00053-0_BIB30) 1985; 7
Thiemann (10.1016/S0304-3975(00)00053-0_BIB50) 1996
10.1016/S0304-3975(00)00053-0_BIB47
10.1016/S0304-3975(00)00053-0_BIB49
Nielson (10.1016/S0304-3975(00)00053-0_BIB34) 1992
10.1016/S0304-3975(00)00053-0_BIB43
10.1016/S0304-3975(00)00053-0_BIB44
10.1016/S0304-3975(00)00053-0_BIB45
10.1016/S0304-3975(00)00053-0_BIB46
10.1016/S0304-3975(00)00053-0_BIB40
10.1016/S0304-3975(00)00053-0_BIB41
10.1016/S0304-3975(00)00053-0_BIB42
Lowry (10.1016/S0304-3975(00)00053-0_BIB26) 1994; 31
Sheard (10.1016/S0304-3975(00)00053-0_BIB39) 1991; 13
Glück (10.1016/S0304-3975(00)00053-0_BIB10) 1996; Vol. 1181
References_xml – reference: C. Consel, F. Noël, A general approach for run-time specialization and its apllication to C, Conf. Record of POPL ’96: The 23rd ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, St. Petersburg Beach, Florida, 21–24 January 1996, pp. 145–156.
– volume: 13
  start-page: 531
  year: 1991
  end-page: 557
  ident: BIB39
  article-title: Automatic generation and use of abstract structure operators
  publication-title: ACM Trans. Programm. Languages and Systems
– reference: M. Shields, T. Sheard, S.P. Jones, Dynamic typing through staged type inference, in: Proc. 25th ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, January 1998.
– year: 1993
  ident: BIB20
  publication-title: Partial Evaluation and Automatic Program Generation
– reference: F. Nielson, Correctness of code generation from a two-level meta-language, in: B. Robinet, R. Wilhelm (Eds.), Proc. European Symp. on Programming (ESOP 86), Lecture Notes in Computer Science, Vol. 213, Saarbrücken, FRG, March 1986, Springer, Berlin, pp. 30–40.
– volume: 56
  start-page: 59
  year: 1988
  end-page: 133
  ident: BIB33
  article-title: Two-level semantics and code generation
  publication-title: Theoret. Comput. Sci.
– reference: R. Davies, A temporal-logic approach to binding-time analysis, Proc. 11th Ann. IEEE Symp. on Logic in Computer Science, New Brunswick, New Jersey, 27–30 July, IEEE Computer Society Press, Silverspring, MD, 1996, pp. 184–195.
– volume: Vol. 1110
  start-page: 161
  year: 1996
  end-page: 182
  ident: BIB13
  article-title: Reasoning about hierarchies of online specialization systems
  publication-title: Partial Evaluation
– volume: Vol. 1110
  start-page: 216
  year: 1996
  end-page: 237
  ident: BIB19
  article-title: What not to do when writing an interpreter for specialisation
  publication-title: Partial Evaluation
– volume: 31
  start-page: 22
  year: 1994
  end-page: 25
  ident: BIB26
  article-title: Amphion
  publication-title: NASA Sci. Inform. Systems Newslett.
– reference: T. Sheard, A user's guide to trpl, a compile-time reflective programming language, Tech. Rep. COINS Tech. Rep. 90-109, Dept. of Computer and Information Science, University of Massachusetts, 1990.
– reference: T. Sheard, Type parametric programming, Tech. Rep. CSE 93-018, Oregon Graduate Institute, 1993.
– reference: C. Pu, J. Walpole, A study of dynamic optimization techniques: lessons and directions in kernel design, Tech. Rep. OGI-CSE-93-007, Oregon Graduate Institute of Science and Technology, 1993.
– volume: 1
  start-page: 21
  year: 1991
  end-page: 69
  ident: BIB11
  article-title: A partial evaluator for untyped lambda calculus
  publication-title: J. Funct. Programm.
– reference: B.C. Smith, Reflection and semantics in lisp, ACM Symp. on Principles of Programming Languages, January 1984.
– reference: M. Leone, P. Lee, A declarative approach to run-time code generation, Workshop on Compiler Support for System Software (WCSSS), February 1996.
– volume: 17
  start-page: 348
  year: 1978
  end-page: 375
  ident: BIB27
  article-title: A theory of type polymorphism in programming
  publication-title: J. Comput. System Sci.
– reference: B. Grant, M. Mock, M. Philipose, C. Chambers, S.J. Eggers, Annotation-directed run-time Specialization in C, Proc. ACM SIGPLAN Symp. on Partial Evaluation and Semantics-Based Program Manipulation, Amsterdam, The Netherlands, June 1997, pp. 163–178.
– start-page: 83
  year: 1988
  end-page: 116
  ident: BIB3
  article-title: Across the bridge between reflection and partial evaluation
  publication-title: Partial Evaluation and Mixed Computation
– reference: R.B. Kieburtz, F. Bellegarde, J. Bell, J. Hook, J. Lewis, D. Oliva, T. Sheard, L. Walton, T. Zhou, Calculating software generators from solution specifications, TAPSOFT’95, Lecture Notes in Computer Science, Vol. 915, Springer, Berlin, 1995, pp. 546–560.
– volume: Vol. 982
  start-page: 259
  year: 1995
  end-page: 278
  ident: BIB8
  article-title: Efficient multi-level generating extensions for program specialization
  publication-title: Programming Languages
– reference: L. Hornof, J. Noyé, Accurate binding-time analysis for imperative languages: Flow, context, and return sensitivity, Proc. ACM SIGPLAN Symp. on Partial Evaluation and Semantics-Based Program Manipulation, Amsterdam, The Netherlands, 12–13 June 1997, pp. 63–73.
– reference: F. Nielson, H.R. Nielson, A prescriptive framework for designing multi-level lambda-calculi, Proc. Symp. on Partial Evaluation and Semantics-Based Program Manipulation, Amsterdam, June 1997.
– volume: 69
  start-page: 117
  year: 1989
  end-page: 242
  ident: BIB32
  article-title: Two-level semantics and abstract interpretation
  publication-title: Theoret. Comput. Sci.
– reference: D. Stemple, R.B. Stanton, T. Sheard, P. Philbrow, R. Morrison, G.N.C. Kirby, L. Fegaras, R.L. Cooper, R.C.H. Connor, M.P. Atkinson, S. Alagic, Type-safe linguistic reflection: a generator technology, Tech. Rep. FIDE/92/49, ESPRIT BRA Project 3070 FIDE, 1992.
– reference: L. Hornof, C. Consel, J. Noyé, Effective specialization of realistic programs via use sensitivity, SAS 1997, Paris, France, September 1997, pp. 293–314.
– reference: T. Sheard, Guide to using crml, cmopile-time reflective ml. (Available from author's home-page), October 1993.
– year: 1992
  ident: BIB34
  publication-title: Two-Level Functional Languages, Cambridge Tracts in Theoretical Computer Science, Vol. 34
– year: July 1998
  ident: BIB48
  publication-title: Multi-stage programming: axiomatization and type-safety, 25th ICALP
– reference: R.B. Kieburtz, L. McKinney, J. Bell, J. Hook, A. Kotov, J. Lewis, D. Oliva, T. Sheard, I. Smith, L. Walton, A software engineering experiment in software component generation, in: 18th Internat. Conf. in Software Engineering, March 1996.
– reference: E. Moggi, A categorical account of two-level languages, In MFPS 1997, 1997.
– volume: Vol. 1110
  start-page: 338
  year: 1996
  end-page: 354
  ident: BIB35
  article-title: Multi-level lambda-calculi: an algebraic description
  publication-title: Partial Evaluation. Dagstuhl Castle, Germany, February 1996
– volume: Vol. 788
  start-page: 287
  year: April 1994
  end-page: 301
  ident: BIB14
  article-title: Polymorphic binding-time analysis
  publication-title: Programming Languages and Systems – ESOP’94 5th European Symp. on Programming
– volume: Vol. 1181
  year: 1996
  ident: BIB10
  publication-title: Fast binding-time analysis for multi-level specialization, PSI-96
– volume: 1
  year: 1995
  ident: BIB5
  article-title: The essence of eta-expansion in partial evaluation
  publication-title: LISP Symbolic Comput.
– reference: J. Hook, T. Sheard, A semantics of compile-time reflection, Tech. Rep. CSE 93-019, Oregon Graduate Institute, 1993.
– reference: C. Consel, O. Danvy, Tutorial notes on partial evaluation, ACM Symp. on Principles of Programming Languages, January 1993, pp. 493–501.
– reference: E. Moggi, W. Taha, Z. Benaissa, T. Sheard, An idealized MetaML: Simpler, and more expressive (includes Proofs), Tech. Rep. CSE-98-017, OGI, October 1998.
– reference: N.D. Jones, Mix ten years later, in: Partial Evaluation and Semantics-Based Program Manipulation, New Haven, Connecticut (Sigplan Notices, Vol. 26, no. 9, September 1991) ACM, New York, June 1995, pp. 24–38.
– volume: 7
  start-page: 359
  year: 1985
  end-page: 379
  ident: BIB30
  article-title: Program transformations in a denotational setting
  publication-title: ACM Trans. Programm. Languages Systems
– reference: M. Leone, P. Lee, Deferred compilation: the automation of run-time code generation, Tech. Rep. CMU-CS-93-225, Carnegie Mellon University, December 1993.
– reference: R. Davies, F. Pfenning, A Modal Analysis of Staged Computation, 23rd Ann. ACM Symp. on Principles of Programming Languages (POPL’96), St.Petersburg Beach, Florida, January 1996.
– reference: O. Danvy, Type-directed partial evaluation, ACM Symp. on Principles of Programming Languages, Florida, ACM, New York, January 1996, pp. 242–257.
– reference: B.C. Smith, Reflection and semantics in a procedural language, Ph.D. Thesis, Massachusetts Institute of Technology, January 1982.
– reference: S.L.P. Jones, J. Launchbury, Unboxed values as first class citizens in a non-strict functional language, in: Functional Programming and Computer Architecture, September 1991.
– reference: T. Sheard, A type-directed, on-line partial evaluator for a polymorphic language, in: Proc. Symp. on Partial Evaluation and Semantics-Based Program Manipulation, Amsterdam, June 1997.
– reference: T. Sheard, N. Nelson, Type safe abstractions using program generators, Tech. Rep. OGI-TR-95-013, Oregon Graduate Institute of Science and Technology, 1995.
– reference: W. Taha, T. Sheard, Multi-stage programming with explicit annotations, Proc. ACM-SIGPLAN Symp. on Partial Evaluation and semantic based program manipulations PEPM’97, Amsterdam, ACM, New York, 1997, pp. 203–217.
– volume: Vol. 982
  year: 1995
  ident: BIB9
  publication-title: Efficient multi-level generating extensions for program specialization, Programming Languages, Implementations, Logics and Programs (PLILP’95)
– start-page: 95
  year: April 1996
  end-page: 106
  ident: BIB50
  article-title: Towards partial evaluation of full Scheme
  publication-title: Reflection 96
– volume: Vol. 982
  start-page: 259
  year: 1995
  ident: 10.1016/S0304-3975(00)00053-0_BIB8
  article-title: Efficient multi-level generating extensions for program specialization
– ident: 10.1016/S0304-3975(00)00053-0_BIB4
  doi: 10.1145/237721.237784
– ident: 10.1016/S0304-3975(00)00053-0_BIB18
  doi: 10.1145/215465.215468
– volume: 13
  start-page: 531
  issue: 4
  year: 1991
  ident: 10.1016/S0304-3975(00)00053-0_BIB39
  article-title: Automatic generation and use of abstract structure operators
  publication-title: ACM Trans. Programm. Languages and Systems
  doi: 10.1145/115372.115369
– ident: 10.1016/S0304-3975(00)00053-0_BIB24
  doi: 10.21236/ADA274124
– start-page: 95
  year: 1996
  ident: 10.1016/S0304-3975(00)00053-0_BIB50
  article-title: Towards partial evaluation of full Scheme
– ident: 10.1016/S0304-3975(00)00053-0_BIB44
  doi: 10.1145/268946.268970
– volume: Vol. 1110
  start-page: 338
  year: 1996
  ident: 10.1016/S0304-3975(00)00053-0_BIB35
  article-title: Multi-level lambda-calculi: an algebraic description
– volume: Vol. 1110
  start-page: 161
  year: 1996
  ident: 10.1016/S0304-3975(00)00053-0_BIB13
  article-title: Reasoning about hierarchies of online specialization systems
– volume: 7
  start-page: 359
  issue: 3
  year: 1985
  ident: 10.1016/S0304-3975(00)00053-0_BIB30
  article-title: Program transformations in a denotational setting
  publication-title: ACM Trans. Programm. Languages Systems
  doi: 10.1145/3916.3917
– year: 1992
  ident: 10.1016/S0304-3975(00)00053-0_BIB34
– volume: 1
  start-page: 21
  issue: 1
  year: 1991
  ident: 10.1016/S0304-3975(00)00053-0_BIB11
  article-title: A partial evaluator for untyped lambda calculus
  publication-title: J. Funct. Programm.
  doi: 10.1017/S0956796800000058
– ident: 10.1016/S0304-3975(00)00053-0_BIB40
– ident: 10.1016/S0304-3975(00)00053-0_BIB2
  doi: 10.1145/237721.237767
– ident: 10.1016/S0304-3975(00)00053-0_BIB43
– ident: 10.1016/S0304-3975(00)00053-0_BIB29
  doi: 10.1007/3-540-49099-X_13
– ident: 10.1016/S0304-3975(00)00053-0_BIB47
– ident: 10.1016/S0304-3975(00)00053-0_BIB37
– ident: 10.1016/S0304-3975(00)00053-0_BIB36
  doi: 10.1145/258993.259018
– volume: 31
  start-page: 22
  year: 1994
  ident: 10.1016/S0304-3975(00)00053-0_BIB26
  article-title: Amphion
  publication-title: NASA Sci. Inform. Systems Newslett.
– volume: 69
  start-page: 117
  issue: 2
  year: 1989
  ident: 10.1016/S0304-3975(00)00053-0_BIB32
  article-title: Two-level semantics and abstract interpretation
  publication-title: Theoret. Comput. Sci.
  doi: 10.1016/0304-3975(89)90091-1
– ident: 10.1016/S0304-3975(00)00053-0_BIB25
– start-page: 83
  year: 1988
  ident: 10.1016/S0304-3975(00)00053-0_BIB3
  article-title: Across the bridge between reflection and partial evaluation
– ident: 10.1016/S0304-3975(00)00053-0_BIB1
  doi: 10.1145/158511.158707
– volume: Vol. 1181
  year: 1996
  ident: 10.1016/S0304-3975(00)00053-0_BIB10
– ident: 10.1016/S0304-3975(00)00053-0_BIB6
  doi: 10.1109/LICS.1996.561317
– ident: 10.1016/S0304-3975(00)00053-0_BIB22
  doi: 10.1007/3-540-59293-8_219
– volume: 1
  issue: 19
  year: 1995
  ident: 10.1016/S0304-3975(00)00053-0_BIB5
  article-title: The essence of eta-expansion in partial evaluation
  publication-title: LISP Symbolic Comput.
– ident: 10.1016/S0304-3975(00)00053-0_BIB12
  doi: 10.1145/258993.259016
– ident: 10.1016/S0304-3975(00)00053-0_BIB23
  doi: 10.1109/ICSE.1996.493448
– ident: 10.1016/S0304-3975(00)00053-0_BIB38
– ident: 10.1016/S0304-3975(00)00053-0_BIB49
  doi: 10.1145/258993.259019
– ident: 10.1016/S0304-3975(00)00053-0_BIB15
– ident: 10.1016/S0304-3975(00)00053-0_BIB16
  doi: 10.1007/BFb0032749
– ident: 10.1016/S0304-3975(00)00053-0_BIB28
  doi: 10.1016/S1571-0661(05)80155-0
– ident: 10.1016/S0304-3975(00)00053-0_BIB46
  doi: 10.1145/800017.800513
– ident: 10.1016/S0304-3975(00)00053-0_BIB17
  doi: 10.1145/258993.259005
– volume: 56
  start-page: 59
  issue: 1
  year: 1988
  ident: 10.1016/S0304-3975(00)00053-0_BIB33
  article-title: Two-level semantics and code generation
  publication-title: Theoret. Comput. Sci.
  doi: 10.1016/0304-3975(86)90006-X
– ident: 10.1016/S0304-3975(00)00053-0_BIB7
  doi: 10.1145/237721.237788
– ident: 10.1016/S0304-3975(00)00053-0_BIB31
  doi: 10.1007/3-540-16442-1_2
– ident: 10.1016/S0304-3975(00)00053-0_BIB21
  doi: 10.1007/3540543961_30
– year: 1993
  ident: 10.1016/S0304-3975(00)00053-0_BIB20
– ident: 10.1016/S0304-3975(00)00053-0_BIB41
– volume: Vol. 1110
  start-page: 216
  year: 1996
  ident: 10.1016/S0304-3975(00)00053-0_BIB19
  article-title: What not to do when writing an interpreter for specialisation
– volume: 17
  start-page: 348
  year: 1978
  ident: 10.1016/S0304-3975(00)00053-0_BIB27
  article-title: A theory of type polymorphism in programming
  publication-title: J. Comput. System Sci.
  doi: 10.1016/0022-0000(78)90014-4
– volume: Vol. 982
  year: 1995
  ident: 10.1016/S0304-3975(00)00053-0_BIB9
– ident: 10.1016/S0304-3975(00)00053-0_BIB45
– year: 1998
  ident: 10.1016/S0304-3975(00)00053-0_BIB48
– ident: 10.1016/S0304-3975(00)00053-0_BIB42
  doi: 10.1145/258993.258999
– volume: Vol. 788
  start-page: 287
  year: 1994
  ident: 10.1016/S0304-3975(00)00053-0_BIB14
  article-title: Polymorphic binding-time analysis
SSID ssj0000576
Score 2.1096587
Snippet We introduce MetaML, a practically motivated, statically typed multi-stage programming language. MetaML is a “real” language. We have built an implementation...
SourceID swepub
crossref
elsevier
SourceType Open Access Repository
Enrichment Source
Index Database
Publisher
StartPage 211
SubjectTerms Functional programming
High-level program generation
Multi-level languages
Multi-stage languages
Programming language semantics
TECHNOLOGY
TEKNIKVETENSKAP
Type-safety
Type-systems
λ-Calculus
Title MetaML and multi-stage programming with explicit annotations
URI https://dx.doi.org/10.1016/S0304-3975(00)00053-0
https://urn.kb.se/resolve?urn=urn:nbn:se:hh:diva-14408
Volume 248
WOSCitedRecordID wos000089745500007&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVESC
  databaseName: Elsevier SD Freedom Collection Journals 2021
  customDbUrl:
  eissn: 1879-2294
  dateEnd: 20180131
  omitProxy: false
  ssIdentifier: ssj0000576
  issn: 1879-2294
  databaseCode: AIEXJ
  dateStart: 19950109
  isFulltext: true
  titleUrlDefault: https://www.sciencedirect.com
  providerName: Elsevier
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1Lb9QwELag5QAHHoWK8pIPPYCQwevYiSNxWUERILZCosDeLMePdhFkq92A9uczjp1HpaKWAxcriuIk8jcej2fG8yG0b3XlOSwkZOJE8FYxT7TUluSV85O8MFyYSDZRHB7K-bz8lCjr1i2dQFHXcrMpT_8r1HAPwA5HZ_8B7v6lcAOuAXRoAXZoLwX8zDV69rENCrTZggTsv2PXJWL97J2vbhNC14uQYV4vm5Hj7nsvQP0RR5O4H56nBXPY78d40Tew5m3vrAkk2TYJwhmvAm3z0_KRIpRFSRiLBMSdpmRcjkUinVvsNN_kXI0cnQOfQwSWgO0jwG4O9NMtV2lG6LAMnSl4_WbxdaqWq2N1cqJC-FleRdusECXore3p-4P5h2G1FUWMR6f3hw129-_Dia2Xww88pfRZ-vhfbZFx0djW0Di6jW6mHQKeRmTvoCuu3kG3OvYNnJTxDrox6yvuru-iVxF2DLDjEex4BDsOsOMOdjyC_R768vbg6PU7kpgxiMl41hBbVdprmVV5xZzlwmvPqdWUacspzD6Za5ExneeMVzSTRmRCOi0MWCLUgYrOdtFWvazdfYQnxgomTB72ldw7eMpb75mQJRi2Ind7iHdjpEwqGx_YS36oIT8QhlaFoVU01JqFoVV0D73ou53GuikXdZAdACrJcjTqFEjSRV33I2D9l84VoQeXe-whuj5MiEdoq1n9co_RNfO7WaxXT5L4_QHQkIDP
linkProvider Elsevier
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=MetaML+and+multi-stage+programming+with+explicit+annotations&rft.jtitle=Theoretical+computer+science&rft.au=Taha%2C+Walid&rft.au=Sheard%2C+Tim&rft.date=2000-10-06&rft.issn=1879-2294&rft.volume=248&rft.issue=1-2&rft.spage=211&rft_id=info:doi/10.1016%2FS0304-3975%2800%2900053-0&rft.externalDocID=oai_DiVA_org_hh_14408
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0304-3975&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0304-3975&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0304-3975&client=summon