Channels as Objects in Concurrent Object-Oriented Programming

There is often a sort of a protocol associated to each class, stating when and how certain methods should be called. Given that this protocol is, if at all, described in the documentation accompanying the class, current mainstream object-oriented languages cannot provide for the verification of clie...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Electronic proceedings in theoretical computer science Jg. 69; H. Proc. PLACES 2010; S. 12 - 28
Hauptverfasser: Campos, Joana, Vasconcelos, Vasco T.
Format: Journal Article
Sprache:Englisch
Veröffentlicht: Open Publishing Association 18.10.2011
ISSN:2075-2180, 2075-2180
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Abstract There is often a sort of a protocol associated to each class, stating when and how certain methods should be called. Given that this protocol is, if at all, described in the documentation accompanying the class, current mainstream object-oriented languages cannot provide for the verification of client code adherence against the sought class behaviour. We have defined a class-based concurrent object-oriented language that formalises such protocols in the form of usage types. Usage types are attached to class definitions, allowing for the specification of (1) the available methods, (2) the tests clients must perform on the result of methods, and (3) the object status - linear or shared - all of which depend on the object's state. Our work extends the recent approach on modular session types by eliminating channel operations, and defining the method call as the single communication primitive in both sequential and concurrent settings. In contrast to previous works, we define a single category for objects, instead of distinct categories for linear and for shared objects, and let linear objects evolve into shared ones. We introduce a standard sync qualifier to prevent thread interference in certain operations on shared objects. We formalise the language syntax, the operational semantics, and a type system that enforces by static typing that methods are called only when available, and by a single client if so specified in the usage type. We illustrate the language via a complete example.
AbstractList There is often a sort of a protocol associated to each class, stating when and how certain methods should be called. Given that this protocol is, if at all, described in the documentation accompanying the class, current mainstream object-oriented languages cannot provide for the verification of client code adherence against the sought class behaviour. We have defined a class-based concurrent object-oriented language that formalises such protocols in the form of usage types. Usage types are attached to class definitions, allowing for the specification of (1) the available methods, (2) the tests clients must perform on the result of methods, and (3) the object status - linear or shared - all of which depend on the object's state. Our work extends the recent approach on modular session types by eliminating channel operations, and defining the method call as the single communication primitive in both sequential and concurrent settings. In contrast to previous works, we define a single category for objects, instead of distinct categories for linear and for shared objects, and let linear objects evolve into shared ones. We introduce a standard sync qualifier to prevent thread interference in certain operations on shared objects. We formalise the language syntax, the operational semantics, and a type system that enforces by static typing that methods are called only when available, and by a single client if so specified in the usage type. We illustrate the language via a complete example.
Author Campos, Joana
Vasconcelos, Vasco T.
Author_xml – sequence: 1
  givenname: Joana
  surname: Campos
  fullname: Campos, Joana
  organization: University of Lisbon
– sequence: 2
  givenname: Vasco T.
  surname: Vasconcelos
  fullname: Vasconcelos, Vasco T.
  organization: University of Lisbon
