SBIR/STTR Research Award

Refactor++: Automated Support for Program Enhancements

Award identifier 814d39c6d710a3d679284f184fec8e11ffaa180785730a7fbed0e0667e186a3aAwarding agency Department of Energy

Award amount

$1,000,000

Program and phase

SBIR · Phase II

Award year

2012

Explore This Research Award in CaptureIQ

Research the technology, evaluate the recipient and agency, identify related opportunities, and explore potential follow-on work with CaptureIQ.

Award details

Awarding agency
Department of Energy
Branch
Not reported
Recipient company
Semantic Designs Inc
Proposal award date
2012-08-08
Contract end date
2014-08-07
UEI
JCJLYU8DYPJ3
Solicitation number
DE-FOA-0000676
Topic code
62 c

Research abstract

Science and engineering depend on evolving ever more complex software, typically coded in C++, to investigate phenomena or design sophisticated products. The rate of delivered value for such software is often limited by its organization, and scientists/engineers spend significant effort trying to understand the code organization and restructuring the code to enable the next interesting concept or experiment to be integrated in trustworthy fashion. This project will build Refactor++, a tool to help engineers restructure their C++ code by applying highly automated interactive support. Reliably modifying computer software is hard. We leverage a commercial pro- gram transformation system, DMS, to handle the additional difficulties of C++: complex syntax and semantics (significantly extended by the recent C++11 standards), and DMS & apos;s underlying parallel language, PARLANSE, to handle the problem caused by the growing size (millions of lines) of C++ applications. We invent code parsing algorithms to handle the pervasive problem of capturing preprocessor directives. We encode significant knowledge about C++ into program analysis tools. We build specialized refactorings for common code restructuring tasks using the analysis tools to ensure that automated code changes made by Refactor++ are reliable, so users can apply them with impunity. Many-core parallelism of burgeoning workstations will be used to reduce response times for difficult analyses of large applications, by scaling PARLANSE from 32 to 64 bits and 64 cores. To enable wide-spread adoption and therefore benefit, we leverage existing IDEs as front-ends for Refactor++. We found a novel means to parse and retain C++ preprocessor conditionals, enabling analysis tools to process the code as the user sees it; a patent is being filed. We enhanced the existing tool & apos;s C++98 front end to parse all of C++11, as well as OpenMP directives used in scientific computing. A control flow analyzer was built for C++98 to gauge the effort of building a full flow analyzer; that analyzer was harnessed to find certain types of inefficient C++ operations invisible to programmers. An initial robust Renaming refactoring was implemented for a wide variety of C++ entities. An architecture for a full generic client-server based Refactor++ tool was designed. A plan for engineering a 64 bit PARLANSE to run on both Windows and Linux systems was devised. Symbol table, control and dataflow analysis algorithms that account for preprocessor conditionals will be implemented for full C++11. A variety of useful analyzers (locate precise definition/use, find dead/duplicate code, expose potential parallelism) and refactoring actions (rename, move code entity, restructure #include nests, remove duplicated code) will be implemented on top of a structure editor embedded in a Refactoring server. A widely available client IDE (Eclipse) will be integrated with the Refactoring server. A 64 bit PARLANSE compiler ecosystem will be built using DMS & apos;s present transformation capability as the compiler foundation. Commercial Applications and Other Benefits: Modern science, ever more dependent on supercomputing, will produce results faster, improving US society and economic prowess. Already-ubiquitous embedded systems can provide more capability in shorter engineering windows. Parallel computing will become somewhat easier to accomplish due to engineers insight into operation of their software, and restructuring to avoid misunderstandings and coding flaws. The infrastructure supporting Refactor++ will be applicable to other computer languages, eventually benefiting the entire software development community.

Technology keywords

Not reported

Other awards by this recipient

Verified by the same UEI. These are other public SBIR/STTR award pages, not a merged company record.

Awards with the same topic code

Verified by an exact topic code match. This is not a text-similarity match.

Research funding history

10 SBIR/STTR records share this UEI (1995–2021). Reported award amounts total $1,800,842. Reported amounts are not federal obligations.

Phases: Phase I, Phase II

Agencies: Department of Defense, Department of Energy, National Science Foundation

Agency intelligence

Department of Energy

Back to SBIR/STTR Research Awards

Don't take our word for it. Ask AI about RFPCapture.

See what leading AI assistants have to say about RFPCapture and CaptureIQ.

Gemini opens without a prefilled question. The question is copied to your clipboard when the button works. You can also copy it here:

What is RFPCapture.com and its CaptureIQ platform from Smart Logic AI? How does it help federal contractors discover opportunities, evaluate bid/no-bid decisions, research government contracts, and prepare proposals? How does it compare with other federal capture platforms? Use independent sources where available.