Powered by OpenAIRE graph
Found an issue? Give us feedback
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/ ZENODOarrow_drop_down
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/
ZENODO
Dataset . 2024
License: CC BY
Data sources: ZENODO
ZENODO
Dataset . 2024
License: CC BY
Data sources: Datacite
ZENODO
Dataset . 2024
License: CC BY
Data sources: Datacite
versions View all 2 versions
addClaim

Artifact for "Verifying the Option Type with Rely-Guarantee Reasoning"

Authors: Yoo, James; Ernst, Michael D.; Just, René;

Artifact for "Verifying the Option Type with Rely-Guarantee Reasoning"

Abstract

This repository contains the dataset and scripts to reproduce Table 1 and Table 2 in the paper "Verifying the Option Type with Rely-Guarantee Reasoning". Requirements Please see REQUIREMENTS.md for the same information, but listed separately from this README file. Our scripts are designed for a Unix environment (Linux, macOS, WSL, etc.). They will not work under a Windows command shell. Our scripts require the following tools: Python 3, version 3.9.6 or later. GNU grep. For macOS, install it as ggrep via the command brew install grep. If not already installed, brew can be installed via the instructionshere Subject programs File dataset.txt lists the subject programs. The subject programs are stored under the following directories: optional-paper-base-repos: all the subject programs with their build files modified to run the Optional Checker. optional-paper-annotated-repos: all the subject programs, with@SuppressWarnings for each true positive and false positive issued by the Optional Checker (scripts count these). It also contains the Optional Checker type qualifiers that we wrote. optional-paper-intellij-repos: all the subject programs with @SuppressWarnings for each IntelliJ warning (so they can be programmatically counted). optional-paper-errorprone-repos: all the subject programs with @SuppressWarnings for each Error Prone warning. optional-paper-spotbugs-repos: all the subject programs with @SuppressWarnings for each SpotBugs warning. Scripts Looking to reproduce all the data in our tables? See reproduce-data. This repository contains the following scripts: reproduce-data: this script reproduces all the data for our tables. compute-precision-recall-annotations: this script generates Table 1: it computes the values for precision, recall, and the number of human-written, machine-checked annotations used by each tool. count-style-violations: this script generates Table 2: it reports the number of style violations detected by each tool. mygrep.py: this is a Python utility used by other scripts as a thin wrapper around grep. You need not use it directly. All these scripts may be executed from the root of this directory. For example, to generate Table 1: % ./compute-precision-recall-annotations Resulting Data Each script produces the rows of the dataset, excluding the column titles. Below is a brief description of each output .tex file: eval-statistics.tex: generated by the compute-precision-recall-annotations script, maps to Table 1 in our paper. The columns of the data are, in order from left-to-right: Tool name Number of true positives detected by the tool Number of false positives detected by the tool Precision Recall Total number of machine-verified annotations written as a specification across all subject programs. style-violations.tex: generated by the count-style-violationsscript, maps to Table 2 in our paper. The columns are the data are, in order from left-to-right: Tool name Number of violations of style rule 1 Number of violations of style rule 3 Number of violations of style rule 4 Number of violations of style rule 5 Number of violations of style rule 6.a Number of violations of style rule 6.b Number of violations of style rule 6.c Number of violations of style rule 7 Implementation The implementation of the Optional Checker appears in the implementation directory. This folder contains the following subdirectories: optional: the source code for the Optional Checker's verification logic for the Optional type system. optional/qualifiers: the definitions for each type qualifier from the Optional type system that may be used with the Optional Checker. nonempty: the source code for the Optional Checker's verification logic for the Non-Empty type system. nonempty/qualifiers: the definitions for each type qualifier from the Non-Empty type system that may be used with the Optional Checker.

Related Organizations
  • BIP!
    Impact byBIP!
    selected citations
    These citations are derived from selected sources.
    This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    0
    popularity
    This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
    Average
    influence
    This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    Average
    impulse
    This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
    Average
Powered by OpenAIRE graph
Found an issue? Give us feedback
selected citations
These citations are derived from selected sources.
This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Citations provided by BIP!
popularity
This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
BIP!Popularity provided by BIP!
influence
This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Influence provided by BIP!
impulse
This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
BIP!Impulse provided by BIP!
0
Average
Average
Average