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...

Celý popis

Uložené v:
Podrobná bibliografia
Vydané v:Proceedings of ACM on programming languages Ročník 2; číslo OOPSLA; s. 1 - 30
Hlavní autori: Faes, Michael, Gross, Thomas R.
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