UNPROG Practical Automatic Program

Background Programming plans are units of programming knowledge connecting abstract concepts and their implementations. Existing research assumes that plan instances can be recognized to recover the programmer?s abstract concepts and intentions, but this approach has not been confirmed empirically.

Invention Description UNPROG is a practical, automatic program that recognizes abstract programming concepts in existing software. Such understanding is useful in software engineering processes such as maintenance, migration, reverse engineering, re-engineering, and re-use. The program representation is a hierarchical control flow/data flow graph decomposed into a tree of submodels using propers (single entry/single exit control flow subgraphs). Plans are represented by similar graphs with added qualifications. Recognition is based on simple matching between submodels and plans.

Benefits

Programmers' time to understand programs is reduced as the program studies and automates this process Method is robust, efficient, and scalable Can be formed for all language constructs, permitting static determination of control and data flow

Features

UNPROG recognized 34 of 35 instances of ?bounded linear search? in 20 published programs for a double-nested search problem. Based on this, the transformation engine changed original ?unstructured? code to improved, documented ?structured? source code containing only WHILE loops. Independent components of UNPROG include:
Table-driven parser generator, which can create parsers for common programming languages Cobol parser with semantics creating graph-based program representation with abstract control and data flow Prime parser which decomposes such a graph into a hierarchy of single entry/single exit subgraphs (HMODEL)
Representation for classes of implementations (STIMP) of abstract programming concepts, e.g., ?read-process loop?
Matcher which efficiently recognizes programming concept instances by finding STIMP instances in an HMODEL Transformation engine which generates new source code based on recognized concepts and associated knowledge Executive with extensive facilities for sequencing operations, output, example maintenance, debugging

Market Potential/Applications This software is useful in many important software engineering processes and tools for software mainte nance and development, such as computer-aided software engineering CASE tools. Examples include program translators, analysis maintenance and migration assistants, and tools to characterize and improve programs.

IP Status One U.S. copyrights registered

UT Researcher John E. Hartman, Ph.D., Computer & Information, Ohio State University Benjamin J. Kuipers, Ph.D., Computer Sciences, The University of Texas at Austin


OTC Contact Information Licensing Associate, Licensing Associate

512-471-2995

Type of Offer: Licensing



Next Patent »
« More Computer Science Patents

Share on      


CrowdSell Your Patent