XTRAN Examples
The following examples show how you can use XTRAN, our software development meta-tool, to automate virtually any software, data, or text task.
XTRAN examples by
computer language
XTRAN examples
by activity:
- Analyze computer
languages
- Re-engineer computer
languages
- Translate computer
languages
- Generate computer
languages
- Analyze and manipulate
data
- Analyze and manipulate
text
- Query data
interactively
- Combine these capabilities
XTRAN examples
by area of application:
- Code quality monitoring and
remediation
- Reverse engineering architecture from
code
- Modernizing
code
- Migrating code
- Forensic
analysis
- Code visualization
- Code
utilities
- Web
utilities
- Data
utilities
- Text
utilities
- General
utilities
- Year 2000 (Y2K) Impact Analysis (preserved as an XTRAN illustration)
XTRAN examples by computer language
Click on your language below for examples using XTRAN to automate manipulation of that language:
- Assembler — HP (Digital, Compaq) MACRO-11
- Assembler — HP (Digital, Compaq) VAX MACRO
- Assembler — Encore (SEL, Gould)
- C
- C++
- C#
- COBOL
- EDL (IBM)
- Fortran
- HTML
- Java
- Natural (Software AG)
- Pascal
- PL/I
- PL/ix
(IBM)
- PL/M (Intel)
- RPG
- XML
Examples listed by computer language (indexed above):
- Assembler — HP (Digital, Compaq) MACRO-11
- Assembler — HP (Digital, Compaq) VAX MACRO
- Analyze
- Analyze problem operands
- Translate to C
- Translate user function entry macro
- Translate labeled structures
- Translate problem operands
- Assembler — Encore (SEL, Gould)
- C
- Analyze structure/union member offsets and sizes
- Analyze cyclomatic complexity
- Create module/function cross-reference
- Analyze year 2000 (Y2K) impact
- Restructure to
eliminate
goto
s - Add I/O documentation
- Impose preprocessor macro on existing code
- Match & replace expressions
- Combine expression statements
- Eliminate dead code
- Protect included files from multiple inclusion
- Link parent statements with ending child
statements, using HTML tags
- Analyze straight-line code length by
nesting depth
- Forensic analysis of function
signatures
- Vertically align DSV data
items
- TemplaGen
— template-driven artifact generation from repository
data
- C++
- Markov analysis of statement type transitions
- Analyze year 2000 (Y2K) impact
- Restructure to
eliminate
goto
s - Match & replace expressions
- Combine expression statements
- Impose preprocessor macro on existing code
- Protect included files from multiple inclusion
- Link parent statements with ending child
statements, using HTML
tags
- Vertically align DSV data
items
- C#
- Analyze year 2000 (Y2K) impact
- Combine expression statements
- Match & replace expressions
- Restructure to
eliminate
goto
s - Link parent statements with ending child
statements, using HTML
tags
- COBOL
- Analyze symbol usage
- Create abstract of
code
- Mine code for Business Rule
conditions
- Restructure to eliminate
GO TO
s - Combine arithmetic
statements
- Replace arithmetic statements with
COMPUTEs
- EDL (IBM Series/1)
- Fortran
- HTML
- Generate HTML table rows from DSV
data
- Analyze tag & attribute usage
- Analyze embedded substitution usage
- Cross-link and index documents
- Generate image table
- Error check links & generate site
map
- Mine Web pages for
keywords
- Insert anchors into
HTML
- TemplaGen
— template-driven artifact generation from repository
data
- Java
- Colorize code by nesting depth, display
as HTML
- Highlight expressions, display as
HTML
- Analyze year 2000 (Y2K) impact
- Match & replace expressions
- Combine expression statements
- Link parent statements with ending child
statements, using HTML
tags
- Natural (Software AG)
- Pascal
- Create module/function cross-reference
- Translate to C
- Translate array subscripts
- Automatically "unnest" PROCEDUREs & FUNCTIONs
- Translate string operations
- PL/I
- Analyze computer language features
used
- Analyze constant/expression PROCEDURE arguments
- Analyze knots (GOTO crossings)
- Highlight file I/O & display I/O code, display as HTML
- Create module/function cross-reference
- Query module/function analysis results
interactively
- Restructure to
eliminate
GOTO
s - Eliminate dead code
- Translate to C
- Translate PROCEDURE arguments
- Translate parameters/arguments as "by value"
- PL/ix (IBM)
- PL/M (Intel)
- Create module/function cross-reference
- Analyze year 2000 (Y2K) Impact
- Translate to C
- $INCLUDE implies typedef'd data type
- Translate CALL statement
- Translate BASED() attribute, using cast pointers
- Translate $IF/$ELSEIF/$ELSE Statements
- RPG
- XML
Using XTRAN to Analyze Computer Languages
Assemblers
C
C++
COBOL
HTML
Java
Natural (Software AG)
PL/I
RPG
XML
Module/Function Cross-References
These examples illustrate the language-independent nature of XTRAN's rules language. They were all produced using exactly the same set of rules.
Interactive query of code mining
results
Using XTRAN
for Year 2000 (Y2K) Impact
Analysis
Using XTRAN to Re-Engineer Computer Languages
C
Restructure to
eliminate
goto
s
Combine C, C++, Java, or C#
expression statements
C++
Restructure to
eliminate
goto
s
Combine C, C++, Java, or C#
expression statements
Impose preprocessor macro on existing
code
C#
COBOL
HTML
Java
PL/I
XML
Using XTRAN to Translate Computer Languages
Translate assemblers to C
HP (Digital, Compaq) MACRO-11
assembler
HP (Digital, Compaq) VAX MACRO
assembler
User function entry macro in HP
(Digital, Compaq) VAX MACRO
Labeled structures in HP (Digital,
Compaq) VAX MACRO
Translate Fortran to C
Translate IBM Series/1 EDL to C
Translate Pascal to C
Translate PL/I to C
Translate PL/ix to C++
Translate PL/M to C
Using XTRAN to Generate Computer Languages
Error check HTML links &
generate site map
Create script to renumber
files
Cross Link and Index HTML
Documents
TemplaGen —
template-driven artifact generation from repository data
Using XTRAN to Analyze and Manipulate Data
Generate HTML table rows from DSV
data
Load DSV data into
XTRAN data base (associative array)
Normalize vocabulary in DSV
data
Tally DSV values by field
name
Normalize tags and vocabulary in
XML
Create script to renumber
files
Recursive vs. iterative factorial
computation
Interactive query of data mining
results
Vertically align DSV data
items
TemplaGen
— template-driven artifact generation from repository
data
Using XTRAN to Analyze and Manipulate Text
Format text items into
columns
Interactive query of text mining
results
Command-driven text processing
utility (ProcText)
Vertically align DSV data
items
Compute Fog Index for prose
text
TemplaGen
— Template-driven artifact generation from repository
data
Combining Multiple XTRAN Capabilities
The following example combines XTRAN's code analysis, re-engineering, generation, data analysis, and text manipulation capabilities.
Using XTRAN to monitor and remediate code quality
Analyze cyclomatic complexity of C, C++,
Java, or C#
Analyze knots (GOTO crossings) in
PL/I
Analyze Straight-line Code Length
by Nesting Depth
Restructure C, C++, or C# to
eliminate
goto
s
Restructure COBOL to eliminate
GO
TO
s
Restructure PL/I to
eliminate
GOTO
s
Impose C/C++ preprocessor macro on
existing code
Combine C, C++, Java, or C# expression
statements
Combine COBOL arithmetic
statements
Colorize code by nesting depth, display
as HTML
Using XTRAN to reverse engineer architecture from code
Create module/function cross-reference
(language-independent rules):
Analyze computer language features
used
Mine code for Business Rule
conditions
Analyze structure/union member offsets and
sizes in C, C++, Java, or C#
Analyze HP (Digital, Compaq) MACRO-11
assembler
Analyze HP (Digital, Compaq) VAX MACRO
assembler
Highlight file I/O & display I/O
code in PL/I, display as HTML
Link parent statements with ending child
statements, using HTML
tags
Analyze tag and attribute usage in
HTML
Analyze embedded substitution usage in
HTML
Analyze tag and attribute usage in
XML
Analyze entity reference usage in
XML
Markov analysis of statement type
transitions in C++
Using XTRAN to modernize code
Add I/O documentation to C, C++, Java, or
C#
Mine code for Business Rule
conditions
Impose C/C++ preprocessor macro on
existing code
Protect C or C++ included files from
multiple inclusion
Impose file "includes" on
existing PL/ix code
Replace COBOL arithmetic statements with
COMPUTEs
Using XTRAN to migrate code
Translate PL/I PROCEDURE arguments to C
Analyze PL/I constant/expression
PROCEDURE arguments
Translate PL/I PROCEDURE
parameters/arguments to C as "by value"
Translate Pascal array subscripts to
C
Automatically "unnest" Pascal
PROCEDUREs & FUNCTIONs when translating to C
Translate Pascal string operations to
C
Translate Fortran COMMONs and EQUIVALENCEs
to C
Translate PL/M CALL Statement to
C
$INCLUDE implies typedef'd data type when
translating PL/M to C
Translate PL/M BASED() attribute to C
using cast pointers
Translate PL/M $IF/$ELSEIF/$ELSE
Statements to C
Translate HP (Digital, Compaq) MACRO-11
assembler to C
Translate HP (Digital, Compaq) VAX MACRO
assembler to C
Translate labeled structures in HP
(Digital, Compaq) VAX MACRO to C
Analyze HP (Digital, Compaq) VAX MACRO
problem operands
Translate problem operands in HP (Digital,
Compaq) VAX MACRO to C
Translate user function entry macro in HP
(Digital, Compaq) VAX MACRO to C
Translate IBM Series/1 EDL to
C
Translate Encore (SEL, Gould) assembler to
C
Translate in-line function arguments in
Encore (SEL, Gould) assembler to C
Translate HP (Digital, Compaq) Runoff to
HTML
Translate HP (Digital, Compaq) Runoff to
Rich Text Format (RTF)
Using XTRAN for forensic analysis
Using XTRAN for code visualization
Colorize C, C++, Java, or C# code by
nesting depth, display as HTML
Highlight file I/O & display I/O
code in PL/I, display as HTML
Using XTRAN to create code utilities
Analyze computer language features
used
Mine code for Business Rule
conditions
Analyze structure/union member offsets and
sizes in C, C++, Java, or C#
Analyze XML tag & attribute
usage
Analyze XML entity reference
usage
Match & replace expressions in C,
C++, Java, or C#
Impose file "includes" on
existing PL/ix code
Protect C or C++ included files from
multiple inclusion
Link parent statements with ending child
statements, using HTML
tags
Normalize tags and vocabulary in
XML
Interactive query of code mining
results
Vertically align DSV data
items
TemplaGen
— template-driven artifact generation from repository
data
Using XTRAN to create Web utilities
Generate HTML table rows from DSV
data
Cross Link and Index HTML
Documents
Error check HTML links &
generate site map
Analyze embedded substitution usage in
HTML
Analyze tag and attribute usage in
HTML
Interactive query of HTML mining
results
TemplaGen
— template-driven artifact generation from repository
data
Using XTRAN to create data utilities
Load DSV data into
XTRAN data base (associative array)
Generate HTML table rows from DSV
data
Normalize vocabulary in DSV
data
Tally DSV values by field
name
Normalize tags and vocabulary in
XML
Interactive query of data mining
results
Vertically align DSV data
items
TemplaGen
— template-driven artifact generation from repository
data
Using XTRAN to create text utilities
Format text items into
columns
Interactive query of text mining
results
Command-driven text processing
utility (ProcText)
Vertically align DSV data
items
Compute Fog Index for prose
text
TemplaGen
— template-driven artifact generation from repository
data