call graph
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 3298
Python Call Graph 0.4.0
Python Call Graph (pycallgraph) is a Python library that creates call graphs for Python programs more>>
Python Call Graph (pycallgraph) is a Python library that creates call graphs for Python programs
pycallgraph is quite new. It seems to work well and I will most likely improve it in the near future!
<<lesspycallgraph is quite new. It seems to work well and I will most likely improve it in the near future!
Download (0.004MB)
Added: 2007-06-26 License: GPL (GNU General Public License) Price:
853 downloads
Chart::Graph 3.2
Chart::Graph is a Perl extension for a front-end to gnuplot, XRT, and Xmgrace. more>>
Chart::Graph is a Perl extension for a front-end to gnuplot, XRT, and Xmgrace.
SYNOPSIS
# EXAMPLE: gnuplot
#make sure to include Chart::Graph
use Chart::Graph:Gnuplot qw(gnuplot);
gnuplot(%global_options, [%data_set_options, @matrix],
[%data_set_options, @x_column, @y_column],
[%data_set_options, < filename >], ... );
# EXAMPLE: Xmgrace
#make sure to include Chart::Graph
use Chart::Graph::Xmgrace qw(xmgrace);
xmgrace(%global_options, [%data_set_options, @matrix],
[%data_set_options, @x_column, @y_column],
[%data_set_options, < filename >], ... );
# EXAMPLE: xrt2d
#make sure to include Chart::Graph
use Chart::Graph::Xrt2d qw(xrt2d);
xrt2d(%options, @data_set);
#say for example we have a 3 by 4 matrix -> dataxy
xrt2d(%options,
[[data11, data12, data13, data14],
[data21, data22, data23, data24],
[data31, data32, data33, data34]])
# EXAMPLE: xrt3d
#make sure to include Chart::Graph
use Chart::Graph::Xrt3d qw(xrt3d);
xrt3d(%options, @data_set);
#say for example we have a 3 by 4 matrix -> dataxy
xrt3d(%options,
[[data11, data12, data13, data14],
[data21, data22, data23, data24],
[data31, data32, data33, data34]])
use Chart::Graph;
Graph.pm is a wrapper module that allows easy generation of graphs within perl. Currently Graph.pm supports three graphing packages, gnuplot, XRT, and Xmgrace. These software packages must be obtained separately from this Perl module. Information on each graphing package and its availability is provided in the documentation on that module. Gnuplot and Xmgrace are freely available software pages for UNIX systems. XRT is a commercial product.
Currently the xrt3d and xrt2d package is not being supported, although it works. It is still in the development stage. Feel free to give it a try though.
<<lessSYNOPSIS
# EXAMPLE: gnuplot
#make sure to include Chart::Graph
use Chart::Graph:Gnuplot qw(gnuplot);
gnuplot(%global_options, [%data_set_options, @matrix],
[%data_set_options, @x_column, @y_column],
[%data_set_options, < filename >], ... );
# EXAMPLE: Xmgrace
#make sure to include Chart::Graph
use Chart::Graph::Xmgrace qw(xmgrace);
xmgrace(%global_options, [%data_set_options, @matrix],
[%data_set_options, @x_column, @y_column],
[%data_set_options, < filename >], ... );
# EXAMPLE: xrt2d
#make sure to include Chart::Graph
use Chart::Graph::Xrt2d qw(xrt2d);
xrt2d(%options, @data_set);
#say for example we have a 3 by 4 matrix -> dataxy
xrt2d(%options,
[[data11, data12, data13, data14],
[data21, data22, data23, data24],
[data31, data32, data33, data34]])
# EXAMPLE: xrt3d
#make sure to include Chart::Graph
use Chart::Graph::Xrt3d qw(xrt3d);
xrt3d(%options, @data_set);
#say for example we have a 3 by 4 matrix -> dataxy
xrt3d(%options,
[[data11, data12, data13, data14],
[data21, data22, data23, data24],
[data31, data32, data33, data34]])
use Chart::Graph;
Graph.pm is a wrapper module that allows easy generation of graphs within perl. Currently Graph.pm supports three graphing packages, gnuplot, XRT, and Xmgrace. These software packages must be obtained separately from this Perl module. Information on each graphing package and its availability is provided in the documentation on that module. Gnuplot and Xmgrace are freely available software pages for UNIX systems. XRT is a commercial product.
Currently the xrt3d and xrt2d package is not being supported, although it works. It is still in the development stage. Feel free to give it a try though.
Download (0.24MB)
Added: 2006-07-31 License: Perl Artistic License Price:
1187 downloads
ibargraph 0.2
ibargraph provides a tool which shows the throughput on an ISDN line as a bar graph. more>>
ibargraph provides a tool which shows the throughput on an ISDN line as a bar graph.
This program shows the current throughput on an ISDN line as LED bar graph with LCDProc. Currently, this feature is only supported via the HD44780 extended display driver connect with the LCDTime wiring.
<<lessThis program shows the current throughput on an ISDN line as LED bar graph with LCDProc. Currently, this feature is only supported via the HD44780 extended display driver connect with the LCDTime wiring.
Download (0.008MB)
Added: 2007-04-24 License: GPL (GNU General Public License) Price:
913 downloads
Graph 0.81
Graph is a Perl module with graph data structures and algorithms. more>>
Graph is a Perl module with graph data structures and algorithms.
SYNOPSIS
use Graph;
my $g0 = Graph->new; # A directed graph.
use Graph::Directed;
my $g1 = Graph::Directed->new; # A directed graph.
use Graph::Undirected;
my $g2 = Graph::Undirected->new; # An undirected graph.
$g->add_edge(...);
$g->has_edge(...)
$g->delete_edge(...);
$g->add_vertex(...);
$g->has_vertex(...);
$g->delete_vertex(...);
$g->vertices(...)
$g->edges(...)
<<lessSYNOPSIS
use Graph;
my $g0 = Graph->new; # A directed graph.
use Graph::Directed;
my $g1 = Graph::Directed->new; # A directed graph.
use Graph::Undirected;
my $g2 = Graph::Undirected->new; # An undirected graph.
$g->add_edge(...);
$g->has_edge(...)
$g->delete_edge(...);
$g->add_vertex(...);
$g->has_vertex(...);
$g->delete_vertex(...);
$g->vertices(...)
$g->edges(...)
Download (0.12MB)
Added: 2007-07-02 License: Perl Artistic License Price:
1427 downloads
Squid Graph 3.2
Squid Graph is a Squid logfile analyzer and traffic grapher. more>>
Squid Graph is a free, simple, yet powerful Squid v2 native logfile analysis tool that generates reports with graphical representation of the proxy servers traffic.
Squid Graph is distributed under the GNU General Public Licence (GPL), which means it is FREE FOR USE AND DISTRIBUTION.
Squid Graph was developed using the Linux operating system running kernel versions ranging from 2.2.x to 2.4.x with PERL 5.6.0. It should work on all other similar operating systems with PERL 5.6 and above installed.
Some platforms which have been reported to run Squid Graph successfully are FreeBSD, OpenBSD, Sun Solaris and most Linux kernel versions and distributions.
Enhancements:
- No algorithm changes, mostly changes to contact information etc. due to hand-over of project to SecurLogic.
Installation:
Extracting the Tarball
- Extract the Squid Graph tarball file after you have downloaded it. Those with Redhat Linux (or other similar distributions) can do this: -
$ tar -zxvf squid-graph-x.x.tar.gz
- Alternatively, those with UNIX-like operating systems can do this: -
$ zcat squid-graph-x.x.tar.gz | tar -xvf -
Gathering the Pre-requisites
- As of version 3.0, Squid Graph requires the GD perl module. You can download it from http://stein.cshl.org/WWW/software/GD/ or you can use the included GD-1.3.3.tar.gz file in the extras/ directory.
- Follow the intructions in the GD perl module to get it installed correctly before you proceed.
Compiling
- Squid Graph runs out of the box. You dont have to compile it.
Putting it in the Right Place
- You might not prefer to have Squid Graph lying around in your current directory, so you should just move it to a directory which makes sense, such as /usr/local/squid-graph. e.g.
$ mv squid-graph-x.x /usr/local/squid-graph
Runing Squid Graph:
Quickstart
First, get yourself into the bin/ directory, for example: -
$ cd /usr/local/squid-graph/bin
Next, you run Squid Graph with the default options. The bare minimum for Squid Graph to run is the --output-dir option. The output directory is where the generated HTML reports and image files would be written.
$ ./squid-graph --output-dir=/var/www/html/reports < /usr/local/squid/logs/access.log
NOTE: Please check your directory permissions of your output directory!
Usually you would want the output to be generated into a directory which your web server is configured with access to. In the above example, /usr/local/squid/logs/access.log is your Squid logfile.
Where you store your Squid logfile differs from system to system. For default Redhat Linux installations, it should be in /log/squid/access.log. For those who compiled and installed Squid with the default options, it should be in /usr/local/squid/logs/access.log.
Removing the TCP or UDP Graphs
Most of you wont use cache ICP or log cache ICP, so there wont be any UDP messages in your logfiles. Disabling UDP is a good idea. You can do this by specifying the --tcp-only command line option.
$ ./squid-graph --tcp-only --output-dir=/var/www/re...
Likewise, if you only want to see UDP statistics, you can specify the --udp-only option.
$ ./squid-graph --udp-only --output-dir=/var/www/re...
Generating Cumulative Graphs
As of version 3.0, Squid Graph comes with a new feature to generage cumulative curves instead of the normal graphs. This can be done by specifying the --cumulative option.
$ ./squid-graph --cumulative --tcp-only --output-dir=/var/www/re...
To have a better understanding of what cumulative curves are, take a look at the output examples. Do note that enabling cumulative graphs disables the Average Transfer Duration graph automatically.
Disabling Average Transfer Duration Graphs
You can disable the Average Transfer Duration Graph by specifying the --no-transfer-duration option.
$ ./squid-graph --no-transfer-duration --output-dir=/var/www/re...
Specifying the Start/End Time
By default, Squid Graph generates reports based on the current time. It starts analyzing from 24 hours before the current time until the current time. Sometimes we cycle logfiles so it is necessary to specify when you want Squid Graph to start looking at your log files. This is done by specifying the --start option.
$ ./squid-graph --start=991353612 --output-dir=/var/www/re...
Likewise, you can specify the end time and Squid will automatically calculate the start time for you. This is done by specifying the --end command line option.
$ ./squid-graph --end=991352122 --output-dir=/var/www/re...
To get the last line of the Squid logfile, simply use tail -n1 logfile.log
Note that the start value is a numerical value which represents the number of seconds since 1970, NOT the conventional hh:mm:ss dd/mm/yyyy format. The reason why we did this is because Squid logs its time in this format, and we can easily use head -n1 logfile.log to view the first line of the log file to determine the start time.
Enhancements:
- Updated links after moving project to Sourceforge
- Updated links to incorrect GPL license in documentation
- Updated links to outdated GD Perl module
- Simplified package directory structure and removed old files
- No algorithm / logic changes
<<lessSquid Graph is distributed under the GNU General Public Licence (GPL), which means it is FREE FOR USE AND DISTRIBUTION.
Squid Graph was developed using the Linux operating system running kernel versions ranging from 2.2.x to 2.4.x with PERL 5.6.0. It should work on all other similar operating systems with PERL 5.6 and above installed.
Some platforms which have been reported to run Squid Graph successfully are FreeBSD, OpenBSD, Sun Solaris and most Linux kernel versions and distributions.
Enhancements:
- No algorithm changes, mostly changes to contact information etc. due to hand-over of project to SecurLogic.
Installation:
Extracting the Tarball
- Extract the Squid Graph tarball file after you have downloaded it. Those with Redhat Linux (or other similar distributions) can do this: -
$ tar -zxvf squid-graph-x.x.tar.gz
- Alternatively, those with UNIX-like operating systems can do this: -
$ zcat squid-graph-x.x.tar.gz | tar -xvf -
Gathering the Pre-requisites
- As of version 3.0, Squid Graph requires the GD perl module. You can download it from http://stein.cshl.org/WWW/software/GD/ or you can use the included GD-1.3.3.tar.gz file in the extras/ directory.
- Follow the intructions in the GD perl module to get it installed correctly before you proceed.
Compiling
- Squid Graph runs out of the box. You dont have to compile it.
Putting it in the Right Place
- You might not prefer to have Squid Graph lying around in your current directory, so you should just move it to a directory which makes sense, such as /usr/local/squid-graph. e.g.
$ mv squid-graph-x.x /usr/local/squid-graph
Runing Squid Graph:
Quickstart
First, get yourself into the bin/ directory, for example: -
$ cd /usr/local/squid-graph/bin
Next, you run Squid Graph with the default options. The bare minimum for Squid Graph to run is the --output-dir option. The output directory is where the generated HTML reports and image files would be written.
$ ./squid-graph --output-dir=/var/www/html/reports < /usr/local/squid/logs/access.log
NOTE: Please check your directory permissions of your output directory!
Usually you would want the output to be generated into a directory which your web server is configured with access to. In the above example, /usr/local/squid/logs/access.log is your Squid logfile.
Where you store your Squid logfile differs from system to system. For default Redhat Linux installations, it should be in /log/squid/access.log. For those who compiled and installed Squid with the default options, it should be in /usr/local/squid/logs/access.log.
Removing the TCP or UDP Graphs
Most of you wont use cache ICP or log cache ICP, so there wont be any UDP messages in your logfiles. Disabling UDP is a good idea. You can do this by specifying the --tcp-only command line option.
$ ./squid-graph --tcp-only --output-dir=/var/www/re...
Likewise, if you only want to see UDP statistics, you can specify the --udp-only option.
$ ./squid-graph --udp-only --output-dir=/var/www/re...
Generating Cumulative Graphs
As of version 3.0, Squid Graph comes with a new feature to generage cumulative curves instead of the normal graphs. This can be done by specifying the --cumulative option.
$ ./squid-graph --cumulative --tcp-only --output-dir=/var/www/re...
To have a better understanding of what cumulative curves are, take a look at the output examples. Do note that enabling cumulative graphs disables the Average Transfer Duration graph automatically.
Disabling Average Transfer Duration Graphs
You can disable the Average Transfer Duration Graph by specifying the --no-transfer-duration option.
$ ./squid-graph --no-transfer-duration --output-dir=/var/www/re...
Specifying the Start/End Time
By default, Squid Graph generates reports based on the current time. It starts analyzing from 24 hours before the current time until the current time. Sometimes we cycle logfiles so it is necessary to specify when you want Squid Graph to start looking at your log files. This is done by specifying the --start option.
$ ./squid-graph --start=991353612 --output-dir=/var/www/re...
Likewise, you can specify the end time and Squid will automatically calculate the start time for you. This is done by specifying the --end command line option.
$ ./squid-graph --end=991352122 --output-dir=/var/www/re...
To get the last line of the Squid logfile, simply use tail -n1 logfile.log
Note that the start value is a numerical value which represents the number of seconds since 1970, NOT the conventional hh:mm:ss dd/mm/yyyy format. The reason why we did this is because Squid logs its time in this format, and we can easily use head -n1 logfile.log to view the first line of the log file to determine the start time.
Enhancements:
- Updated links after moving project to Sourceforge
- Updated links to incorrect GPL license in documentation
- Updated links to outdated GD Perl module
- Simplified package directory structure and removed old files
- No algorithm / logic changes
Download (0.020MB)
Added: 2006-10-02 License: GPL (GNU General Public License) Price:
1130 downloads
DGS Graph 0.9.0
DGS Graph was created to provide an easy to install graphing script, capable of generating graphs for web presentation. more>>
DGS Graph was created to provide an easy to install graphing script, capable of generating graphs for web presentation.
<<less Download (0.024MB)
Added: 2006-05-04 License: GPL (GNU General Public License) Price:
1268 downloads
Q-Graph 1.4
Q-Graph is a collection of Q scripts that provide a graph data structure and a full-featured graph editor. more>>
Q-Graph is a collection of Q scripts that provide a graph data structure and a full-featured graph editor (the latter requires Tcl/Tk).
Q-Graph library can be used to implement and test graph algorithms using the Q language.
Q is a functional programming language based on term rewriting. Thus, a Q program or "script" is simply a collection of equations which are used to evaluate expressions in a symbolic fashion.
The equations establish algebraic identities and are interpreted as rewriting rules in order to reduce expressions to "normal forms".
For instance, here is how you define a function sqr which squares its argument by multiplying it with itself:
sqr X = X*X;
Note that, as in Prolog, capitalized identifiers are used to indicate the variables in an equation, which are bound to the actual values when an equation is applied. Equations may also include a condition part, as in the following definition of the factorial function:
fact N = N*fact (N-1) if N>0;
= 1 otherwise;
Functions on structured arguments are defined by "pattern matching". E.g., the product of a list (denoted in Prolog-like syntax) can be computed with these two equations:
prod [] = 1;
prod [X|Xs] = X*prod Xs;
With this definition, the factorial can now also be defined as follows (the notation [1..N], as in Haskell, denotes an arithmetic sequence):
fact N = prod [1..N];
As you can see, the definitions are really just like mathematical equations. The syntax is superficially similar to other modern functional languages like Miranda and Haskell, except that Q is "free-format", i.e., it does not use layout to indicate syntactical structure (thus the semicolon is used to terminate an equation).
Due to its term rewriting heritage, Q goes well beyond most other functional languages in that it also allows you to perform computations with symbolic expressions. For instance, with the definition of the sqr function from above, you will find that sqr (X+1) evaluates to (X+1)*(X+1). This might first look like an arcane feature, but it is actually quite useful, because you can try your definitions with symbolic inputs, too.
<<lessQ-Graph library can be used to implement and test graph algorithms using the Q language.
Q is a functional programming language based on term rewriting. Thus, a Q program or "script" is simply a collection of equations which are used to evaluate expressions in a symbolic fashion.
The equations establish algebraic identities and are interpreted as rewriting rules in order to reduce expressions to "normal forms".
For instance, here is how you define a function sqr which squares its argument by multiplying it with itself:
sqr X = X*X;
Note that, as in Prolog, capitalized identifiers are used to indicate the variables in an equation, which are bound to the actual values when an equation is applied. Equations may also include a condition part, as in the following definition of the factorial function:
fact N = N*fact (N-1) if N>0;
= 1 otherwise;
Functions on structured arguments are defined by "pattern matching". E.g., the product of a list (denoted in Prolog-like syntax) can be computed with these two equations:
prod [] = 1;
prod [X|Xs] = X*prod Xs;
With this definition, the factorial can now also be defined as follows (the notation [1..N], as in Haskell, denotes an arithmetic sequence):
fact N = prod [1..N];
As you can see, the definitions are really just like mathematical equations. The syntax is superficially similar to other modern functional languages like Miranda and Haskell, except that Q is "free-format", i.e., it does not use layout to indicate syntactical structure (thus the semicolon is used to terminate an equation).
Due to its term rewriting heritage, Q goes well beyond most other functional languages in that it also allows you to perform computations with symbolic expressions. For instance, with the definition of the sqr function from above, you will find that sqr (X+1) evaluates to (X+1)*(X+1). This might first look like an arcane feature, but it is actually quite useful, because you can try your definitions with symbolic inputs, too.
Download (0.085MB)
Added: 2006-02-09 License: GPL (GNU General Public License) Price:
1352 downloads
CallGraph::Lang::Fortran 0.55
CallGraph::Lang::Fortran is a Perl module with a Fortran 77 parser for creating call graphs. more>>
CallGraph::Lang::Fortran is a Perl module with a Fortran 77 parser for creating call graphs.
SYNOPSIS
use CallGraph::Lang::Fortran;
my $graph = CallGraph::Lang::Fortran->new(files => [glob(*.f)]);
print $graph->dump;
This module is a subclass of CallGraph which implements parsing Fortran 77 code for building the call graph.
<<lessSYNOPSIS
use CallGraph::Lang::Fortran;
my $graph = CallGraph::Lang::Fortran->new(files => [glob(*.f)]);
print $graph->dump;
This module is a subclass of CallGraph which implements parsing Fortran 77 code for building the call graph.
Download (0.007MB)
Added: 2006-10-06 License: Perl Artistic License Price:
1114 downloads
Path::Graph 0.02
Path::Graph is a Perl module created to generate paths from hash graph. more>>
Path::Graph is a Perl module created to generate paths from hash graph.
SYNOPSIS
Code 1
#!usr/bin/perl
my %graph = ( A => {B=>1,C=>4}, B => {A=>1,C=>2}, C => {A=>4,B=>2}
);
use Paths::Graph;
my $g = Paths::Graph->new(-origin=>"A",-destiny=>"C",-graph=>%graph);
my @paths = $g->shortest_path();
for my $path (@paths) {
print "Shortest Path:" . join ("->" , @$path) . " Cost:". $g->get_path_cost(@$path) ."n";
}
This package provides an object class which can be used to get diferents graph paths , with only pure perl code and I dont use other packet or module cpan.
This class calculates the shortest path between two nodes in a graph and return in other method , vals in the execution time (free_path_event).
Technically , the graph is composed of vertices (nodes) and edges (with optional weights) linked between them.
The shortest path is found using the Dijkstras algorithm. This algorithm is the fastest and requires all weights to be positive.
The object builds a help about this concept of the graphs , exist a method named debug().
<<lessSYNOPSIS
Code 1
#!usr/bin/perl
my %graph = ( A => {B=>1,C=>4}, B => {A=>1,C=>2}, C => {A=>4,B=>2}
);
use Paths::Graph;
my $g = Paths::Graph->new(-origin=>"A",-destiny=>"C",-graph=>%graph);
my @paths = $g->shortest_path();
for my $path (@paths) {
print "Shortest Path:" . join ("->" , @$path) . " Cost:". $g->get_path_cost(@$path) ."n";
}
This package provides an object class which can be used to get diferents graph paths , with only pure perl code and I dont use other packet or module cpan.
This class calculates the shortest path between two nodes in a graph and return in other method , vals in the execution time (free_path_event).
Technically , the graph is composed of vertices (nodes) and edges (with optional weights) linked between them.
The shortest path is found using the Dijkstras algorithm. This algorithm is the fastest and requires all weights to be positive.
The object builds a help about this concept of the graphs , exist a method named debug().
Download (0.006MB)
Added: 2007-06-28 License: Perl Artistic License Price:
857 downloads
calltree 2.3
calltree is a static call tree generator for C programs. more>>
The calltree command parses a collection of input files (assuming C syntax) and builds a graph that represents the static call structure of these files.
Calltree is similar to cflow(1) but unlike cflow(1), calltree is not based on lint(1).Calltree implements some more functions than cflow(1), but does not list the return types of the functions. This is because calltree includes an own C parser and thus may be used even on systems that dont have lint(1).
The disadvantage is that the C parser that is used by calltree is not completely correct and may not find all calls of a function. This is mainly true for calls that are done via function pointers.
Calltree is able to detect recursive function calls (e.g. functions that call themselves). Recursive function calls are marked with an ellipsis in the output.
<<lessCalltree is similar to cflow(1) but unlike cflow(1), calltree is not based on lint(1).Calltree implements some more functions than cflow(1), but does not list the return types of the functions. This is because calltree includes an own C parser and thus may be used even on systems that dont have lint(1).
The disadvantage is that the C parser that is used by calltree is not completely correct and may not find all calls of a function. This is mainly true for calls that are done via function pointers.
Calltree is able to detect recursive function calls (e.g. functions that call themselves). Recursive function calls are marked with an ellipsis in the output.
Download (0.24MB)
Added: 2005-04-13 License: GPL (GNU General Public License) Price:
1669 downloads
Devel::Graph 0.10
Devel::Graph module can turn Perl code into a graphical flowchart. more>>
Devel::Graph module can turn Perl code into a graphical flowchart.
SYNOPSIS
use Devel::Graph;
my $grapher = Devel::Graph->new();
my $graph = $grapher->decompose( if ($b == 1) { $a = 9; } );
print $graph->as_ascii();
# Will result in something like this:
################
# start #
################
|
|
v
+--------------+
| if ($b == 1) |--+
+--------------+ |
| |
| true |
v |
+--------------+ |
| $a = 9; | | false
+--------------+ |
| |
| |
v |
################ |
# end # decompose( lib/Foo.pm );
print $graph_2->as_ascii();
This module decomposes Perl code into blocks and generates a Graph::Flowchart object out of these. The resulting object represents the code in a flowchart manner and it can return an Graph::Easy object.
This in turn can be converted it into all output formats currently supported by Graph::Easy, namely HTML, SVG, ASCII art, Unicode art, graphviz code (which then can be rendered as PNG etc) etc.
<<lessSYNOPSIS
use Devel::Graph;
my $grapher = Devel::Graph->new();
my $graph = $grapher->decompose( if ($b == 1) { $a = 9; } );
print $graph->as_ascii();
# Will result in something like this:
################
# start #
################
|
|
v
+--------------+
| if ($b == 1) |--+
+--------------+ |
| |
| true |
v |
+--------------+ |
| $a = 9; | | false
+--------------+ |
| |
| |
v |
################ |
# end # decompose( lib/Foo.pm );
print $graph_2->as_ascii();
This module decomposes Perl code into blocks and generates a Graph::Flowchart object out of these. The resulting object represents the code in a flowchart manner and it can return an Graph::Easy object.
This in turn can be converted it into all output formats currently supported by Graph::Easy, namely HTML, SVG, ASCII art, Unicode art, graphviz code (which then can be rendered as PNG etc) etc.
Download (0.036MB)
Added: 2007-07-26 License: GPL (GNU General Public License) Price:
821 downloads
B::Graph 0.51
B::Graph is a Perl compiler backend to produce graphs of OP trees. more>>
B::Graph is a Perl compiler backend to produce graphs of OP trees.
SYNOPSIS
perl -MO=Graph,-text prog.pl >graph.txt
perl -MO=Graph,-vcg prog.pl >graph.vcg
xvcg graph.vcg
perl -MO=Graph,-dot prog.pl | dot -Tps >graph.ps
This module is a backend to the perl compiler (B::*) which, instead of outputting bytecode or C based on perls compiled version of a program, writes descriptions in graph-description languages specifying graphs that show the programs structure. It currently generates descriptions for the VCG tool (http://www.cs.uni-sb.de/RW/users/sander/html/gsvcg1.html) and Dot (part of the graph visualization toolkit from AT&T: http://www.research.att.com/sw/tools/graphviz/). It also can produce plain text output (which is more useful for debugging the module itself than anything else, though you might be able to make cut the nodes out and make a mobile or something similar).
OPTIONS
Like any other compiler backend, this module needs to be invoked using the O module to run correctly:
perl -MO=Graph,-opt,-opt,-opt program.pl
OR
perl -MO=Graph,-opt,obj -e BEGIN {$obj = ["hi"]}; print $obj
OR EVEN
perl -e use O qw(Graph -opt obj obj); print "hi!n";
Obj is the name of a perl variable whose contents will be examined. It cant be a my() variable, and it shouldnt have a prefix symbol ($@^*), though you can specify a package -- the name will be used to look up a GV, whose various fields will lead to the scalar, array, and other values that correspond to the named variable. If no object is specified, the whole main program, including the CV that points to its pad, will be displayed.
Each of the the opts can come from one of the following (each set is mutually exclusive; case and underscores are insignificant):
-text, -vcg, -dot
Produce output of the appropriate type. The default is -text, which isnt useful for much of anything (it does draw some nice ASCII boxes, though).
-addrs, -no_addrs
Each of the nodes on the graph produced corresponds to a C structure that has an address and includes pointers to other structures. The module uses these addresses to decide how to draw edges, but it makes the graph more compact if they arent printed. The default is -no_addrs.
-compile_order, -run_order
The collection of OPs that perl compiles a script into has two different layers of structure. It has a tree structure which corresponds roughly to the synactic nesting of constructs in the source text, and a roughly linked-list representation, essentially a postorder traversal of this tree, which is used at runtime to decide what to do next. The graph can be drawn to emphasize one structure or the other. The former, compile_order, is the default, as it tends to lead to graphs with aspect ratios close to those of standard paper.
-SVs, -no_SVs
If OPs represent a programs compiled code, SVs represent its data. This includes literal numbers and strings (IVs, NVs, PVs, PVIVs, and PVNVs), regular arrays, hashes, and references (AVs, HVs, and RVs), but also the structures that correspond to individual variables (special HVs for symbol tables and GVs to represent values within them, and special AVs that hold my() variables (as well as compiler temporaries)), structures that keep track of code (CVs), and a variety of others. The default is to display all these too, to give a complete picture, but if you arent in a holistic mood, you can make them disappear.
-ellipses, -rhombs
The module tries to give the nodes representing SVs a different shape from those of OPs. OPs are usually rectangular, so two obvious shapes for SVs are ellipses and rhombuses (stretched diamonds). This option currently only makes a difference for VCG (ellipse is the default).
-stashes, -no_stashes
The hashes that perl uses to represent symbol tables are called stashes. Since every GV has a pointer back to its stash, its virtually inevitable for the links in a graph to lead to the main stash. Unfortunately stashes, especially the main one, can be quite big, and lead to forests of other structures -- theres one GV and another SV for each magic variable, plus all of @INC and %ENV, and so on. To prevent information overload, then, the display of stashes is disabled by default.
-fileGVs, -no_fileGVs
Another kind graph element that can be annoying are the pointers from every GV and COP (a kind of OP that occurs for every statement) to the GV that represents the file from which that code came (used for error messages). By default, these links arent shown, to keep them from cluttering the graph. Also, perls internal interfaces changed in a recent version, so in perl 5.005_63 or later you cant see the fileGVs at all.
-SEQs, -no_SEQs
As it is visited in the peephole optimization phase, each OP gets a sequence number, which is currently used by anything (except the peephole optimizer, to avoid visiting OPs twice). If you want to see these, ask for them. (COPs have their own sequence numbers too, but theyre more interesting to look at -- for instance, theyre used to bound the lifetimes of lexicals).
-types, -no_types
B::Graph always gives the type of each OP symbolically (entersub), but it can also print the numeric value of the type field, if you want. The default is no_types.
-float, -no_float
Almost every OP has an op_next and an op_sibling pointer, and B::Graph colors them distinctively (pink and light blue, respectively). Because of this, it isnt strictly necessary to anchor the arrow on a line in the OPs box saying op_next. The float option lets the graph layout engine start these arrows wherever it wants, which can sometimes lead to a more pleasing layout, at the expense of being less obvious. The default is not to float.
-targlinks, -no_targlinks
Lexical (my()) variables and temporary values used by individual OPs are stored in pads, per-code arrays linked to the CV. OPs store indexes into these arrays in the op_targ field, but B::Graph can often also draw links directly from the OP to the SV that stores the name of the variable. These links dont correspond to any real pointers, however, and they can make the graph more complicated, so they are disabled by default.
<<lessSYNOPSIS
perl -MO=Graph,-text prog.pl >graph.txt
perl -MO=Graph,-vcg prog.pl >graph.vcg
xvcg graph.vcg
perl -MO=Graph,-dot prog.pl | dot -Tps >graph.ps
This module is a backend to the perl compiler (B::*) which, instead of outputting bytecode or C based on perls compiled version of a program, writes descriptions in graph-description languages specifying graphs that show the programs structure. It currently generates descriptions for the VCG tool (http://www.cs.uni-sb.de/RW/users/sander/html/gsvcg1.html) and Dot (part of the graph visualization toolkit from AT&T: http://www.research.att.com/sw/tools/graphviz/). It also can produce plain text output (which is more useful for debugging the module itself than anything else, though you might be able to make cut the nodes out and make a mobile or something similar).
OPTIONS
Like any other compiler backend, this module needs to be invoked using the O module to run correctly:
perl -MO=Graph,-opt,-opt,-opt program.pl
OR
perl -MO=Graph,-opt,obj -e BEGIN {$obj = ["hi"]}; print $obj
OR EVEN
perl -e use O qw(Graph -opt obj obj); print "hi!n";
Obj is the name of a perl variable whose contents will be examined. It cant be a my() variable, and it shouldnt have a prefix symbol ($@^*), though you can specify a package -- the name will be used to look up a GV, whose various fields will lead to the scalar, array, and other values that correspond to the named variable. If no object is specified, the whole main program, including the CV that points to its pad, will be displayed.
Each of the the opts can come from one of the following (each set is mutually exclusive; case and underscores are insignificant):
-text, -vcg, -dot
Produce output of the appropriate type. The default is -text, which isnt useful for much of anything (it does draw some nice ASCII boxes, though).
-addrs, -no_addrs
Each of the nodes on the graph produced corresponds to a C structure that has an address and includes pointers to other structures. The module uses these addresses to decide how to draw edges, but it makes the graph more compact if they arent printed. The default is -no_addrs.
-compile_order, -run_order
The collection of OPs that perl compiles a script into has two different layers of structure. It has a tree structure which corresponds roughly to the synactic nesting of constructs in the source text, and a roughly linked-list representation, essentially a postorder traversal of this tree, which is used at runtime to decide what to do next. The graph can be drawn to emphasize one structure or the other. The former, compile_order, is the default, as it tends to lead to graphs with aspect ratios close to those of standard paper.
-SVs, -no_SVs
If OPs represent a programs compiled code, SVs represent its data. This includes literal numbers and strings (IVs, NVs, PVs, PVIVs, and PVNVs), regular arrays, hashes, and references (AVs, HVs, and RVs), but also the structures that correspond to individual variables (special HVs for symbol tables and GVs to represent values within them, and special AVs that hold my() variables (as well as compiler temporaries)), structures that keep track of code (CVs), and a variety of others. The default is to display all these too, to give a complete picture, but if you arent in a holistic mood, you can make them disappear.
-ellipses, -rhombs
The module tries to give the nodes representing SVs a different shape from those of OPs. OPs are usually rectangular, so two obvious shapes for SVs are ellipses and rhombuses (stretched diamonds). This option currently only makes a difference for VCG (ellipse is the default).
-stashes, -no_stashes
The hashes that perl uses to represent symbol tables are called stashes. Since every GV has a pointer back to its stash, its virtually inevitable for the links in a graph to lead to the main stash. Unfortunately stashes, especially the main one, can be quite big, and lead to forests of other structures -- theres one GV and another SV for each magic variable, plus all of @INC and %ENV, and so on. To prevent information overload, then, the display of stashes is disabled by default.
-fileGVs, -no_fileGVs
Another kind graph element that can be annoying are the pointers from every GV and COP (a kind of OP that occurs for every statement) to the GV that represents the file from which that code came (used for error messages). By default, these links arent shown, to keep them from cluttering the graph. Also, perls internal interfaces changed in a recent version, so in perl 5.005_63 or later you cant see the fileGVs at all.
-SEQs, -no_SEQs
As it is visited in the peephole optimization phase, each OP gets a sequence number, which is currently used by anything (except the peephole optimizer, to avoid visiting OPs twice). If you want to see these, ask for them. (COPs have their own sequence numbers too, but theyre more interesting to look at -- for instance, theyre used to bound the lifetimes of lexicals).
-types, -no_types
B::Graph always gives the type of each OP symbolically (entersub), but it can also print the numeric value of the type field, if you want. The default is no_types.
-float, -no_float
Almost every OP has an op_next and an op_sibling pointer, and B::Graph colors them distinctively (pink and light blue, respectively). Because of this, it isnt strictly necessary to anchor the arrow on a line in the OPs box saying op_next. The float option lets the graph layout engine start these arrows wherever it wants, which can sometimes lead to a more pleasing layout, at the expense of being less obvious. The default is not to float.
-targlinks, -no_targlinks
Lexical (my()) variables and temporary values used by individual OPs are stored in pads, per-code arrays linked to the CV. OPs store indexes into these arrays in the op_targ field, but B::Graph can often also draw links directly from the OP to the SV that stores the name of the variable. These links dont correspond to any real pointers, however, and they can make the graph more complicated, so they are disabled by default.
Download (0.012MB)
Added: 2007-06-26 License: Perl Artistic License Price:
851 downloads
Chart::Graph::Xrt3d 3.2
Chart::Graph::Xrt3d is a Perl module for creating 3D graph charts. more>>
Chart::Graph::Xrt3d is a Perl module for creating 3D graph charts.
SYNOPSIS
#Include module
use Chart::Graph::Xrt3d qw(xrt3d);
# Function call
xrt3d(%options,
@data_set
);
This module is unmaintained, it worked with Sitrakas XRT, and hasnt been tested against newer versions.
Sitraka (now Quest) makes a number of graphics packages for UNIX systems. XRT is a Motif-based commercial software product that has been adapted by CAIDA using a combination of C drivers and Perl function xrt3d(). The Perl function xrt3d() provides access to the three dimensional graphing capabilities of XRT from Perl. To access the two dimensional graphing using XRT, use xrt2d() also supplied in the Chart::Graph package.
<<lessSYNOPSIS
#Include module
use Chart::Graph::Xrt3d qw(xrt3d);
# Function call
xrt3d(%options,
@data_set
);
This module is unmaintained, it worked with Sitrakas XRT, and hasnt been tested against newer versions.
Sitraka (now Quest) makes a number of graphics packages for UNIX systems. XRT is a Motif-based commercial software product that has been adapted by CAIDA using a combination of C drivers and Perl function xrt3d(). The Perl function xrt3d() provides access to the three dimensional graphing capabilities of XRT from Perl. To access the two dimensional graphing using XRT, use xrt2d() also supplied in the Chart::Graph package.
Download (0.24MB)
Added: 2006-08-01 License: Perl Artistic License Price:
677 downloads
Chart::Graph::Xrt2d 3.2
Chart::Graph::Xrt2d is a Perl module for creating graph charts. more>>
Chart::Graph::Xrt2d is a Perl module for creating graph charts.
SYNOPSIS
#Include module
use Chart::Graph::Xrt2d qw(xrt2d);
# Function call
xrt2d(%options,
[%data_options1, @data_set1],
[%data_options2, @data_set2],
.
.
);
This module is unmaintained, it worked with Sitrakas XRT, and hasnt been tested against newer versions.
Sitraka (now Quest) makes a number of graphics packages for UNIX systems. XRT is a Motif-based commercial software product that has been adapted by CAIDA using a combination of C drivers and Perl function xrt2d(). The Perl function xrt2d() provides access to the two dimensional graphing capabilities of XRT from Perl. To access the three dimensional graphing using XRT, use xrt3d() also supplied in the Chart::Graph package.
<<lessSYNOPSIS
#Include module
use Chart::Graph::Xrt2d qw(xrt2d);
# Function call
xrt2d(%options,
[%data_options1, @data_set1],
[%data_options2, @data_set2],
.
.
);
This module is unmaintained, it worked with Sitrakas XRT, and hasnt been tested against newer versions.
Sitraka (now Quest) makes a number of graphics packages for UNIX systems. XRT is a Motif-based commercial software product that has been adapted by CAIDA using a combination of C drivers and Perl function xrt2d(). The Perl function xrt2d() provides access to the two dimensional graphing capabilities of XRT from Perl. To access the three dimensional graphing using XRT, use xrt3d() also supplied in the Chart::Graph package.
Download (0.24MB)
Added: 2006-08-01 License: Perl Artistic License Price:
1179 downloads
graph-tool 0.9
graph-tool is a program to help with statistical analysis of graphs. more>>
graph-tool project is a program to help with statistical analysis of graphs.
Main features:
- support for directed and undirected graphs
- support for arbitrary vertex or edge properties
- generic filtering of edges and vertices
- several statistical measurements:
- degree (or scalar property) histogram
- vertex-vertex degree (or scalar property) correlation
- average nearest neighbours degree (or scalar property)
- vertex-edge-vertex correlation
- clustering coefficients
- assortativity coefficient
- average distance
- component statistics
- generation of random graphs with arbitrary degree distribution and degree correlation
- graph history measurement based on filtering
- support for graphml and dot file formats
The core algorithms are written in C++, making use of the Boost Graph Library, and template metaprogramming techniques, with performace in mind. The command line interface and other outlying code are written in python.
<<lessMain features:
- support for directed and undirected graphs
- support for arbitrary vertex or edge properties
- generic filtering of edges and vertices
- several statistical measurements:
- degree (or scalar property) histogram
- vertex-vertex degree (or scalar property) correlation
- average nearest neighbours degree (or scalar property)
- vertex-edge-vertex correlation
- clustering coefficients
- assortativity coefficient
- average distance
- component statistics
- generation of random graphs with arbitrary degree distribution and degree correlation
- graph history measurement based on filtering
- support for graphml and dot file formats
The core algorithms are written in C++, making use of the Boost Graph Library, and template metaprogramming techniques, with performace in mind. The command line interface and other outlying code are written in python.
Download (0.27MB)
Added: 2006-08-08 License: GPL (GNU General Public License) Price:
1178 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above call graph search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed