IUCompilerCourse / python-student-support-code

Support for for students (Python)
MIT License
57 stars 38 forks source link

Is this an implementation bug of `dataflow_analysis`? #19

Open Lysanleo opened 1 year ago

Lysanleo commented 1 year ago

https://github.com/IUCompilerCourse/python-student-support-code/blob/8636ea57437d9779d8fe963bd635fced5ebb34ab/dataflow_analysis.py#LL16C46-L16C46

This line is trying to get the live-after of a block with reducing on the trans_G.adjacent(node) and the adjacent in fact return every node which included in an edge use node as its beginning, once we called on trans_G, will get all the nodes that are represented before the node in the CFG. But what we actually want is to get the nodes after the current node in CFG.

https://github.com/IUCompilerCourse/python-student-support-code/blob/8636ea57437d9779d8fe963bd635fced5ebb34ab/dataflow_analysis.py#L20

This line also has perhaps an implementation error for similar reasons.

Don't know if that's bugs or I implemented wrong CFGs.