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...
Gespeichert in:
| Veröffentlicht in: | Electronic proceedings in theoretical computer science Jg. 69; H. Proc. PLACES 2010; S. 12 - 28 |
|---|---|
| Hauptverfasser: | , |
| 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 |