BookMark eNpNkEtLAzEUhYNUsNZu_AWzFqbmcZOZLFzIULVQaMG6Dsnkpk5pM5KMC_-91RbxbM5j8S3ONRnFPiIht4zOgFO4n683zetM6Rm_IGNOK1lyVtPRv3xFpjnv6FFCc9BqTB6adxsj7nNhc7FyO2yHXHSxaPrYfqaEcTiv5Sp1x4a-WKd-m-zh0MXtDbkMdp9xevYJeXuab5qXcrl6XjSPy7JltRpKCRS8oCiDDx6oc0IHZauAyvEagQEgUMYYOIbSS-m9Re91JZ2oFQgQE7I4cX1vd-YjdQebvkxvO_M79GlrbBq6do9GKrCyCr5itQAnlfOa0zZIpiRIZfHIujux2tTnnDD88Rg1Pz-a3x-N0oaLb3YlZhs
Cites_doi 10.1016/j.tcs.2006.06.028
10.1007/978-3-642-01918-0_4
10.1145/1217935.1217953
10.1007/3-540-57208-2_35
10.1016/S1571-0661(05)80382-2
10.1145/1370175.1370213
10.1007/s00236-005-0177-z
10.1145/1328438.1328472
10.1145/1599410.1599411
10.1007/BFb0053567
10.1007/3-540-49099-X_7
10.1007/11580850_16
10.1109/TSE.1986.6312929
10.1145/1706299.1706335
10.1007/11785477_20
10.1007/978-3-540-24836-1_5
10.1007/3-540-58184-7_118
ContentType Journal Article
DBID AAYXX
CITATION
DOA
DOI 10.4204/EPTCS.69.2
DatabaseName CrossRef
DOAJ Directory of Open Access Journals
DatabaseTitle CrossRef
DatabaseTitleList
Database_xml – sequence: 1
  dbid: DOA
  name: DOAJ Directory of Open Access Journals
  url: https://www.doaj.org/
  sourceTypes: Open Website
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 2075-2180
EndPage 28
ExternalDocumentID oai_doaj_org_article_564a57fd71834b56bd920cf5165456ae
10_4204_EPTCS_69_2
GroupedDBID 5VS
AAYXX
ADBBV
ALMA_UNASSIGNED_HOLDINGS
BCNDV
C1A
CITATION
E3Z
GROUPED_DOAJ
KQ8
M~E
OK1
ID FETCH-LOGICAL-c186t-5404d30e5fdfd40bb39f6a7fe6b28e4144e401114b1e5d55ddaedd975b3864343
IEDL.DBID DOA
ISICitedReferencesCount 4
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000219675900003&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
ISSN 2075-2180
IngestDate Fri Oct 03 12:50:25 EDT 2025
Sat Nov 29 02:04:59 EST 2025
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed false
IsScholarly true
Issue Proc. PLACES 2010
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-c186t-5404d30e5fdfd40bb39f6a7fe6b28e4144e401114b1e5d55ddaedd975b3864343
OpenAccessLink https://doaj.org/article/564a57fd71834b56bd920cf5165456ae
PageCount 17
ParticipantIDs doaj_primary_oai_doaj_org_article_564a57fd71834b56bd920cf5165456ae
crossref_primary_10_4204_EPTCS_69_2
PublicationCentury 2000
PublicationDate 2011-10-18
PublicationDateYYYYMMDD 2011-10-18
PublicationDate_xml – month: 10
  year: 2011
  text: 2011-10-18
  day: 18
PublicationDecade 2010
PublicationTitle Electronic proceedings in theoretical computer science
PublicationYear 2011
Publisher Open Publishing Association
Publisher_xml – name: Open Publishing Association
References Cormac Flanagan (flanaganA99) 1999; 1576
Kohei Honda (HondaK:lanptd) 1998; 1381
Mariangiola Dezani-Ciancaglini (DezaniCiancagliniM:disool) 2005; 3705
Dimitris Mostrous (Mostrous05moose) 2005
Vasco T. Vasconcelos (VasconcelosV:session-types-functional) 2009
Vasco T. Vasconcelos (VasconcelosVT:typmfl) 2006; 368
K. Honda (HondaK:mulast) 2008
Oscar Nierstrasz (nierstrasz:regular-types) 1995
Manuel Fähndrich (FahndrichM:lansfr) 2006
Kohei Honda (HondaK:typdi) 1993; 715
Joana Campos (campos:linear-shared-objects-concurrent-programming) 2010
Kevin Bierhoff (BierhoffAldrich:plural) 2008
Antonio Vallecillo (VallecilloVasconcelosEtal:typing-behavior-objects) 2006; 73
Vasco T. Vasconcelos (vasconcelos:fundamental-sessions) 2009; 5569
Matthias Neubauer (NeubauerM:impst) 2004; 3057
Simon Gay (gay.vasconcelos.etal_modular-session-types) 2010
Mariangiola Dezani-Ciancaglini (DezaniCiancagliniM:sestoo) 2006; 4067
Simon J. Gay (GaySJ:substp) 2005; 42
Robert E. Strom (StromYemini:typestates) 1986; 12
Kaku Takeuchi (HondaK:intblt) 1994; 817
Filipe Militão (MilitaoF:yak) 2008
References_xml – volume: 368
  start-page: 64
  year: 2006
  ident: VasconcelosVT:typmfl
  article-title: Typechecking a Multithreaded Functional Language with Session Types
  publication-title: Theoretical Computer Science
  doi: 10.1016/j.tcs.2006.06.028
