Skip to main content

Portable Implementation of Continuation Operators in Imperative Languages by Exception Handling

  • Chapter
  • First Online:
Advances in Exception Handling Techniques

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2022))

Abstract

This paper describes a scheme of manipulating (partial) con- tinuations in imperative languages such as Java and C++ in a portable manner, where the portability means that this scheme does not depend on structure of the native stack frame nor implementation of virtual ma- chines and runtime systems. Exception handling plays a significant role in this scheme to reduce overheads. The scheme is based on program transformation, but in contrast to CPS transformation, our scheme pre- serves the call graph of the original program. This scheme has two im- portant applications: transparent migration in mobile computation and checkpointing in a highly reliable system. The former technology enables running computations to move to a remote computer, while the latter one enables running computations to be saved into storages.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 16.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Hirotake Abe, Yuuji Ichisugi, and Kazuhiko Kato. An Implementation Scheme of Mobile Threads with a Source Code Translation Technique in Java. In Proceedings of Summer United Workshops on Parallel, Distributed and Cooperative Processing, July 1999. (in Japanese).

    Google Scholar 

  2. Luca Cardelli. Mobile Computation. In Mobile Object System: Towards the Programmable Internet, volume 1222 of Lecture Notes in Computer Science, pages 3–6. Springer-Verlag, April 1997.

    Google Scholar 

  3. Luca Cardelli and Andrew D. Gordon. Mobile Ambients. In Maurice Nivat, editor, First International Conference on Foundations of Software Science and Computational Structures, volume 1378 of Lecture Notes in Computer Science, pages 140–155. Springer-Verlag, 1998.

    Chapter  Google Scholar 

  4. Gianpaolo Cugola, Carlo Ghezzi, Gian Pietro Picco, and Giovanni Vigna. Analyzing Mobile Code Languages. In Mobile Object System: Towards the Programmable Internet, volume 1222 of Lecture Notes in Computer Science, pages 93–109, April 1996.

    Google Scholar 

  5. Olivier Danvy and Andrzej Filinski. Abstracting Control. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 151–160, 1990.

    Google Scholar 

  6. Geert Deconinck, Johan Vounckx, Rudi Cuyvers, and Rudy Lauwereins. Survey of Checkpointing and Rollback Techniques. Technical report, ESAT-ACCA Laboratory, Katholieke Universiteit Leuven, Belgium, June 1993. O3.1.8 and O3.1.12.

    Google Scholar 

  7. Bozhidar Dimitrov and Vernon Rego. Arachne: A Portable Threads System Supporting Migrant Threads on Heterogeneous Network Farms. In Proceedings of IEEE Parallel and Distributed Systems, volume 9(5), pages 459–469, 1998.

    Article  Google Scholar 

  8. Christophe Dony. Improving Exception Handling with Object-Oriented Programming. In Proceedings of the 14th IEEE computer software and application conference COMPSAC’90, pages 36–42, November 1990.

    Google Scholar 

  9. Matthias Felleisen. The Theory and Practice of First-Class Prompts. In Conference Record of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, pages 180–190, 1988.

    Google Scholar 

  10. Matthias Felleisen, Daniel P. Friedman, Eugene Kohlbecker, and Bruce Duba. A Syntactic Theory of Sequential Control. In Theoretical Computer Science, volume 52, pages 205–237, 1987.

    Article  MATH  MathSciNet  Google Scholar 

  11. S.N. Freund and J.C. Mitchell. A Type System for Object Initialization in the Java Bytecode Language. ACM Transaction on Programming Languages and Systems, 21(6):1196–1250, November 1999.

    Article  Google Scholar 

  12. Stefan Fünfrocken. Transparent Migration of Java-Based Mobile Agents. In MA’98 Mobile Agents, volume 1477 of Lecture Notes in Computer Science, pages 26–37. Springer-Verlag, 1998.

    Chapter  Google Scholar 

  13. Robert S. Gray. Agent Tcl: A Transportable Agent System. In Proceedings of the CIKM Workshop on Intelligent Information Agents, Fourth International Conference on Information and Knowledge Management, 1995.

    Google Scholar 

  14. Carl A. Gunter, Didier Rémy, and Jon G. Riecke. A Generalization of Exceptions and Control in ML-like Languages. In Conference Record of FPCA’95 SIGPLAN-SIGARCH-WG2.8 Conference on Functional Programming Languages and Computer Architecture, pages 12–23, June 1995.

    Google Scholar 

  15. Tim Lindholm and Frank Yellin. The Java Virtual Machine Specification Second Edition. Addison-Wesley, 1999.

    Google Scholar 

  16. Vincenzo Loia and Michel Quaggetto. High-level Management of Computation History for the Design and Implementation of a Prolog System. Software-Practice and Experience, 23(2):119–150, February 1993.

    Article  Google Scholar 

  17. J. G. Mitchell and W. Maybury. Mesa language manual. Xerox PARC, April 1979. CSL-79-3.

    Google Scholar 

  18. Takahiro Sakamoto, Tatsurou Sekiguchi, and Akinori Yonezawa. Bytecode Transformation for Portable Thread Migration in Java. In Proceedings of the Joint Symposium on Agent Systems and Applications / Mobile Agents (ASA/MA), pages 16–28, September 2000.

    Google Scholar 

  19. Tatsurou Sekiguchi, Hidehiko Masuhara, and Akinori Yonezawa. A Simple Extension of Java Language for Controllable Transparent Migration and its Portable Implementation. In Coordination Languages and Models, volume 1594 of Lecture Notes in Computer Science, pages 211–226. Springer-Verlag, April 1999.

    Chapter  Google Scholar 

  20. Tatsurou Sekiguchi and Akinori Yonezawa. A Calculus with Code Mobility. In H. Bowman and J. Derrick, editors, Proceedings of Second IFIP International Conference on Formal Methods for Open Object-based Distributed Systems, pages 21–36. Chapman & Hall, 1997.

    Google Scholar 

  21. Kazuyuki Shudo. Thread Migration on Java Environment. Master’s thesis, University of Waseda, 1997.

    Google Scholar 

  22. Raymie Stata and Martìn Abadi.A Type System for Java Bytecode Subroutines. SRC Research Report 158, Digital Systems Research Center, June 1998.

    Google Scholar 

  23. Raymie Stata and Martìn Abadi. A Type System for Java Bytecode Subroutines. In Conference Record of POPL’98: 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 149–160, 1998.

    Google Scholar 

  24. Volker Strumpen and Balkrishna Ramkumar. Portable Checkpointing and Recovery in Heterogeneous Environments. Technical report, University of Iowa, 1996. TR-96.6.1.

    Google Scholar 

  25. Volker Strumpen and Balkrishna Ramkumar. Portable Checkpointing for Heterogeneous Architectures. In Fault-Tolerant Parallel and Distributed Systems, chapter 4, pages 73–92. Kluwer Academic Press, 1998.

    Google Scholar 

  26. Nayuta Taga, Tatsurou Sekiguchi, and Akinori Yonezawa. An Extension of C++ that Supports Thread Migration with Little Loss of Normal Execution Efficiency. In Proceedings of Summer United Workshops on Parallel, Distributed and Cooperative Processing, July 1999. (in Japanese).

    Google Scholar 

  27. Eddy Truyen, Bert Robben, Bart Vanhaute, Tim Coninx, Wouter Joosen, and Pieere Verbaeten. Portable Support for Transparent Thread Migration in Java. In Proceedings of the Joint Symposium on Agent Systems and Applications / Mobile Agents (ASA/MA), pages 29–43, September 2000.

    Google Scholar 

  28. Takuo Watanabe. Mobile Code Description using Partial Continuations: Definition and Operational Semantics. In Proceedings of WOOC’97, 1997.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Sekiguchi, T., Sakamoto, T., Yonezawa, A. (2001). Portable Implementation of Continuation Operators in Imperative Languages by Exception Handling. In: Romanovsky, A., Dony, C., Knudsen, J.L., Tripathi, A. (eds) Advances in Exception Handling Techniques. Lecture Notes in Computer Science, vol 2022. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45407-1_14

Download citation

  • DOI: https://doi.org/10.1007/3-540-45407-1_14

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41952-5

  • Online ISBN: 978-3-540-45407-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics