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...
Uloženo v:
| Vydáno v: | Theoretical computer science Ročník 248; číslo 1; s. 211 - 242 |
|---|---|
| Hlavní autoři: | , |
| 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 |