– volume: 5569
  start-page: 158
  volume-title: SFM
  year: 2009
  ident: vasconcelos:fundamental-sessions
  doi: 10.1007/978-3-642-01918-0_4
– start-page: 177
  volume-title: EuroSys
  year: 2006
  ident: FahndrichM:lansfr
  article-title: Language Support for Fast and Reliable Message-based Communication in Singularity OS
  doi: 10.1145/1217935.1217953
– volume: 715
  start-page: 509
  volume-title: CONCUR'93
  year: 1993
  ident: HondaK:typdi
  article-title: Types for Dyadic Interaction
  doi: 10.1007/3-540-57208-2_35
– volume: 73
  start-page: 583
  issue: 4
  year: 2006
  ident: VallecilloVasconcelosEtal:typing-behavior-objects
  article-title: Typing the Behavior of Objects and Components using Session Types
  publication-title: Fundamenta Informaticæ
  doi: 10.1016/S1571-0661(05)80382-2
– start-page: 971
  volume-title: ICSE Companion '08
  year: 2008
  ident: BierhoffAldrich:plural
  article-title: PLURAL: checking protocol compliance under aliasing
  doi: 10.1145/1370175.1370213
– volume: 42
  start-page: 191
  year: 2005
  ident: GaySJ:substp
  article-title: Subtyping for Session Types in the Pi Calculus
  publication-title: Acta Informatica
  doi: 10.1007/s00236-005-0177-z
– start-page: 273
  volume-title: POPL'08
  year: 2008
  ident: HondaK:mulast
  article-title: Multiparty Asynchronous Session Types
  doi: 10.1145/1328438.1328472
– start-page: 99
  volume-title: Object-Oriented Software Composition
  year: 1995
  ident: nierstrasz:regular-types
  article-title: Regular types for active objects
– start-page: 1
  volume-title: PPDP'09
  year: 2009
  ident: VasconcelosV:session-types-functional
  article-title: Session Types for Linear Multithreaded Functional Programming
  doi: 10.1145/1599410.1599411
– volume-title: Design and Implementation of a Behaviorally Typed Programming System for Web Services
  year: 2008
  ident: MilitaoF:yak
– volume: 1381
  start-page: 122
  volume-title: ESOP'98
  year: 1998
  ident: HondaK:lanptd
  article-title: Language Primitives and Type Discipline for Structured Communication-Based Programming
  doi: 10.1007/BFb0053567
– volume: 1576
  start-page: 91
  volume-title: ESOP'99
  year: 1999
  ident: flanaganA99
  article-title: Types for Safe Locking
  doi: 10.1007/3-540-49099-X_7
– volume: 3705
  start-page: 299
  volume-title: TGC'05
  year: 2005
  ident: DezaniCiancagliniM:disool
  article-title: A Distributed Object-Oriented Language with Session Types
  doi: 10.1007/11580850_16
– volume: 12
  start-page: 157
  issue: 1
  year: 1986
  ident: StromYemini:typestates
  article-title: Typestate: A programming language concept for enhancing software reliability
  publication-title: IEEE Transactions on Software Engeneering
  doi: 10.1109/TSE.1986.6312929
– volume-title: Moose: a Minimal Object Oriented Language with Session Types
  year: 2005
  ident: Mostrous05moose
– volume-title: Linear and Shared Objects in Concurrent Programming
  year: 2010
  ident: campos:linear-shared-objects-concurrent-programming
– start-page: 299
  volume-title: POPL'10
  year: 2010
  ident: gay.vasconcelos.etal_modular-session-types
  article-title: Modular Session Types for Distributed Object-Oriented Programming
  doi: 10.1145/1706299.1706335
