{ "access": { "embargo": { "active": false, "reason": null }, "files": "public", "record": "public", "status": "open" }, "created": "2020-09-29T00:42:48.693565+00:00", "custom_fields": {}, "deletion_status": { "is_deleted": false, "status": "P" }, "files": { "count": 2, "enabled": true, "entries": { "OOPSLA20-typer-artifact.tar.gz": { "checksum": "md5:ab3395366668d7daad4b0a23b13ce406", "ext": "gz", "id": "0bb8f47b-3546-4ace-8bf8-b334dfebe12b", "key": "OOPSLA20-typer-artifact.tar.gz", "metadata": null, "mimetype": "application/gzip", "size": 35989789 }, "artifact-overview.pdf": { "checksum": "md5:158f5e267c31453720aa1a702b1b48a7", "ext": "pdf", "id": "6dd204b4-6f5b-4cff-af1f-fb4214f527c6", "key": "artifact-overview.pdf", "metadata": null, "mimetype": "application/pdf", "size": 297432 } }, "order": [], "total_bytes": 36287221 }, "id": "4037278", "is_draft": false, "is_published": true, "links": { "access": "https://zenodo.org/api/records/4037278/access", "access_links": "https://zenodo.org/api/records/4037278/access/links", "access_request": "https://zenodo.org/api/records/4037278/access/request", "access_users": "https://zenodo.org/api/records/4037278/access/users", "archive": "https://zenodo.org/api/records/4037278/files-archive", "archive_media": "https://zenodo.org/api/records/4037278/media-files-archive", "communities": "https://zenodo.org/api/records/4037278/communities", "communities-suggestions": "https://zenodo.org/api/records/4037278/communities-suggestions", "doi": "https://doi.org/10.5281/zenodo.4037278", "draft": "https://zenodo.org/api/records/4037278/draft", "files": "https://zenodo.org/api/records/4037278/files", "latest": "https://zenodo.org/api/records/4037278/versions/latest", "latest_html": "https://zenodo.org/records/4037278/latest", "media_files": "https://zenodo.org/api/records/4037278/media-files", "parent": "https://zenodo.org/api/records/4037277", "parent_doi": "https://zenodo.org/doi/10.5281/zenodo.4037277", "parent_html": "https://zenodo.org/records/4037277", "requests": "https://zenodo.org/api/records/4037278/requests", "reserve_doi": "https://zenodo.org/api/records/4037278/draft/pids/doi", "self": "https://zenodo.org/api/records/4037278", "self_doi": "https://zenodo.org/doi/10.5281/zenodo.4037278", "self_html": "https://zenodo.org/records/4037278", "self_iiif_manifest": "https://zenodo.org/api/iiif/record:4037278/manifest", "self_iiif_sequence": "https://zenodo.org/api/iiif/record:4037278/sequence/default", "versions": "https://zenodo.org/api/records/4037278/versions" }, "media_files": { "count": 0, "enabled": false, "entries": {}, "order": [], "total_bytes": 0 }, "metadata": { "creators": [ { "affiliations": [ { "name": "Turcotte" } ], "person_or_org": { "family_name": "Alexi", "name": "Alexi", "type": "personal" } }, { "affiliations": [ { "name": "Goel" } ], "person_or_org": { "family_name": "Aviral", "identifiers": [ { "identifier": "0000-0002-0814-5015", "scheme": "orcid" } ], "name": "Aviral", "type": "personal" } }, { "affiliations": [ { "name": "K\u0159ikava" } ], "person_or_org": { "family_name": "Filip", "name": "Filip", "type": "personal" } }, { "affiliations": [ { "name": "Vitek" } ], "person_or_org": { "family_name": "Jan", "name": "Jan", "type": "personal" } } ], "description": "
The R programming language is widely used in a variety of domains. It was designed to favor an interactive style of programming with minimal syntactic and conceptual overhead. This design is well suited to interactive data analysis, but a bad fit for tools such as compilers or program analyzers which must generate native code or catch programming errors. In particular, R has no type annotations, and all operations are dynamically checked at run-time. The starting point for our work are the twin questions: what expressive power is needed to accurately type R code? and which type system is the R community willing to adopt? Both questions are difficult to answer without actually experimenting with a type system. The goal of this paper is to provide data that can feed into that design process. To this end, we perform a large corpus analysis to gain insights in the degree of polymorphism exhibited by idiomatic R code and explore potential benefits that the R community could accrue from a simple type system. As a starting point, we infer type signatures for 25,215 functions from 412 packages among the most widely used open source R libraries. We then conduct an evaluation on 8,694 clients of these packages, as well as on end-user code found on the Kaggle competition website.
", "languages": [ { "id": "eng", "title": { "en": "English" } } ], "publication_date": "2020-09-18", "publisher": "Zenodo", "resource_type": { "id": "publication-conferencepaper", "title": { "de": "Konferenzbeitrag", "en": "Conference paper" } }, "rights": [ { "description": { "en": "The Creative Commons Attribution license allows re-distribution and re-use of a licensed work on the condition that the creator is appropriately credited." }, "icon": "cc-by-icon", "id": "cc-by-4.0", "props": { "scheme": "spdx", "url": "https://creativecommons.org/licenses/by/4.0/legalcode" }, "title": { "en": "Creative Commons Attribution 4.0 International" } } ], "subjects": [ { "subject": "R" }, { "subject": "Empirical Evaluation" }, { "subject": "Dynamic Program Analysis" }, { "subject": "Type System" } ], "title": "Designing Types for R, Empirically", "version": "1.0" }, "parent": { "access": { "owned_by": { "user": 74734 } }, "communities": {}, "id": "4037277", "pids": { "doi": { "client": "datacite", "identifier": "10.5281/zenodo.4037277", "provider": "datacite" } } }, "pids": { "doi": { "client": "datacite", "identifier": "10.5281/zenodo.4037278", "provider": "datacite" }, "oai": { "identifier": "oai:zenodo.org:4037278", "provider": "oai" } }, "revision_id": 2, "stats": { "all_versions": { "data_volume": 1203128984.0, "downloads": 205, "unique_downloads": 180, "unique_views": 494, "views": 548 }, "this_version": { "data_volume": 1203128984.0, "downloads": 205, "unique_downloads": 180, "unique_views": 489, "views": 543 } }, "status": "published", "updated": "2020-09-29T12:26:50.461013+00:00", "versions": { "index": 1, "is_latest": true } }