Artifact (software + dataset) for "Phys: Probabilistic Physical Unit Assignment and Inconsistency Detection"
- 1. Purdue University
- 2. University of Nebraska--Lincoln
- 3. Nanjing University
Description
https://unl-nimbus-lab.github.io/phys
phys is a tool to detect physical unit inconsistencies in C++ that builds against the Robot Operating System. phys is a command-line tool that can be used with Docker.
For example, assume a developer is building a robot and wants to calculate the length of the hypotenuse of a triangle with sides x_err and y_err, but the developer accidentally uses a multiply symbol (*) instead of an addition symbol (+), and ends up adding x_err * x_err (meter-squared) to err_y (meter):
err_d = sqrt( err_x * err_x + err_y + err_y);
(source)
This code compiles and but this bug can be difficult to detect. It is coincidentally correct for values near 2. Yikes! This kind of error is called a physical unit inconsistency, and phys can detect it without developer annotations.
-------------
THE BEST WAY TO START is by opening index.html from a web browser.
This repository contains the following files and folders:
- Dockerfile : a Docker install file for **phys**.
- INSTALL.txt : Describes how to install **phys** using Docker and a minimal working example.
- LICENSE.txt : BSD-2-Clause license.
- README.md : This file.
- STATUS : Describes the ACM artifact badges sought for this artifact.
- data/ : Folder containing C++ files used to evaluate and test **phys**.
- docs/ : the help pages (HTML) referenced by index.html.
- index.html : THE BEST PLACE TO START.
- requirements.txt : List of python dependencies required by **phys**. Referenced by the Dockerfile.
- src/ : The python source code for **phys**.
Credits
Files
jore_at_cse_dot_unl_dot_edu__tooname_phys__FSE18_submission_210.zip
Files
(31.1 MB)
Name | Size | Download all |
---|---|---|
md5:d7c57749ea737e005da80088bceb812c
|
31.1 MB | Preview Download |