DMS scale legacy software reengineering toolkit available.

Ira Baxter <>
26 Apr 1999 02:05:21 -0400

          From comp.compilers

Related articles
DMS scale legacy software reengineering toolkit available. (Ira Baxter) (1999-04-26)
| List of all articles for this month |

From: Ira Baxter <>
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
      * Multi-pass attribute-evaluator generation from grammar, to allow
                  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
                  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
          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
          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

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:
Semantic Designs, Inc. voice: 512-250-1018 x140
12636 Research Blvd. #C-214 FAX: 512-250-1191
Austin, Texas 78759-2200

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.