Welcome to the home repository of Chianina.
Chianina --- A Disk-based Envolving Graph System for Context- and Flow-Sensitive Static Analyses on Million Lines of C Code.
This README provides a how-to-use guide for Chianina.
Make sure that you have the Boost library installed in your environment. Here you can get started using Boost.
- Download the entire Chianina source code into your machine.
$ git clone https://github.com/Chianina-system/backend.git
- Get into the folder where contains the makefile.
$ cd backend/Debug/
- Run makefile
$ make
After compiling, there should be a backend
binary executable file in Debug
folder.
Chianina needs five input files:
-
file_total: record total number of nodes in the cfg
-
file_entries: record entry nodes' id
-
file_cfg: record the whole program(inter) cfg which Chianina can perform computation
-
file_stmts: record a map from node id to statement
-
file_singletons: record singleton variable ids
And there are also seven parameters used to fit your own program and running environment:
-
graphstore_mode:
0 -- naive, 1 -- itemset
-
update_mode:
0 -- sequential, 1 -- parallel
-
comp_mode:
0 -- in-memory, 1 -- out-of-core
-
num_partitions: the number of partitions you want to part the in the computation cfg (if comp_mode == 1)
-
file_mode:
0 -- binary, 1 -- text
(if comp_mode == 1) -
buffered_mode:
0 --default, 1 -- specified
(if comp_mode == 1) -
mining_mode:
0 -- eclat, 1 -- apriori, 2 -- fg-growth
(if comp_mode == 1)
./backend <file_total> <file_entries> <file_cfg> <file_stmts> <file_singletons> <graphstore_mode> <update_mode> <comp_mode> <num_partitions> <file_mode> <buffered_mode> <mining_mode>
./backend configuration.txt entry.txt final id_stmt_info.txt var_singleton_info.txt 0 1 1 1 0 1 0
- Zhiqiang Zuo - Assistant Professor, Nanjing University
- Yiyu Zhang - PhD Student, Nanjing University
- Zewen Sun - PhD Student, Nanjing University
- Duanchen Xu - Master Student, Nanjing University