From 75f96aeac7add7ea040ceb1dc7ff69be998f12c8 Mon Sep 17 00:00:00 2001 From: Marc Vertes Date: Thu, 1 Feb 2018 15:20:37 +0100 Subject: [PATCH] Apply better names for function and files. Add images for doc --- README.md | 22 ++++++ gi.go | 1 - images/ast.jpg | Bin 0 -> 112758 bytes images/cfg.jpg | Bin 0 -> 25636 bytes interp/{src_to_ast.go => ast.go} | 5 +- interp/{src_to_ast_test.go => ast_test.go} | 4 +- interp/{ast_to_cfg.go => cfg.go} | 18 ++--- interp/{ast_dot.go => dot.go} | 0 interp/interp.go | 77 ++++++++++++--------- interp/{run_cfg_test.go => interp_test.go} | 14 ++-- interp/{run_cfg.go => run.go} | 10 +-- 11 files changed, 86 insertions(+), 65 deletions(-) create mode 100644 images/ast.jpg create mode 100644 images/cfg.jpg rename interp/{src_to_ast.go => ast.go} (87%) rename interp/{src_to_ast_test.go => ast_test.go} (69%) rename interp/{ast_to_cfg.go => cfg.go} (91%) rename interp/{ast_dot.go => dot.go} (100%) rename interp/{run_cfg_test.go => interp_test.go} (50%) rename interp/{run_cfg.go => run.go} (91%) diff --git a/README.md b/README.md index 9fe04594..315ea852 100644 --- a/README.md +++ b/README.md @@ -49,3 +49,25 @@ Our AST is represented with a tree of objects of all the same type Node, each no This structure allows a simpler implementation of recursive tree walk, and makes possible an faster and more efficient non-recursive tree walk. The tree walk allows callback both for pre-order and post-order processing. + +## Example + +Consider the following source: + +```go +package main + +func main() { + for a := 0; a < 10000; a++ { + if (a & 0x8ff) == 0x800 { + println(a) + } + } +} +``` + +AST: ![ast](images/ast.jpg) + +CFG: ![cfg](images/cfg.jpg) + +In CFG, the node labels correspond to the number in left of AST nodes diff --git a/gi.go b/gi.go index ae97950f..149d731e 100644 --- a/gi.go +++ b/gi.go @@ -9,7 +9,6 @@ func main() { package main func main() { - println(1) for a := 0; a < 10000; a++ { if (a & 0x8ff) == 0x800 { println(a) diff --git a/images/ast.jpg b/images/ast.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2d6a982b936d3a523ae1135721bf1ffa8970e8d5 GIT binary patch literal 112758 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%0AvCXZ(49)gb~pIzPot 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 literal 0 HcmV?d00001 diff --git a/images/cfg.jpg b/images/cfg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..163f4d3ff101bf34994b92b68e3d87799669e825 GIT binary patch literal 25636 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 literal 0 HcmV?d00001 diff --git a/interp/src_to_ast.go b/interp/ast.go similarity index 87% rename from interp/src_to_ast.go rename to interp/ast.go index 1fa23290..973a62ae 100644 --- a/interp/src_to_ast.go +++ b/interp/ast.go @@ -6,8 +6,9 @@ import ( "go/token" ) -// Parse src string containing go code and generate AST. Returns the root node. -func SrcToAst(src string) *Node { +// Ast(src) parses src string containing Go code and generates the corresponding AST. +// The AST root node is returned. +func Ast(src string) *Node { fset := token.NewFileSet() // positions are relative to fset f, err := parser.ParseFile(fset, "sample.go", src, 0) if err != nil { diff --git a/interp/src_to_ast_test.go b/interp/ast_test.go similarity index 69% rename from interp/src_to_ast_test.go rename to interp/ast_test.go index 74c88da6..aa99d38d 100644 --- a/interp/src_to_ast_test.go +++ b/interp/ast_test.go @@ -5,7 +5,7 @@ import ( "testing" ) -func TestSrcToAst(t *testing.T) { +func TestAst(t *testing.T) { src := ` package main @@ -13,6 +13,6 @@ func main() { println(1) } ` - root := SrcToAst(src) + root := Ast(src) fmt.Println(root.index) } diff --git a/interp/ast_to_cfg.go b/interp/cfg.go similarity index 91% rename from interp/ast_to_cfg.go rename to interp/cfg.go index 281103de..29ba67a1 100644 --- a/interp/ast_to_cfg.go +++ b/interp/cfg.go @@ -7,16 +7,17 @@ import ( "strconv" ) -// TODO: remove coupling with go/ast and go/token. This should be handled only in SrcToAst +// TODO: remove coupling with go/ast and go/token. This should be handled only in Ast() -// Generate a CFG from AST (wiring successors in AST) -func (e *Node) AstToCfg() { +// n.Cfg() generates a control flow graph (CFG) from AST (wiring successors in AST) +func (e *Node) Cfg() { + //var findex int e.Walk(nil, func(n *Node) { switch x := (*n.anode).(type) { case *ast.BlockStmt: wire_child(n) // FIXME: could bypass this node at CFG and wire directly last child - n.isnop = true + n.isNop = true n.run = nop n.val = n.Child[len(n.Child)-1].val case *ast.IncDecStmt: @@ -31,13 +32,13 @@ func (e *Node) AstToCfg() { case *ast.ExprStmt: wire_child(n) // FIXME: could bypass this node at CFG and wire directly last child - n.isnop = true + n.isNop = true n.run = nop n.val = n.Child[len(n.Child)-1].val case *ast.ParenExpr: wire_child(n) // FIXME: could bypass this node at CFG and wire directly last child - n.isnop = true + n.isNop = true n.run = nop n.val = n.Child[len(n.Child)-1].val case *ast.BinaryExpr: @@ -54,7 +55,7 @@ func (e *Node) AstToCfg() { wire_child(n) n.run = call case *ast.IfStmt: - n.isnop = true + n.isNop = true n.run = nop n.Start = n.Child[0].Start n.Child[1].snext = n @@ -68,7 +69,7 @@ func (e *Node) AstToCfg() { n.Child[0].next[0] = n } case *ast.ForStmt: - n.isnop = true + n.isNop = true n.run = nop // FIXME: works only if for node has 4 children n.Start = n.Child[0].Start @@ -78,6 +79,7 @@ func (e *Node) AstToCfg() { n.Child[3].snext = n.Child[2].Start n.Child[2].snext = n.Child[1].Start case *ast.BasicLit: + n.isConst = true // FIXME: values must be converted to int or float if possible if v, err := strconv.ParseInt(x.Value, 0, 0); err == nil { *n.val = v diff --git a/interp/ast_dot.go b/interp/dot.go similarity index 100% rename from interp/ast_dot.go rename to interp/dot.go diff --git a/interp/interp.go b/interp/interp.go index d069b3f0..57233c1f 100644 --- a/interp/interp.go +++ b/interp/interp.go @@ -10,57 +10,68 @@ type RunFun func(n *Node, i *Interpreter) // Structure for AST and CFG type Node struct { - Child []*Node // child subtrees - anc *Node // ancestor - Start *Node // entry point in subtree (CFG) - snext *Node // successor (CFG) - next [2]*Node // conditional successors, for false and for true (CFG) - index int // node index (dot display) - run RunFun // function to run at CFG execution - val *interface{} // pointer on generic value (CFG execution) - ident string // set if node is a var or func - isnop bool // node is a no op - anode *ast.Node // original ast node (temporary, will be removed) + Child []*Node // child subtrees + anc *Node // ancestor + Start *Node // entry point in subtree (CFG) + snext *Node // successor (CFG) + next [2]*Node // conditional successors, for false and for true (CFG) + index int // node index (dot display) + findex int // index of value in frame + run RunFun // function to run at CFG execution + val *interface{} // pointer on generic value (CFG execution) + ident string // set if node is a var or func + isNop bool // node run function us a no-op + isConst bool // node value is a constant + anode *ast.Node // original ast node (temporary, will be removed) } -// Interpreter execution context +// A Frame contains values for the current execution level +type Frame struct { + up *Frame // up level in call stack + down *Frame // down in call stack + val []interface{} // array of values +} + +// Interpreter contains global resources and state type Interpreter struct { - sym map[string]*interface{} - res interface{} + sym map[string]*interface{} + constant map[string]*interface{} + frame *Frame + out interface{} } -// Returns true if node is a leaf in the AST +// n.isLeaf() returns true if Node n is a leaf in the AST func (n *Node) isLeaf() bool { return len((*n).Child) == 0 } -// Walk AST in depth first order, call 'in' function at node entry and -// 'out' function at node exit. -func (n *Node) Walk(in func(n *Node), out func(n *Node)) { - if in != nil { - in(n) +// n.Walk(cbin, cbout) traverses AST n in depth first order, call cbin function +// at node entry and cbout function at node exit. +func (n *Node) Walk(cbin func(n *Node), cbout func(n *Node)) { + if cbin != nil { + cbin(n) } for _, Child := range n.Child { - Child.Walk(in, out) + Child.Walk(cbin, cbout) } - if out != nil { - out(n) + if cbout != nil { + cbout(n) } } -// Create and return a new interpreter object +// NewInterpreter()creates and returns a new interpreter object func NewInterpreter() *Interpreter { return &Interpreter{sym: make(map[string]*interface{})} } -// +// i.Eval(s) evaluates Go code represented as a string func (i *Interpreter) Eval(src string) interface{} { - root := SrcToAst(src) - root.AstDot() - cfg_entry := root.Child[1].Child[2] // FIXME: entry point should be resolved from 'main' name - cfg_entry.AstToCfg() - cfg_entry.OptimCfg() - //cfg_entry.CfgDot() - i.RunCfg(cfg_entry.Start) - return i.res + root := Ast(src) + //root.AstDot() + entry := root.Child[1].Child[2] // FIXME: entry point should be resolved from 'main' name + entry.Cfg() + entry.OptimCfg() + //entry.CfgDot() + i.Run(entry.Start) + return i.out } diff --git a/interp/run_cfg_test.go b/interp/interp_test.go similarity index 50% rename from interp/run_cfg_test.go rename to interp/interp_test.go index 8e9cea9c..c67b50b0 100644 --- a/interp/run_cfg_test.go +++ b/interp/interp_test.go @@ -1,6 +1,6 @@ package interp -func ExampleRunCfg_1() { +func ExampleEval_1() { src := ` package main @@ -8,15 +8,12 @@ func main() { println(1) } ` - root := SrcToAst(src) - cfg_entry := root.Child[1].Child[2] // FIXME: entry point should be resolved from 'main' name - AstToCfg(cfg_entry) - RunCfg(cfg_entry.Start) + NewInterpreter().Eval(src) // Output: // 1 } -func ExampleRunCfg_2() { +func ExampleEval_2() { src := ` package main @@ -30,10 +27,7 @@ func main() { } ` - root := SrcToAst(src) - cfg_entry := root.Child[1].Child[2] // FIXME: entry point should be resolved from 'main' name - AstToCfg(cfg_entry) - RunCfg(cfg_entry.Start) + NewInterpreter().Eval(src) // Output: // 1 // 2048 diff --git a/interp/run_cfg.go b/interp/run.go similarity index 91% rename from interp/run_cfg.go rename to interp/run.go index 6036e274..0f1dab0d 100644 --- a/interp/run_cfg.go +++ b/interp/run.go @@ -2,7 +2,7 @@ package interp import "fmt" -func (i *Interpreter) RunCfg(entry *Node) { +func (i *Interpreter) Run(entry *Node) { for n := entry; n != nil; { n.run(n, i) if n.snext != nil { @@ -28,14 +28,6 @@ func assign(n *Node, i *Interpreter) { n.val = i.sym[name] } -func cond_branch(n *Node, i *Interpreter) { - if (*n.val).(bool) { - n.snext = n.next[1] - } else { - n.snext = n.next[0] - } -} - func and(n *Node, i *Interpreter) { for _, child := range n.Child { if child.ident != "" {