Skip to content

se2p/artifact-scam2021

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

Supplemental repository for the paper Improving Readability of Scratch Programs with Search-based Refactoring containing all data and software to replicate the experiments.

@inproceedings{ImprovingReadabilityScratch,
  author    = {Felix Adler and
               Gordon Fraser and
               Eva Gründinger and
               Nina Körber and
               Simon Labrenz and
               Jonas Lerchenberger and
               Stephan Lukasczyk and
               Sebastian Schweikl},
  title     = {Improving Readability of Scratch Programs with Search-based Refactoring},
  booktitle = {{21st {IEEE} International Working Conference on Source Code Analysis
               and Manipulation, {SCAM} 2021}},
  publisher = {{IEEE}},
  year      = {2021}
}

Experiment Execution

The following assumes that you have a terminal window open with a prompt in the directory of this file.

Preparations

Set up a Python virtual environment at some arbitrary path—referenced as from now. Make sure to use Python 3! To execute the execution pipeline you need to have the virtual environment active.

virtualenv -p python3 <path>
source <path>/bin/activate
pip install -r requirements.txt

Execution

Execute the script ./run_everything.sh. It will clone the LitterBox repository, checkout revision 6b193f88, build LitterBox, copy the JAR archive to the expected location, execute the runs, and create a results.csv in the data folder. Afterwards, the statistical evaluation can be performed by exeuction the Jupyter Notebook script in the analysis folder.

Changes

The single location that you might want to change is the value of the constant ITERATIONS in run_everything.sh, which determines how many different seeds will be executed.

The individual run configurations for a single tool run can be configured in the execution.py script, which generates a bash script for each tool invocation.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published