{"id":{"repo_id":"mit","oai_identifier":"oai:dspace.mit.edu:1721.1/36762"},"canonical_url":"https://search.dev.ndltd.org/etd/mit/oai:dspace.mit.edu:1721.1/36762","repository":{"repo_id":"mit","name":"MIT","base_url":"https://dspace.mit.edu/oai/request"},"display":{"title":"The JCilk-1 runtime system","abstract":"JCilk extends the Java language to provide call-return semantics for multithreading, much as Cilk does for C. Java's built-in thread model does not support the passing of exceptions or return values from one thread back to the \"parent\" thread that created it. JCilk imports Cilk's fork-join primitives spawn and sync into Java to provide procedure-call semantics for concurrent subcomputations. It also introduces exceptions into that fork-join structure, leading to some some surprising semantic synergies. In particular, JCilk extends Java's exception semantics to allow exceptions to be passed from a spawned method to its parent in a natural way that obviates the need for Cilk's inlet and abort constructs. When executing in parallel, an exception thrown by a JCilk computation signals its \"side computations\" to abort, which yields a clean semantics in which only a single exception from the enclosing try block is handled. Because JCilk uses Java's normal exception mechanism to propagate an abort throughout the side computations, the programmer can handle clean-up by simply catching a thrown CilkAbort exception.","abstract_html":"JCilk extends the Java language to provide call-return semantics for multithreading, much as Cilk does for C. Java&#x27;s built-in thread model does not support the passing of exceptions or return values from one thread back to the &quot;parent&quot; thread that created it. JCilk imports Cilk&#x27;s fork-join primitives spawn and sync into Java to provide procedure-call semantics for concurrent subcomputations. It also introduces exceptions into that fork-join structure, leading to some some surprising semantic synergies. In particular, JCilk extends Java&#x27;s exception semantics to allow exceptions to be passed from a spawned method to its parent in a natural way that obviates the need for Cilk&#x27;s inlet and abort constructs. When executing in parallel, an exception thrown by a JCilk computation signals its &quot;side computations&quot; to abort, which yields a clean semantics in which only a single exception from the enclosing try block is handled. Because JCilk uses Java&#x27;s normal exception mechanism to propagate an abort throughout the side computations, the programmer can handle clean-up by simply catching a thrown CilkAbort exception.","abstract_has_math":false,"creators":["Danaher, John (John Stephen)"],"institution":"Massachusetts Institute of Technology","degree_name":null,"degree_level":null,"degree_discipline":null,"degree_department":"Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science.","school":null,"contributors":[],"advisors":["Charles E. Leiserson."],"committee_chairs":[],"committee_members":[],"year":2005,"date_issued":"2005","date_published":"2005","updated_at":"2026-07-22T22:21:30Z","subjects":["Electrical Engineering and Computer Science."],"languages":["eng"],"rights":["M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission."],"rights_urls":["http://dspace.mit.edu/handle/1721.1/7582"],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/1721.1/36762","outbound_label":"Handle","outbound_source":"dc:identifier.uri"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor.advisor","label":"Advisor","values":["Charles E. Leiserson."]},{"key":"dc:contributor.department","label":"Department","values":["Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science."]},{"key":"dc:contributor.other","label":"Dc Contributor Other","values":["Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science."]},{"key":"dc:creator","label":"Author","values":["Danaher, John (John Stephen)"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date.accessioned","label":"Dc Date Accessioned","values":["2007-03-12T17:51:24Z"]},{"key":"dc:date.available","label":"Dc Date Available","values":["2007-03-12T17:51:24Z"]},{"key":"dc:date.issued","label":"Date","values":["2005"]},{"key":"dc:publisher","label":"Institution","values":["Massachusetts Institute of Technology"]},{"key":"dc:type","label":"Dc Type","values":["Thesis"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Electrical Engineering and Computer Science."]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language.iso","label":"Language (ISO)","values":["eng"]},{"key":"dc:rights","label":"Dc Rights","values":["M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission."]},{"key":"dc:rights.uri","label":"Rights URI","values":["http://dspace.mit.edu/handle/1721.1/7582"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier.uri","label":"Identifier URI","values":["http://hdl.handle.net/1721.1/36762"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2005.","Includes bibliographical references (p. 93-97)."]},{"key":"dc:description.abstract","label":"Abstract","values":["JCilk extends the Java language to provide call-return semantics for multithreading, much as Cilk does for C. Java's built-in thread model does not support the passing of exceptions or return values from one thread back to the \"parent\" thread that created it. JCilk imports Cilk's fork-join primitives spawn and sync into Java to provide procedure-call semantics for concurrent subcomputations. It also introduces exceptions into that fork-join structure, leading to some some surprising semantic synergies. In particular, JCilk extends Java's exception semantics to allow exceptions to be passed from a spawned method to its parent in a natural way that obviates the need for Cilk's inlet and abort constructs. When executing in parallel, an exception thrown by a JCilk computation signals its \"side computations\" to abort, which yields a clean semantics in which only a single exception from the enclosing try block is handled. Because JCilk uses Java's normal exception mechanism to propagate an abort throughout the side computations, the programmer can handle clean-up by simply catching a thrown CilkAbort exception.","(cont.) JCilk supports these features by introducing the concept of a \"catchlet\" as a mechanism for handling exceptions in a concurrent context. In my work, I have implented a runtime system for JCilk which uses a tree structure to track the dynamic state of nested try blocks. Using this tree, the runtime system is able to signal aborts to the proper side computations and determine when the catch block is able to run. The result is an efficient implementation of the JCilk specification."]},{"key":"dc:description.degree","label":"Dc Description Degree","values":["M.Eng."]},{"key":"dc:title","label":"Title","values":["The JCilk-1 runtime system"]}]}],"canonical_facts":{"dc:contributor.advisor":["Charles E. Leiserson."],"dc:contributor.department":["Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science."],"dc:contributor.other":["Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science."],"dc:creator":["Danaher, John (John Stephen)"],"dc:date.accessioned":["2007-03-12T17:51:24Z"],"dc:date.available":["2007-03-12T17:51:24Z"],"dc:date.issued":["2005"],"dc:description":["Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2005.","Includes bibliographical references (p. 93-97)."],"dc:description.abstract":["JCilk extends the Java language to provide call-return semantics for multithreading, much as Cilk does for C. Java's built-in thread model does not support the passing of exceptions or return values from one thread back to the \"parent\" thread that created it. JCilk imports Cilk's fork-join primitives spawn and sync into Java to provide procedure-call semantics for concurrent subcomputations. It also introduces exceptions into that fork-join structure, leading to some some surprising semantic synergies. In particular, JCilk extends Java's exception semantics to allow exceptions to be passed from a spawned method to its parent in a natural way that obviates the need for Cilk's inlet and abort constructs. When executing in parallel, an exception thrown by a JCilk computation signals its \"side computations\" to abort, which yields a clean semantics in which only a single exception from the enclosing try block is handled. Because JCilk uses Java's normal exception mechanism to propagate an abort throughout the side computations, the programmer can handle clean-up by simply catching a thrown CilkAbort exception.","(cont.) JCilk supports these features by introducing the concept of a \"catchlet\" as a mechanism for handling exceptions in a concurrent context. In my work, I have implented a runtime system for JCilk which uses a tree structure to track the dynamic state of nested try blocks. Using this tree, the runtime system is able to signal aborts to the proper side computations and determine when the catch block is able to run. The result is an efficient implementation of the JCilk specification."],"dc:description.degree":["M.Eng."],"dc:identifier.uri":["http://hdl.handle.net/1721.1/36762"],"dc:language.iso":["eng"],"dc:publisher":["Massachusetts Institute of Technology"],"dc:rights":["M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission."],"dc:rights.uri":["http://dspace.mit.edu/handle/1721.1/7582"],"dc:subject":["Electrical Engineering and Computer Science."],"dc:title":["The JCilk-1 runtime system"],"dc:type":["Thesis"]},"updated_at":"2026-07-22T22:21:30Z"}