ตัวสร้างกราฟควบคุมการไหลสำหรับสัญญาอัจฉริยะที่แข็งแกร่ง
แพ็คเกจนี้สร้างกราฟควบคุมการไหลจากสัญญาความแข็งแกร่ง กราฟการควบคุมการไหลมีประโยชน์ในการแสดงกราฟิกของความหมายของโปรแกรมและเป็นพื้นฐานของวิธีการวิเคราะห์แบบคงที่หลายวิธีในการเพิ่มประสิทธิภาพและตรวจสอบโปรแกรม แพ็คเกจนี้เป็นพื้นฐานของวิธีการวิเคราะห์แบบคงที่ที่ฉันกำลังพัฒนาอยู่
Solidity-CFG-Builder ได้รับการพัฒนาใน Haskell โดยใช้ตัวแยกวิเคราะห์ไวยากรณ์ความแข็งแกร่งที่ใช้ในเครื่องมือตรวจสอบรันไทม์สำหรับ Solidity ContractLarva เวอร์ชันของตัวแยกวิเคราะห์ที่ใช้ในโครงการบรรจุในโครงการ
เครื่องมือที่ได้รับรหัสความแข็งแกร่งนี้จะสร้างกราฟการควบคุมการไหลในสัญลักษณ์ DOT ซึ่งสามารถมองเห็นได้โดยใช้ GraphViz
ข้อกำหนด: Cabal v2.4.* (เช่นติดตั้งแพลตฟอร์ม Haskell แบบเต็ม)
การรวบรวม: ทำตามคำแนะนำที่นี่
สำหรับผลลัพธ์ที่ถูกต้องตรวจสอบให้แน่ใจว่ารหัสความแข็งแกร่งจะรวบรวมด้วยคอมไพเลอร์ที่มีความแข็งแกร่ง
ในการใช้เครื่องมือส่งผ่านตำแหน่งของไฟล์ความแข็งแกร่งและตำแหน่งที่ต้องการของเอาต์พุตไปยังการดำเนินการเช่นดำเนินการ: ดำเนินการ:
"./solidity-cfg-builder" <solidity-code.sol> <cfg.gv>
โครงการนี้ได้รับใบอนุญาตภายใต้ข้อกำหนดของใบอนุญาต Apache 2.0
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง parsec แล้ว นอกจากนี้ดูที่เธรด stackoverflow นี้ (https://stackoverflow.com/questions/9058914/cant-find-parsec-modules-in-ghci)
cabal ติดตั้ง parsec