All Projects → nickng → gospal

nickng / gospal

Licence: Apache-2.0 license
Go static program analyser

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to gospal

Reading
A list of computer-science readings I recommend
Stars: ✭ 1,919 (+3326.79%)
Mutual labels:  research, static-analysis
Dingo Hunter
Static analyser for finding Deadlocks in Go
Stars: ✭ 272 (+385.71%)
Mutual labels:  research, static-analysis
patzilla
PatZilla is a modular patent information research platform and data integration toolkit with a modern user interface and access to multiple data sources.
Stars: ✭ 71 (+26.79%)
Mutual labels:  research
binary-auditing-solutions
Learn the fundamentals of Binary Auditing. Know how HLL mapping works, get more inner file understanding than ever.
Stars: ✭ 61 (+8.93%)
Mutual labels:  static-analysis
NLP-Suite
CLICK ON WIKI LINK BELOW OR ON Wiki TAB AT TOP BANNER FOR DOWNLOAD INSTRUCTIONS AND INFORMATION ON THE NLP SUITE.
Stars: ✭ 36 (-35.71%)
Mutual labels:  research
theta
Generic, modular and configurable formal verification framework supporting various formalisms and algorithms
Stars: ✭ 34 (-39.29%)
Mutual labels:  research
awesome-offline-rl
An index of algorithms for offline reinforcement learning (offline-rl)
Stars: ✭ 578 (+932.14%)
Mutual labels:  research
SPDS
Efficient and Precise Pointer-Tracking Data-Flow Framework
Stars: ✭ 38 (-32.14%)
Mutual labels:  static-analysis
api-evangelist
The API Evangelist website
Stars: ✭ 73 (+30.36%)
Mutual labels:  research
public research
Publicly available research done by BOHR.TECHNOLOGY.
Stars: ✭ 16 (-71.43%)
Mutual labels:  research
RTX-Mesh-Shaders
Different mesh shading techniques using the NVIDIA RTX (Turing) technology.
Stars: ✭ 84 (+50%)
Mutual labels:  research
iec-checker
Static analysis of IEC 61131-3 programs
Stars: ✭ 36 (-35.71%)
Mutual labels:  static-analysis
UTBotCpp
Tool that generates unit test by C/C++ source code, trying to reach all branches and maximize code coverage
Stars: ✭ 59 (+5.36%)
Mutual labels:  static-analysis
SDA
SDA is a rich cross-platform tool for reverse engineering that focused firstly on analysis of computer games. I'm trying to create a mix of the Ghidra, Cheat Engine and x64dbg. My tool will combine static and dynamic analysis of programs. Now SDA is being developed.
Stars: ✭ 98 (+75%)
Mutual labels:  static-analysis
degitx
Distributed git repository manager
Stars: ✭ 28 (-50%)
Mutual labels:  research
sbt-findbugs
FindBugs static analysis plugin for sbt.
Stars: ✭ 47 (-16.07%)
Mutual labels:  static-analysis
ultimate-defi-research-base
Here we collect and discuss the best DeFI & Blockchain researches and tools. Feel free to DM me on Twitter or open pool request.
Stars: ✭ 1,074 (+1817.86%)
Mutual labels:  research
PSP
PSP-UFU (Power Systems Platform of Federal University of Uberlândia) is a cross-platform, multilingual, Free and Open-Source Software with advanced GUI features and CAD tools for electrical power system studies.
Stars: ✭ 30 (-46.43%)
Mutual labels:  research
derain-net
A (WIP) TensorFlow reproduction of Fu, Huang, Ding, Liao, and Paisley's method for single-image rain removal (https://arxiv.org/abs/1609.02087)
Stars: ✭ 15 (-73.21%)
Mutual labels:  research
senpai
Molecular dynamics simulation software
Stars: ✭ 124 (+121.43%)
Mutual labels:  research

gospal GoDoc

Go Static Program AnaLysing framework

This is a research prototype static analyser for Go programs. Currently the framework consists of two main tools, migoinfer and ssaview, but it should be able to build more backends with different output formats based on this framework.

To build the tool, use go get:

go get github.com/nickng/gospal/cmd/...

migoinfer

The MiGo infer tool (cmd/migoinfer) infers MiGo types from a Go source code. The formal definitions of the MiGo types are published in this paper, and the format of the output in textual form is described in the migo package.

For example, given this sample program main.go,

package main

func main() {
	ch := make(chan int)
	go Sender(ch)
	fmt.Println(<-ch)
}

func Sender(ch chan int) {
	ch <- 1
}

This is the expected output of the inference, with additional output defs that does not involve communication.

$ migoinfer main.go

def main.main():
    let t0 = newchan main.main0.t0_chan0, 0;
    spawn main.Sender(t0);
    recv t0;
def main.Sender(ch):
    send ch

This is a research prototype and does not cover all features of Go. Please report errors with a small fragment of sample code and what you expect to see, however, noting that it might not be possible to infer the types soundly due to the limitations of static analysis.

ssaview

The SSA viewer (cmd/ssaview) is a wrapper over the ssa package from the extra tools of the Go project for viewing SSA-form of a given source code. It is similar to ssadump but shares the build configuration with the migoinfer tool in this project.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].