five

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

收藏
NIAID Data Ecosystem2026-05-02 收录
下载链接:
https://zenodo.org/record/11522277
下载链接
链接失效反馈
官方服务:
资源简介:
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.
创建时间:
2024-09-19
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作