This site requires Cookies enabled in your browser for login.
Updating ...
WaterNet Home
WaterNet
for
pour le
Canada
Menu
WaterNet
Home
GWFO
Home
Catalogue
Master Index
Data
Centre
Collections
X
Defaults
Select All
Websites
X
Global Water Futures Observatories (GWFO) Global Water Futures (GWF) Global Institute for Water Security (GIWS) International Network of Alpine Research Catchment Hydrology
Legacy Research Programs
X
Changing Cold Regions Network (CCRN) Drought Research Initiative (DRI) International Network of Alpine Research Catchment Hydrology (Legacy Site) Improving Processes & Parameterization for Prediction in Cold Regions Hydrology (IP3) The Mackenzie Global Energy and Water Cycle Experiment (GEWEX) Study (MAGS)
Legacy sites
Map
Utilities
X
Account Settings Create a New Record Record List Alias List Editor
Edit Data Centre
Data Types
. . .
X
Clear
Select All
Advanced Search
Go to Top⇡
Related items loading ...
Fetching Chart ...
Publication Additional Information Download
Publication Type
Thesis
Authorship
Yao, Shucai
Title
An Efficient Implementation of Guard-Based Synchronization for an Object-Oriented Programming Language
Year
2020
Publication Outlet
MacSphere Open Access Dissertations and Theses
DOI
https://hdl.handle.net/11375/25567
Citation
Yao, Shucai (2020) An Efficient Implementation of Guard-Based Synchronization for an Object-Oriented Programming Language, MacSphere Open Access Dissertations and Theses, http://hdl.handle.net/11375/25567
Abstract
Object-oriented programming has had a significant impact on software development because it provides programmers with a clear structure of a large system. It encapsulates data and operations into objects, groups objects into classes and dynamically binds operations to program code. With the emergence of multi-core processors, application developers have to explore concurrent programming to take full advantage of multi-core technology. However, when it comes to concurrent programming, object-oriented programming remains elusive as a useful programming tool. Most object-oriented programming languages do have some extensions for concurrency, but concurrency is implemented independently of objects: for example, concurrency in Java is managed separately with the Thread object. We employ a programming model called Lime that combines action systems tightly with object-oriented programming and implements concurrency by extending classes with actions and guarded methods. This provides programmers with a unified and straightforward design view for a concurrent object-oriented program. In this work, using coroutines with guarded methods and actions is proposed as a means of implementing the concurrency extension for objects. Mapping objects to coroutines can result in stack overflow as the number of objects increases. A dynamically segmented stack mechanism, which does not introduce runtime overhead, is implemented to support large-scale concurrency. Since Lime allows guarded methods and actions to "get stuck," a new user-level cooperative scheduler, and a fast coroutine context switch mechanism are implemented to improve the performance. Compared with the traditional segmented stack mechanisms, the new dynamically segmented stack mechanism gets equal performance for more common scenarios. Besides, it outperforms the contemporary stack mechanisms for deep recursion scenarios. Above all, Lime does not only provide the programmers with a unified and straightforward object-oriented programming model for concurrency, but also accomplishes a better performance than concurrent programming languages such as Erlang and Go, in fine-grained, highly concurrent benchmarks.
Program Affiliations
GWF: Global Water Futures
Project Affiliations
GWF-SSSWQM: Sensors and Sensing Systems for Water Quality Monitoring
Publication Stage
Published
Download Links
https://macsphere.mcmaster.ca/bitstream/11375/25567/2/Yao_Shucai_202007_PhD.pdf
© 2026 - WaterNet Version 2026-07-15
Global Water Futures Observatories
Powered by
G W F Net
T-2024-12-19-J1U3sTFIQTkyaJ2E9bFt0Npw Publication 1.0