Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/237721.237788acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free access

A modal analysis of staged computation

Published: 01 January 1996 Publication History

Abstract

We show that a type system based on the intuitionistic modal logic S4 provides an expressive framework for specifying and analyzing computation stages in the context of functional languages. Our main technical result is a conservative embedding of Nielson & Nielson's two-level functional language in our language Mini-ML, thus proving that binding-time correctness is equivalent to modal correctness on this fragment. In addition Mini-ML can also express immediate evaluation and sharing of code across multiple stages, thus supporting run-time code generation as well as partial evaluation.

References

[1]
Gavin Bierman and Valeria de Paiva. Intuitionistic necessity revisited. In Proceedings of the Logic at Work Conference, Amsterdam, Holiand, December 1992.
[2]
Lars Birkedal and Morton Welinder. Partial evaluation of Standard ML. Master's thesis, University of Copenhagen, Department of Computer Science, 1993. Available as Technical Report DIKU-report 93/22.
[3]
Dominique Clement, Jo#ile Despeyroux, Thierry Despeyroux, and Gilles Kahn. A simple applicative language: Mini-ML. In Proceedings of the 1986 Conference on LISP and Functional Programmzng, pages 13-27. ACM Press, 1986.
[4]
Rowan Davies. A temporal-logic approach to binding-time analysis. Research Series RS-95- 51, BRtCS, Department of Computer Science, University of Aarhus, October 1995.
[5]
Tim Freeman and Frank Pfenning. Refinement types for ML. In Proceedings of the SIGPLAN '91 Symposzum on Language Design and Irnplementatzon, Toronto, Ontario, pages 268-277. ACM Press, June 1991.
[6]
Carsten Oomard and Neil Jones. A partial evaluator for ehe untyped tambda-calculus. Journal of Functzonal Programming, 1(1):21#69, January 1991.
[7]
Robert Glfick and Jesper Jergensen. Efficient multi-level generating extensions for program specialization. In S.D. Swierstra and M. Hermenegildo, editors, Programming Languages, Implementations, Logics and Programs, pages 259-278. Springer-Verlag LNCS 982, September 1995.
[8]
John Hatcliff. Mechanically verifying the correctness of an otttine partial evaluator. In S.D. Swierstra and M. Hermenegildo, editors, Programming Languages, Implementations, Logics and Programs. Springer-Verlag LNCS 982, September 1995.
[9]
Fritz Henglein. Efficient type inference for higher-order binding-time analysis. In J. Hughes, editor, Functsonat Programming Languages and Computer Architecture, 5th A CM Conference, pages 448-472. Springer-Verlag LNCS 523, 1991.
[10]
Nell D. Jones, Carsten Gomard# and Peter $e#- toft. Partial Evaluation and Automatic Program Generation. Prentice Hall, 1993.
[11]
Neit D. Jones. Efficient algebraic operations on programs. In T. Rus, editor, AMAST Preliminary Proceedings, University of Iowa, April 1991. A version appears as a chapter in {JGS93}.
[12]
Ulrik Jerring and William L. Scherlis. Compilers and staging transformations. In Conference Record of the Thirteenth Annual A CM Symposium on Pmnciples of Programming Languages, pages 86-96, St. Petersburg Beach, Florida, January 1986.
[13]
David Keppel, Susan J. Eggers, and Robert R. Henry. A case for runtime code generation. Technical Report TR 93-11-02, Department of Computer Science and Engineering, University of Washington, November 1993.
[14]
Saul A. Kripke. Semantic analysis of modal logic. I: Normal propositional calculi. Zeitschrift fiir Mathematische Logik und Grundlagen der Mathemat#k, 9:67-96, 1963.
[15]
Mark Leone and Peter Lee. Deferred compilation: The automation of run-time code generation. In Proceedings of the Workshop on Partial Evaluation and Semantics-based Program Manipulation (PEPM'9#{), Orlando, June 1994. An earlier version appears as Carnegie Mellon School of Computer Science Technical Repor# CMU-CS-93-225, November 1993.
[16]
Simone Martini and Andrea Masini. A computational interpretation of modal proofs. In H. Wansing, editor, Proof theory of Modal Log- #cs. Kluwer, 1994. Workshop proceedings.
[17]
Eugenio Moggi. Computational tambda calculus and monads. In Proceedings of the Fourth Symposium on Logic in Computer Science, pages 14- 23, Asilomar, California, June 1989. IEEE Computer Society Press.
[18]
Flemming Nielson and Hanna Riis Nielson. Two- Level Functional Languages. Cambridge University Press, 1992.
[19]
Jens Palsberg. Correctness of binding time analysis. Journal of Functional Programming, 3(3):347-363, July 1993.
[20]
Frank Pfenning. Logic programming in the LF logical framework. In G&rard Huet and Gordon Plotkin, editors, Logical Frameworks, pages t49- 181. Cambridge University Press, 1991.
[21]
Frank Pfenning and Hao-Chi Wong. On a modal A-calculus for $4. In S. Brookes and M. Main, editors, Proceedings of the Eleventh Conference on Mathematical Foundations of Programming Semat#cs, New Orleans, Louisiana, March 1995.
[22]
Brian Cantwell Smith. Reflection and semantics in Lisp. In Proceedings of the Eleventh Annual A CM Symposium on Principles of Programming Languages, Salt Lake City, pages 23-35. ACM, January 1984.
[23]
Tim Sheard and Neal Nelson. Type safe abstractions using program generators. Technical Report OGI-TR-95-013, Oregon Graduate Institute of Science and Technology, Department of Computer Science, t995.

Cited By

View all
  • (2024)Staged Compilation with Module FunctorsProceedings of the ACM on Programming Languages10.1145/36746498:ICFP(693-727)Online publication date: 15-Aug-2024
  • (2023)MacoCaml: Staging Composable and Compilable MacrosProceedings of the ACM on Programming Languages10.1145/36078517:ICFP(604-648)Online publication date: 31-Aug-2023
  • (2021)Some constructive variants of S4 with the finite model propertyProceedings of the 36th Annual ACM/IEEE Symposium on Logic in Computer Science10.1109/LICS52264.2021.9470643(1-13)Online publication date: 29-Jun-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '96: Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 1996
423 pages
ISBN:0897917693
DOI:10.1145/237721
  • Chairman:
  • Hans-J. Boehm,
  • Conference Chair:
  • Guy Steele
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 January 1996

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

POPL96

Acceptance Rates

POPL '96 Paper Acceptance Rate 34 of 148 submissions, 23%;
Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)93
  • Downloads (Last 6 weeks)15
