Skip to content

Implement the data structure of the CFG graph. (A03.T01) #1265

@mayanje

Description

@mayanje

A control flow graph is a graphical representation of all the paths that can be followed by a program during its execution. Its underlying data structure is a graph.

The following simplified class digram, shows the main classes used for representing a control flow graph.

CfgClassDiagram

This is a simple description of these classes.

Class Description
BasicBlock A Generic class for representing a BasicBlock for a generic type of instructions and a generic type of data informlation.
ControlFlowGraph A Generic class for representing a Control Flow Graph on generic BasicBlock .
ControlFlowGraphBuilder Base class for a Control Flow Graph Builder for a TypeCobol Program.
DefaultControlFlowGraphBuilder The default class for a TypeCobol Control Flow Graph Builder.
BasicBlockForNode A specialization of the class BasicBlock for TypeCobol instruction nodes.
BasicBlockForNodeGroup A specialization of the class BasicBlockForNode for representing a group of basic blocks used for gathering all basic blocks targeted by a PERFORM procedure instruction.
CfgSentence This class is a specialization of the Symbol class for representing a COBOL sentence as a Symbol inside a Cobol Paragraph or a Cobol Section.
CfgParagraphSymbol A specialization of the class ParagraphSymbol for representing a COBOL Paragraph in the CFG. It holds a list of all CfgSenetence instances inside the paragraph
CfgSection This class is a specialization of the class SectionSymbol for representing a COBOL section. It holds a list of all COBOL sentences an paragraphs within the section
DeclarativeContext This class represents a help context for building a CFG for a DECLARATIVE instruction.
MultiBranchContext This class represents a help context for building a CFG for branching instructions like IF..THEN...ELSE or EVALUATE.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions