Skip to content

SuChengHao/Static-Blame

Repository files navigation

Static Blame

Warning: The project is not yet fully ready for open source, and although all code files are available, it does not yet have a complete interface for human use. It is full of Workarounds, such as absolute paths, bad variable names and inefficient functions. And, the documentation is not ready yet.

It currently exists only as support material for our thesis and is used to demonstrate our work.

Description

Static Blame is a static analysis tool designed for the Grift language. For now, this project is a fork of Grift repository with additional Static Blame files.

What we have done and Code Structure:

  1. The analysis tool, located in src/static_blame
    1. the type flow generation process located in src/static_blame/type_flow_generation.rkt
    2. the solver located in src/static_blame/type_flow.rkt
    3. basic definitions in src/static_blame/refinement.rkt
    4. interface for scripts located in src/static_blame/flow_analysis.rkt
  2. Test scripts, located in src/static_blame/test
    1. Mutation analysis in src/static_blame/test/mutate.rkt
    2. Main scripts in src/static_blame/test/script.rkt
  3. Test data, which you can use to re-generate main results.
    1. RQ1 in final report
      1. The manual classification for FP is listed in spe_fps_work for strict potential error and wdn-fps-transformed-work for wrong dynamic types
      2. The manual classification for FN is listed in spe_fns_work for strict potential error and wdt_fns_work for wrong dynamic types
    2. RQ2 in lattice test and size_test
    3. Plot facilities in main.py
  4. Buf fixes for language-grift

Reproduction of evaluation results

Make sure that you have installed numpy pandas and matplotlib in your python environment, and run main.py in the experimental directory.

cd grift-exp
python3 main.py

And every data in the paper will output to the standard output and pictures will be shown. I recommend running it with pycharm

About

Support Material for Static Blame

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published