Reflects downloads up to 30 Aug 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Staged Compilation with Module FunctorsProceedings of the ACM on Programming Languages10.1145/36746498:ICFP(693-727)Online publication date: 15-Aug-2024
  • (2023)MacoCaml: Staging Composable and Compilable MacrosProceedings of the ACM on Programming Languages10.1145/36078517:ICFP(604-648)Online publication date: 31-Aug-2023
  • (2021)Some constructive variants of S4 with the finite model propertyProceedings of the 36th Annual ACM/IEEE Symposium on Logic in Computer Science10.1109/LICS52264.2021.9470643(1-13)Online publication date: 29-Jun-2021
  • (2019)A typed, algebraic approach to parsingProceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3314221.3314625(379-393)Online publication date: 8-Jun-2019
  • (2019)Modalities, cohesion, and information flowProceedings of the ACM on Programming Languages10.1145/32903333:POPL(1-29)Online publication date: 2-Jan-2019
  • (2019)Abstracting extensible data types: or, rows by any other nameProceedings of the ACM on Programming Languages10.1145/32903253:POPL(1-28)Online publication date: 2-Jan-2019
  • (2019)Fully abstract module compilationProceedings of the ACM on Programming Languages10.1145/32903233:POPL(1-29)Online publication date: 2-Jan-2019
  • (2019)Principality and approximation under dimensional boundProceedings of the ACM on Programming Languages10.1145/32903213:POPL(1-29)Online publication date: 2-Jan-2019
  • (2018)Reasonably programmable literal notationProceedings of the ACM on Programming Languages10.1145/32368012:ICFP(1-32)Online publication date: 30-Jul-2018
  • (2017)Dual-context calculi for modal logicProceedings of the 32nd Annual ACM/IEEE Symposium on Logic in Computer Science10.5555/3329995.3330024(1-12)Online publication date: 20-Jun-2017
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media