HR001123C0079
Definitive Contract
Overview
Government Description
Cram: C++ To Rust (Programming Language) Assisted Migration PH2, SBIR Phase II
Awardee
Awarding / Funding Agency
PSC
Place of Performance
Ithaca, NY 14850 United States
Pricing
Cost No Fee
Set Aside
Small Business Set Aside - Total (SBA)
Extent Competed
Full And Open Competition After Exclusion Of Sources
Est. Average FTE
2
Related Opportunity
Analysis Notes
Amendment Since initial award the Potential End Date has been extended from 02/28/26 to 09/16/26.
Grammatech was awarded
Definitive Contract HR001123C0079 (HR0011-23-C-0079)
for Cram: C++ To Rust (PROGRAMMING LANGUAGE) Assisted Migration Ph2, Sbir Phase Ii
worth up to $1,499,786
by Defense Advanced Research Projects Agency
in February 2023.
The contract
has a duration of 3 years 7 months and
was awarded
through solicitation Small Business Innovation Research (SBIR) and Small Business Technology Transfer (STTR)
with a Small Business Total set aside
with
NAICS 541715 and
PSC AC15
via direct negotiation acquisition procedures with 3 bids received.
SBIR Details
Research Type
Small Business Innovation Research Program (SBIR) Phase II
Title
CRAM: C++ to Rust Assisted Migration PH2
Abstract
The C language has traditionally emphasized a program's runtime performance, achieved by leaving low-level memory management to the programmer. Countless program crashes, hangs, and security vulnerabilities have been attributed to uninformed or malicious use of this freedom. C's extension C++ provides better programming abstractions but insists on backward compatibility with C and thus suffers from similar risks, which are unacceptable in domains like systems programming or for defense applications. In contrast, languages considered to be (memory-)safe restrict direct memory access by programmers and include C#, Java, and Go. The Rust programming language offers safe programming features without resorting to expensive runtime management techniques like garbage collection and can therefore promise to deliver well-performing system-level and network applications. In order to extend the advantages of modern languages to legacy code, this proposal presents a strategy for migrating actively used C++ code to Rust that maximally benefits from the idiomatic and safety features of Rust, such as aggressively employing move semantics for assignments, and generics for reusable code patterns. We are seeking to produce human-maintainable programs in Rust, suitable for code under active development. Our strategy is to perform the migration in two stages. We begin with a refactoring step that attempts to harden the given C++ code, guided by Rust safe-programming rules. This step prepares the code for an easier migration to Rust, but also results in safer C++ code as a useful intermediate product. The refactoring is followed by a target code generation step, which attempts to recognize code segments with a particular intent, represents these in a language-agnostic concept representation, and retargets these concepts into Rust, using a library of Rust code templates. Acknowledging the hardness of the problem and the boldness of our proposed solution, our approach is semi-automatic, requesting user assistance to resolve ambiguities in inferring the intent of the code. The user interaction is supported by the integration of CRAM into an Integrated Development Environment, which displays the source code, the outcome of any refactorings, and the result of migrating code segments. For each operation performed on the source code, the user has the option of accepting or rejecting it, and of modifying its result. Despite human involvement, a problem of this magnitude demands an arsenal of assurance artifacts, such as tests and proofs, that aim to give evidence of the correctness of the migration, and the reliability of the target program. Our approach will deliver both migrated and automatically generated test cases, as well as proofs that establish the preservation of the program semantics by our refactoring and code generation steps.
Research Objective
The goal of phase II is to continue the R&D efforts initiated in Phase I. Funding is based on the results achieved in Phase I and the scientific and technical merit and commercial potential of the project proposed in Phase II.
Topic Code
HR001121S0007-10
Agency Tracking Number
D2-2738
Solicitation Number
HR001121S0007.I
Contact
Daniel Goodwin
Status
(Open)
Last Modified 12/30/25
Period of Performance
2/28/23
Start Date
9/16/26
Current End Date
9/16/26
Potential End Date
Obligations
$1.5M
Total Obligated
$1.5M
Current Award
$1.5M
Potential Award
Award Hierarchy
Definitive Contract
HR001123C0079
Subcontracts
Activity Timeline
Opportunity Lifecycle
Procurement history for HR001123C0079
Transaction History
Modifications to HR001123C0079
People
Suggested agency contacts for HR001123C0079
Competition
Number of Bidders
3
Solicitation Procedures
Negotiated Proposal/Quote
Evaluated Preference
None
Commercial Item Acquisition
Commercial Item Procedures Not Used
Simplified Procedures for Commercial Items
No
Other Categorizations
Subcontracting Plan
Plan Not Required
Cost Accounting Standards
Exempt
Business Size Determination
Small Business
Defense Program
None
DoD Claimant Code
None
IT Commercial Item Category
Not Applicable
Awardee UEI
CBXRSPNRF8F9
Awardee CAGE
0H7V8
Agency Detail
Awarding Office
HR0011 DEF ADVANCED RESEARCH PROJECTS AGCY
Funding Office
HR0011
Created By
james.ritch@darpa.mil
Last Modified By
james.ritch@darpa.mil
Approved By
james.ritch@darpa.mil
Legislative
Legislative Mandates
None Applicable
Performance District
NY-19
Senators
Kirsten Gillibrand
Charles Schumer
Charles Schumer
Representative
Marcus Molinaro
Modified: 12/30/25