Concurrency-aware object-oriented programming with roles
Object-oriented Programming has been effective in reducing code complexity in sequential programs, but in current practice, concurrent programs still present a number of challenges. We present here a model of object-oriented programming that identifies concurrent tasks and the relationship between o...
Uložené v:
| Vydané v: | Proceedings of ACM on programming languages Ročník 2; číslo OOPSLA; s. 1 - 30 |
|---|---|
| Hlavní autori: | , |
| Médium: | Journal Article |
| Jazyk: | English |
| Vydavateľské údaje: |
01.11.2018
|
| ISSN: | 2475-1421, 2475-1421 |
| On-line prístup: | Získať plný text |
| Tagy: |
Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
|
| Abstract | Object-oriented Programming has been effective in reducing code complexity in sequential programs, but in current practice, concurrent programs still present a number of challenges. We present here a model of object-oriented programming that identifies concurrent tasks and the relationship between objects and tasks , effectively making objects concurrency-aware . This awareness is formalized in a parallel programming model where every object plays a role in every task (e.g., the readonly role). When an object is shared with a new task, it adapts to the new sharing pattern by changing its roles, and therefore its behavior, i.e., the operations that can be performed with this object. This mechanism can be leveraged to prevent interfering accesses from concurrently executing tasks, and therefore makes parallel execution deterministic.
To this end, we present a role-based programming language that includes several novel concepts (role transitions, guarding, slicing) to enable practical, object-oriented deterministic parallel programming. We show that this language can be used to safely implement programs with a range of different parallel patterns. The implementations to 8 widely used programming problems achieve substantial parallel speedups and demonstrate that this approach delivers performance roughly on par with manually synchronized implementations. |
|---|---|
| AbstractList | Object-oriented Programming has been effective in reducing code complexity in sequential programs, but in current practice, concurrent programs still present a number of challenges. We present here a model of object-oriented programming that identifies concurrent tasks and the relationship between objects and tasks , effectively making objects concurrency-aware . This awareness is formalized in a parallel programming model where every object plays a role in every task (e.g., the readonly role). When an object is shared with a new task, it adapts to the new sharing pattern by changing its roles, and therefore its behavior, i.e., the operations that can be performed with this object. This mechanism can be leveraged to prevent interfering accesses from concurrently executing tasks, and therefore makes parallel execution deterministic.
To this end, we present a role-based programming language that includes several novel concepts (role transitions, guarding, slicing) to enable practical, object-oriented deterministic parallel programming. We show that this language can be used to safely implement programs with a range of different parallel patterns. The implementations to 8 widely used programming problems achieve substantial parallel speedups and demonstrate that this approach delivers performance roughly on par with manually synchronized implementations. |
| Author | Gross, Thomas R. Faes, Michael |
| Author_xml | – sequence: 1 givenname: Michael surname: Faes fullname: Faes, Michael organization: ETH Zurich, Switzerland – sequence: 2 givenname: Thomas R. surname: Gross fullname: Gross, Thomas R. organization: ETH Zurich, Switzerland |
| BookMark | eNplj0tLAzEYRYNUsNbiX5idq2gyySSZpQy-oOBG18OXV02ZJiWJlP57K3YhuroX7uHCuUSzmKJD6JqSW0p5d8daKTpCztC85bLDlLd09qtfoGUpG0II7RlXrJ8jNaRoPnN20Rww7CG7JumNMxWnHFyszja7nNYZttsQ180-1I8mp8mVK3TuYSpuecoFen98eBue8er16WW4X2HTkp5j7U0v-64XUkKnKWjrpVXcaSo0PU6GCWpa8FoqAKspU6r1VghlNLEEGFsg_PNrciolOz-aUKGGFGuGMI2UjN_m48n8yN_84Xc5bCEf_pFf90xZog |
| CitedBy_id | crossref_primary_10_1145_3485008 crossref_primary_10_4204_EPTCS_420_5 |
| Cites_doi | 10.1145/583960.583964 10.1145/2663171.2663188 10.1145/800228.806932 10.5555/646158.680008 10.1016/j.parco.2011.02.005 10.1145/28697.28722 10.1145/1094811.1094845 10.1145/2594291.2594312 10.1007/11901433_23 10.1145/1229428.1229443 10.1145/2034675.2034685 10.5555/822079.822712 10.1145/286936.286947 10.1145/165123.165164 10.1145/1640089.1640097 10.1145/4472.4478 10.1145/949305.949340 10.1145/582419.582440 10.1145/2442516.2442540 10.1145/2535838.2535842 10.1145/207110.207148 10.1145/1508244.1508255 10.1145/69558.69562 10.1145/2502323.2502326 10.1145/1040305.1040329 10.1145/1504176.1504190 10.1145/1297027.1297050 10.1145/291889.291893 10.1145/224964.224987 10.5555/7929 10.5555/1764606.1764620 10.1109/MC.2006.180 10.1145/1639950.1640060 10.1145/2543920 10.1145/582034.582042 10.1145/223982.224451 10.1007/978-3-540-70592-5_6 10.1145/83880.84528 10.1155/2010/521797 10.1145/109625.109636 10.5555/1624775.1624804 |
| ContentType | Journal Article |
| DBID | AAYXX CITATION |
| DOI | 10.1145/3276500 |
| DatabaseName | CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | CrossRef |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 2475-1421 |
| EndPage | 30 |
| ExternalDocumentID | 10_1145_3276500 |
| GroupedDBID | AAKMM AAYFX AAYXX ACM AEFXT AEJOY AIKLT AKRVB ALMA_UNASSIGNED_HOLDINGS CITATION EBS GUFHI LHSKQ M~E OK1 ROL |
| ID | FETCH-LOGICAL-c2094-bfc97959677a5b1abdf7d84eb16b1c97c361c2afb78aadb13882fd668cb0d0a33 |
| ISSN | 2475-1421 |
| IngestDate | Sat Nov 29 07:50:06 EST 2025 Tue Nov 18 21:09:17 EST 2025 |
| IsDoiOpenAccess | false |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | OOPSLA |
| Language | English |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-c2094-bfc97959677a5b1abdf7d84eb16b1c97c361c2afb78aadb13882fd668cb0d0a33 |
| OpenAccessLink | https://dl.acm.org/doi/pdf/10.1145/3276500 |
| PageCount | 30 |
| ParticipantIDs | crossref_citationtrail_10_1145_3276500 crossref_primary_10_1145_3276500 |
| PublicationCentury | 2000 |
| PublicationDate | 2018-11-01 |
| PublicationDateYYYYMMDD | 2018-11-01 |
| PublicationDate_xml | – month: 11 year: 2018 text: 2018-11-01 day: 01 |
| PublicationDecade | 2010 |
| PublicationTitle | Proceedings of ACM on programming languages |
| PublicationYear | 2018 |
| References | e_1_2_2_4_1 e_1_2_2_24_1 e_1_2_2_49_1 e_1_2_2_6_1 e_1_2_2_22_1 e_1_2_2_20_1 e_1_2_2_2_1 e_1_2_2_41_1 e_1_2_2_43_1 e_1_2_2_8_1 e_1_2_2_28_1 e_1_2_2_45_1 e_1_2_2_26_1 e_1_2_2_47_1 e_1_2_2_13_1 Boyland John (e_1_2_2_15_1) e_1_2_2_30_1 e_1_2_2_51_1 e_1_2_2_19_1 e_1_2_2_32_1 e_1_2_2_53_1 e_1_2_2_17_1 e_1_2_2_34_1 e_1_2_2_55_1 Minh Chi Cao (e_1_2_2_18_1) 2008 e_1_2_2_36_1 Baduel Laurent (e_1_2_2_7_1) Bocchino Robert L. (e_1_2_2_12_1) 2009 e_1_2_2_25_1 e_1_2_2_48_1 e_1_2_2_5_1 e_1_2_2_21_1 e_1_2_2_1_1 e_1_2_2_3_1 e_1_2_2_40_1 e_1_2_2_42_1 e_1_2_2_9_1 e_1_2_2_29_1 e_1_2_2_44_1 e_1_2_2_27_1 e_1_2_2_46_1 Robert (e_1_2_2_11_1) e_1_2_2_14_1 e_1_2_2_37_1 e_1_2_2_39_1 e_1_2_2_10_1 e_1_2_2_52_1 e_1_2_2_31_1 e_1_2_2_54_1 e_1_2_2_33_1 e_1_2_2_16_1 e_1_2_2_35_1 e_1_2_2_50_1 Faes Michael (e_1_2_2_23_1) Lu Li (e_1_2_2_38_1) |
| References_xml | – ident: e_1_2_2_52_1 doi: 10.1145/583960.583964 – volume-title: Proceedings of The IEEE International Symposium on Workload Characterization (IISWC ’08) year: 2008 ident: e_1_2_2_18_1 – ident: e_1_2_2_40_1 doi: 10.1145/2663171.2663188 – ident: e_1_2_2_8_1 doi: 10.1145/800228.806932 – ident: e_1_2_2_19_1 doi: 10.5555/646158.680008 – ident: e_1_2_2_25_1 doi: 10.1016/j.parco.2011.02.005 – ident: e_1_2_2_55_1 doi: 10.1145/28697.28722 – ident: e_1_2_2_54_1 doi: 10.1145/1094811.1094845 – ident: e_1_2_2_34_1 doi: 10.1145/2594291.2594312 – ident: e_1_2_2_32_1 doi: 10.1007/11901433_23 – ident: e_1_2_2_53_1 doi: 10.1145/1229428.1229443 – ident: e_1_2_2_39_1 doi: 10.1145/2034675.2034685 – volume-title: Proceedings of the 1st USENIX Conference on Hot Topics in Parallelism (HotPar ’09) year: 2009 ident: e_1_2_2_12_1 – ident: e_1_2_2_3_1 – ident: e_1_2_2_48_1 doi: 10.5555/822079.822712 – ident: e_1_2_2_20_1 doi: 10.1145/286936.286947 – ident: e_1_2_2_29_1 doi: 10.1145/165123.165164 – ident: e_1_2_2_13_1 doi: 10.1145/1640089.1640097 – ident: e_1_2_2_27_1 doi: 10.1145/4472.4478 – ident: e_1_2_2_22_1 – ident: e_1_2_2_28_1 doi: 10.1145/949305.949340 – ident: e_1_2_2_41_1 – volume-title: Proceedings of the 30th International Workshop on Languages and Compilers for Parallel Computing (LCPC ’17) ident: e_1_2_2_23_1 – ident: e_1_2_2_9_1 – ident: e_1_2_2_14_1 doi: 10.1145/582419.582440 – ident: e_1_2_2_30_1 doi: 10.1145/2442516.2442540 – ident: e_1_2_2_35_1 doi: 10.1145/2535838.2535842 – ident: e_1_2_2_42_1 doi: 10.1145/207110.207148 – volume-title: Proceedings of the 25th European Conference on Object-Oriented Programming (ECOOP ’11) ident: e_1_2_2_11_1 – ident: e_1_2_2_21_1 doi: 10.1145/1508244.1508255 – ident: e_1_2_2_6_1 doi: 10.1145/69558.69562 – ident: e_1_2_2_33_1 doi: 10.1145/2502323.2502326 – volume-title: Proceedings of the 25th International Conference on Distributed Computing (DISC ’11) ident: e_1_2_2_38_1 – ident: e_1_2_2_51_1 – ident: e_1_2_2_16_1 doi: 10.1145/1040305.1040329 – ident: e_1_2_2_4_1 doi: 10.1145/1504176.1504190 – ident: e_1_2_2_10_1 doi: 10.1145/1297027.1297050 – ident: e_1_2_2_43_1 doi: 10.1145/291889.291893 – ident: e_1_2_2_44_1 doi: 10.1145/224964.224987 – ident: e_1_2_2_1_1 doi: 10.5555/7929 – ident: e_1_2_2_26_1 doi: 10.5555/1764606.1764620 – ident: e_1_2_2_37_1 doi: 10.1109/MC.2006.180 – ident: e_1_2_2_49_1 doi: 10.1145/1639950.1640060 – volume-title: Grid Computing: Software Environments and Tools ident: e_1_2_2_7_1 – ident: e_1_2_2_50_1 doi: 10.1145/2543920 – ident: e_1_2_2_45_1 doi: 10.1145/582034.582042 – ident: e_1_2_2_46_1 doi: 10.1145/223982.224451 – ident: e_1_2_2_5_1 – volume-title: Static Analysis (SAS ’03) ident: e_1_2_2_15_1 – ident: e_1_2_2_47_1 doi: 10.1007/978-3-540-70592-5_6 – ident: e_1_2_2_2_1 doi: 10.1145/83880.84528 – ident: e_1_2_2_24_1 – ident: e_1_2_2_17_1 doi: 10.1155/2010/521797 – ident: e_1_2_2_36_1 doi: 10.1145/109625.109636 – ident: e_1_2_2_31_1 doi: 10.5555/1624775.1624804 |
| SSID | ssj0001934839 |
| Score | 2.0677047 |
| Snippet | Object-oriented Programming has been effective in reducing code complexity in sequential programs, but in current practice, concurrent programs still present a... |
| SourceID | crossref |
| SourceType | Enrichment Source Index Database |
| StartPage | 1 |
| Title | Concurrency-aware object-oriented programming with roles |
| Volume | 2 |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVHPJ databaseName: ROAD: Directory of Open Access Scholarly Resources customDbUrl: eissn: 2475-1421 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0001934839 issn: 2475-1421 databaseCode: M~E dateStart: 20170101 isFulltext: true titleUrlDefault: https://road.issn.org providerName: ISSN International Centre |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1LS8QwEA6-Dl58i296EC-SddOmTXpcFsXDvvDF3pYkTUDQrrg-L_52J222G1ZBPXgJJU1K2y_MTCbfzCB0aA9vRAwIcEk0pqGhWOhU4ESR2ICZxOoFN-emxTod3u-nPZdQYVSUE2B5zt_e0od_hRr6AGwbOvsHuKuHQgdcA-jQAuzQ_gr45jBXRdIl9Y7FqyV2DaV1tuChTWlsDUzHybqv_LCWYjjyzdRepdYKpkej2baHCv68sZ9zEj4iSoHj8_ALXo8ry14ykY4var6fgXAXcFeJo5CyGBNaxjPX9Dd9Tp6G3rLpdnuXrYYnIImnacsDma8ynNp0F1HIwHisT9TU-Gh-SntVnMIywjoeuImzaD5kcWpldfvDc7ulEeVFfbnq3ctQajv3xM31bBTP2LhaQUtulxA0SnRX0YzO19DyuAJH4ATyOuJfwA6mwA480AILdlCAvYGuz06vmufY1cLAKoQdOJZGpbYsfMKYiCURMjMs4xQ0bSIJ3FJRQlQojGRciEySCHZOJksSrmQ9q4so2kRz-TDXWyjIUq4Z0aBdmKbGRp_EINaFUcpIyk2yjY7GXz9QLlG8rVdyN5j6xdsoqAY-lLlRpofs_DxkFy1Oltsemnt6fNb7aEG9PN2OHg8K9D4BO5BW1A |
| linkProvider | ISSN International Centre |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Concurrency-aware+object-oriented+programming+with+roles&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Faes%2C+Michael&rft.au=Gross%2C+Thomas+R.&rft.date=2018-11-01&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=2&rft.issue=OOPSLA&rft.spage=1&rft.epage=30&rft_id=info:doi/10.1145%2F3276500&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3276500 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon |