Interruptible iterators

Author:

Liu Jed1,Kimball Aaron1,Myers Andrew C.1

Affiliation:

1. Cornell University

Abstract

This paper introduces interruptible iterators, a language feature that makes expressive iteration abstractions much easier to implement. Iteration abstractions are valuable for software design, as shown by their frequent use in well-designed data structure libraries such as the Java Collections Framework. While Java iterators support iteration abstraction well from the standpoint of client code, they are awkward to implement correctly and efficiently, especially if the iterator needs to support imperative update of the underlying collection, such as removing the current element. Some languages, such as CLU and C# 2.0, support iteration through a limited coroutine mechanism, but these mechanisms do not support imperative updates. Interruptible iterators are more powerful coroutines in which the loop body is able to interrupt the iterator with requests to perform updates. Interrupts are similar to exceptions, but propagate differently and have resumption semantics. Interruptible iterators have been implemented as part of the JMatch programming language, an extended version of Java. A JMatch reimplementation of the Java Collections Framework shows that implementations can be made substantially shorter and simpler; performance results show that this language mechanism can also be implemented efficiently.

Publisher

Association for Computing Machinery (ACM)

Subject

Computer Graphics and Computer-Aided Design,Software

Reference29 articles.

1. Chad Fowler Dave Thomas and Andy Hunt. Programming Ruby: The Pragmatic Programmers' Guide. The Pragmatic Programmers 2nd edition 2004. ISBN 0-974-51405-5. Chad Fowler Dave Thomas and Andy Hunt. Programming Ruby: The Pragmatic Programmers' Guide. The Pragmatic Programmers 2nd edition 2004. ISBN 0-974-51405-5.

2. Generators in Icon

3. James Gosling Bill Joy Guy Steele and Gilad Bracha. The Java Language Specification. Addison Wesley 2nd edition 2000. ISBN 0-201-31008-2. James Gosling Bill Joy Guy Steele and Gilad Bracha. The Java Language Specification. Addison Wesley 2nd edition 2000. ISBN 0-201-31008-2.

4. Exception handling design issues

Cited by 6 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. Handling bidirectional control flow;Proceedings of the ACM on Programming Languages;2020-11-13

2. Embedding Concurrent Generators;2016 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW);2016-05

3. Accelerating iterators in optimizing AST interpreters;ACM SIGPLAN Notices;2014-12-31

4. Reconciling exhaustive pattern matching with objects;ACM SIGPLAN Notices;2013-06-23

5. Logic Engines as Interactors;Logic Programming;2008

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3