– volume: 4067
  start-page: 328
  volume-title: ECOOP'06
  year: 2006
  ident: DezaniCiancagliniM:sestoo
  article-title: Session Types for Object-Oriented Languages
  doi: 10.1007/11785477_20
– volume: 3057
  start-page: 56
  volume-title: PADL'04
  year: 2004
  ident: NeubauerM:impst
  article-title: An Implementation of Session Types
  doi: 10.1007/978-3-540-24836-1_5
– volume: 817
  start-page: 398
  volume-title: Parle'94
  year: 1994
  ident: HondaK:intblt
  article-title: An Interaction-Based Language and its Typing System
  doi: 10.1007/3-540-58184-7_118
SSID ssj0000392496
Score 1.8241707
Snippet There is often a sort of a protocol associated to each class, stating when and how certain methods should be called. Given that this protocol is, if at all,...
SourceID doaj
crossref
SourceType Open Website
Index Database
StartPage 12
Title Channels as Objects in Concurrent Object-Oriented Programming
URI https://doaj.org/article/564a57fd71834b56bd920cf5165456ae
Volume 69
WOSCitedRecordID wos000219675900003&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVAON
  databaseName: DOAJ Directory of Open Access Journals
  customDbUrl:
  eissn: 2075-2180
  dateEnd: 20201231
  omitProxy: false
  ssIdentifier: ssj0000392496
  issn: 2075-2180
  databaseCode: DOA
  dateStart: 20090101
  isFulltext: true
  titleUrlDefault: https://www.doaj.org/
  providerName: Directory of Open Access Journals
– providerCode: PRVHPJ
  databaseName: ROAD: Directory of Open Access Scholarly Resources
  customDbUrl:
  eissn: 2075-2180
  dateEnd: 99991231
  omitProxy: false
  ssIdentifier: ssj0000392496
  issn: 2075-2180
  databaseCode: M~E
  dateStart: 20090101
  isFulltext: true
  titleUrlDefault: https://road.issn.org
  providerName: ISSN International Centre
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwrV09T8MwELVQxcDCN-JblmBN68QfsUeoWrHQVqJI3SI7tqUOpKgJjPx2znGKysTCksGyouidc-eXnN9D6B6irLQRNDHS-wQWhU4kl0BVvFRalo4bGc0m8slELhZqtmX1FXrCojxwBG7ABdM89xZyKGWGC2NVRkrPwykcLrQL2ZfkaotMtTmYBl7ROstBTUygjpGoTcoywgaj2Xz40heqn_2qRlui_W11GR-i_W5biB_i4xyhHVcdo4ON5QLu3sATFH7Dh86UGusaT034iFLjZYWHq6qMSkvdaDINAsawncSz2IH1BjXqFL2OR_PhU9I5ICRlKkUTuhaYpcRxb71lxBiqvNC5d8Jk0jEgQ44Fs3hmUsct59ZqZ63KuaFShDOjZ6hXrSp3jrBzQA6MtFlJc8CRKKtLnhpjKRNOkewC3W2QKN6j0EUBBCHgVbR4FUIVMOsxgPQzI4hTtwMQsqILWfFXyC7_4yZXaC_r2vFSeY16zfrD3aDd8rNZ1uvbdjXA9flr9A0GT7gy
linkProvider Directory of Open Access Journals
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=Channels+as+Objects+in+Concurrent+Object-Oriented+Programming&rft.jtitle=Electronic+proceedings+in+theoretical+computer+science&rft.au=Campos%2C+Joana&rft.au=Vasconcelos%2C+Vasco+T.&rft.date=2011-10-18&rft.issn=2075-2180&rft.eissn=2075-2180&rft.volume=69&rft.spage=12&rft.epage=28&rft_id=info:doi/10.4204%2FEPTCS.69.2&rft.externalDBID=n%2Fa&rft.externalDocID=10_4204_EPTCS_69_2
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2075-2180&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2075-2180&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2075-2180&client=summon