Related articles |
---|
DMS scale legacy software reengineering toolkit available. idbaxter@semdesigns.com (Ira Baxter) (1999-04-26) |
From: | Ira Baxter <idbaxter@semdesigns.com> |
Newsgroups: | comp.compilers |
Date: | 26 Apr 1999 02:05:21 -0400 |
Organization: | Compilers Central |
Keywords: | tools, available |
Semantic Designs is completing a toolkit, DMS, to allow analysis,
translation, and/or reverse engineering of large scale software
systems, containing arbitrary languages ("domains") involved. DMS can
also be used for domain-specific program generation.
As an sample application, on our website you can find description of a
particular DMS configuration designed to find almost-identical blocks
of code ("clones") in large systems, and remove them by replacing them
with invocations of abstractions (macros, procedures, etc.). The
technology is generic enough so we have applied it to COBOL, C/C++,
Java, Fortran 90, (and recently as an interesting experiment, to
VHDL.). You can download a demo C/C++ clone detector/remover; (it
will remove clones from small programs, but not from large ones).
DMS offers the reengineer the following capabilities:
* robust parser/lexer generation, even for ambiguous languages,
with full ASCII and UNICODE support.
* automatic construction of abstract (not concrete) syntax trees
(nonvalue-carrying terminals and unit productions are supressed;
syntax-lists are converted into AST list nodes).
Literal values are easily converted to binary values for fast
internal manipulation.
* Semi-automated pretty-printer generation (to reverse the parsing process)
(Somebody has to define "pretty" in terms of layout/formatting
information).
* Multi-pass attribute-evaluator generation from grammar, to allow
arbitrary
analysis (including name/type analysis procedures) to be specificed
in terms of the *concrete* grammar provided.
* Sophisticated symbol-table construction facilities for
global/local/inherited and other language-dependent namespace
management rules
* Control-flow graph and data flow analysis framework, to allow
data-flow
analysis problems to be posed and answered.
* Multiple domains can be represented at the same time. This is
particularly handy if one wants to translated from one notation.
* Transforms can be coded procedurally,
or can be written in surface-to-surface syntax forms.
* A full Associative/Commutative rewrite engine that operates
on DAGs that can be used to apply sets of transforms.
* An algebraic specification subsystem can be used to specify arbitirary
algebras (this is just a DMS domain!), and the axioms can be treated as
a set of rewrite rules. (This allows one to code arbitrary simplification
procedures). (We have done boolean simplification on equational
formulas that are essentially 1 million terms in size; we have also
modelled optimization of transistor [not gates!] circuits this way).
* *** SCALE *** DMS is designed to work on source systems with up to
a ** million ** lines of specification, on street-available Windows/NT
hardware.
The DMS system is coded in a parallel language, PARLANSE, to provide
computational horsepower consistent with this scale; we have 8-way W/NT
systems at SD on which we run DMS. As an example, the attribute
evalution process is automatically parallelized, and provides usually
an
almost N-way speedup on an N-way system. DMS will also run
on a single processor system without any source code changes,
with no performance penalty.
In addition, we have well-tested grammars for COBOL85, IBM COBOL2 with
CICS/SQL, with name and type resolution, ANSI C and C++ with
intelligently managed preprocessor directives, VHDL and Progress (a
4GL). We have less well tested but complete grammars for
Fortran95/90/77, Java, and lightly tested PL/1, Verilog, JCL and SQL
grammars. Other language grammars can be defined pretty quickly with
DMS.
This is an early version of DMS, so we are not offering it for sale at
this point. We are, however, looking for early adopters, who have a
pressing need for scale reengineering, and are willing to carry out
related service activities in cooperation with those adopters.
Interested parties should contact me.
Ira Baxter, Ph.D. email: idbaxter@semdesigns.com
Semantic Designs, Inc. voice: 512-250-1018 x140
12636 Research Blvd. #C-214 FAX: 512-250-1191
Austin, Texas 78759-2200 http://www.semdesigns.com
Return to the
comp.compilers page.
Search the
comp.compilers archives again.