Software Open Access

Can Advanced Type Systems Be Usable? An Empirical Study of Ownership, Assets, and Typestate in Obsidian (Artifact)

Coblenz, Michael; Aldrich, Jonathan; Myers, Brad A.; Sunshine, Joshua


DCAT Export

<?xml version='1.0' encoding='utf-8'?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:adms="http://www.w3.org/ns/adms#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dct="http://purl.org/dc/terms/" xmlns:dctype="http://purl.org/dc/dcmitype/" xmlns:dcat="http://www.w3.org/ns/dcat#" xmlns:duv="http://www.w3.org/ns/duv#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:frapo="http://purl.org/cerif/frapo/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:gsp="http://www.opengis.net/ont/geosparql#" xmlns:locn="http://www.w3.org/ns/locn#" xmlns:org="http://www.w3.org/ns/org#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:prov="http://www.w3.org/ns/prov#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:schema="http://schema.org/" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:vcard="http://www.w3.org/2006/vcard/ns#" xmlns:wdrs="http://www.w3.org/2007/05/powder-s#">
  <rdf:Description rdf:about="https://doi.org/10.5281/zenodo.4035150">
    <rdf:type rdf:resource="http://www.w3.org/ns/dcat#Dataset"/>
    <dct:type rdf:resource="http://purl.org/dc/dcmitype/Software"/>
    <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#anyURI">https://doi.org/10.5281/zenodo.4035150</dct:identifier>
    <foaf:page rdf:resource="https://doi.org/10.5281/zenodo.4035150"/>
    <dct:creator>
      <rdf:Description rdf:about="http://orcid.org/0000-0002-9369-4069">
        <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
        <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0000-0002-9369-4069</dct:identifier>
        <foaf:name>Coblenz, Michael</foaf:name>
        <foaf:givenName>Michael</foaf:givenName>
        <foaf:familyName>Coblenz</foaf:familyName>
        <org:memberOf>
          <foaf:Organization>
            <foaf:name>Carnegie Mellon University</foaf:name>
          </foaf:Organization>
        </org:memberOf>
      </rdf:Description>
    </dct:creator>
    <dct:creator>
      <rdf:Description rdf:about="http://orcid.org/0000-0003-0631-5591">
        <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
        <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0000-0003-0631-5591</dct:identifier>
        <foaf:name>Aldrich, Jonathan</foaf:name>
        <foaf:givenName>Jonathan</foaf:givenName>
        <foaf:familyName>Aldrich</foaf:familyName>
        <org:memberOf>
          <foaf:Organization>
            <foaf:name>Carnegie Mellon University</foaf:name>
          </foaf:Organization>
        </org:memberOf>
      </rdf:Description>
    </dct:creator>
    <dct:creator>
      <rdf:Description rdf:about="http://orcid.org/0000-0002-4769-0219">
        <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
        <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0000-0002-4769-0219</dct:identifier>
        <foaf:name>Myers, Brad A.</foaf:name>
        <foaf:givenName>Brad A.</foaf:givenName>
        <foaf:familyName>Myers</foaf:familyName>
        <org:memberOf>
          <foaf:Organization>
            <foaf:name>Carnegie Mellon University</foaf:name>
          </foaf:Organization>
        </org:memberOf>
      </rdf:Description>
    </dct:creator>
    <dct:creator>
      <rdf:Description rdf:about="http://orcid.org/0000-0002-9672-5297">
        <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
        <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0000-0002-9672-5297</dct:identifier>
        <foaf:name>Sunshine, Joshua</foaf:name>
        <foaf:givenName>Joshua</foaf:givenName>
        <foaf:familyName>Sunshine</foaf:familyName>
        <org:memberOf>
          <foaf:Organization>
            <foaf:name>Carnegie Mellon University</foaf:name>
          </foaf:Organization>
        </org:memberOf>
      </rdf:Description>
    </dct:creator>
    <dct:title>Can Advanced Type Systems Be Usable? An Empirical Study of Ownership, Assets, and Typestate in Obsidian (Artifact)</dct:title>
    <dct:publisher>
      <foaf:Agent>
        <foaf:name>Zenodo</foaf:name>
      </foaf:Agent>
    </dct:publisher>
    <dct:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#gYear">2020</dct:issued>
    <dcat:keyword>typestate</dcat:keyword>
    <dcat:keyword>linear types</dcat:keyword>
    <dcat:keyword>ownership</dcat:keyword>
    <dcat:keyword>assets</dcat:keyword>
    <dcat:keyword>permissions</dcat:keyword>
    <dcat:keyword>blockchain</dcat:keyword>
    <dcat:keyword>smart contracts</dcat:keyword>
    <dcat:keyword>empirical studies of programmers</dcat:keyword>
    <dcat:keyword>empirical studies of programming languages</dcat:keyword>
    <frapo:isFundedBy rdf:resource="info:eu-repo/grantAgreement/NSF/CISE/OAD/1423054/"/>
    <schema:funder>
      <foaf:Organization>
        <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#string">10.13039/100000001</dct:identifier>
        <foaf:name>National Science Foundation</foaf:name>
      </foaf:Organization>
    </schema:funder>
    <dct:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2020-09-17</dct:issued>
    <dct:language rdf:resource="http://publications.europa.eu/resource/authority/language/ENG"/>
    <owl:sameAs rdf:resource="https://zenodo.org/record/4035150"/>
    <adms:identifier>
      <adms:Identifier>
        <skos:notation rdf:datatype="http://www.w3.org/2001/XMLSchema#anyURI">https://zenodo.org/record/4035150</skos:notation>
        <adms:schemeAgency>url</adms:schemeAgency>
      </adms:Identifier>
    </adms:identifier>
    <dct:isVersionOf rdf:resource="https://doi.org/10.5281/zenodo.4035149"/>
    <dct:isPartOf rdf:resource="https://zenodo.org/communities/empirical-software-engineering"/>
    <dct:description>&lt;p&gt;&lt;strong&gt;Abstract&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Some blockchain programs (smart contracts) have included serious security vulnerabilities. Obsidian is a new typestate-oriented programming language that uses a strong type system to rule out some of these vulnerabilities. Although Obsidian was designed to promote &lt;em&gt;usability&lt;/em&gt;&amp;nbsp;to make it as easy as possible to write programs, strong type systems can cause a language to be difficult to use. In particular, ownership, typestate, and assets, which Obsidian uses to provide safety guarantees, have not seen broad adoption together in popular languages and result in significant usability challenges. We performed an empirical study with 20 participants comparing Obsidian to Solidity, which is the language most commonly used for writing smart contracts today. We observed that Obsidian participants were able to successfully complete more of the programming tasks than the Solidity participants. We also found that asset-related bugs, which Obsidian detects at compile time, were commonly accidentally inserted by the Solidity participants.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Artifact&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;The artifact supports replication of the experiment described in the paper. For instructions regarding how to use the artifact, please see the included artifact evaluation guide.&lt;/p&gt;</dct:description>
    <dct:description>Additional funding sources: NSA award H9823018D0008 NSF award CCF1901033 USAF award FA8702-15-D-0002 IBM Ripple</dct:description>
    <dct:accessRights rdf:resource="http://publications.europa.eu/resource/authority/access-right/PUBLIC"/>
    <dct:accessRights>
      <dct:RightsStatement rdf:about="info:eu-repo/semantics/openAccess">
        <rdfs:label>Open Access</rdfs:label>
      </dct:RightsStatement>
    </dct:accessRights>
    <dcat:distribution>
      <dcat:Distribution>
        <dct:rights>
          <dct:RightsStatement rdf:about="http://www.opensource.org/licenses/bsd-license.php">
            <rdfs:label>BSD licenses (New and Simplified)</rdfs:label>
          </dct:RightsStatement>
        </dct:rights>
        <dcat:accessURL rdf:resource="https://doi.org/10.5281/zenodo.4035150"/>
      </dcat:Distribution>
    </dcat:distribution>
    <dcat:distribution>
      <dcat:Distribution>
        <dcat:accessURL rdf:resource="https://doi.org/10.5281/zenodo.4035150"/>
        <dcat:byteSize>61472139</dcat:byteSize>
        <dcat:downloadURL rdf:resource="https://zenodo.org/record/4035150/files/Obsidian-evaluation-OOPSLA-2020.zip"/>
        <dcat:mediaType>application/zip</dcat:mediaType>
      </dcat:Distribution>
    </dcat:distribution>
  </rdf:Description>
  <foaf:Project rdf:about="info:eu-repo/grantAgreement/NSF/CISE/OAD/1423054/">
    <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#string">1423054</dct:identifier>
    <dct:title>TWC: Small: Empirical Evaluation of the Usability and Security Implications of Application Programming Interface Design</dct:title>
    <frapo:isAwardedBy>
      <foaf:Organization>
        <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#string">10.13039/100000001</dct:identifier>
        <foaf:name>National Science Foundation</foaf:name>
      </foaf:Organization>
    </frapo:isAwardedBy>
  </foaf:Project>
</rdf:RDF>
88
8
views
downloads
All versions This version
Views 8888
Downloads 88
Data volume 491.8 MB491.8 MB
Unique views 8181
Unique downloads 66

Share

Cite as