Search Prime Contracts

HR001123C0079

Definitive Contract

Overview

Government Description
Cram: C++ To Rust (Programming Language) Assisted Migration PH2, SBIR Phase II
Awardee
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
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
93.0% Complete

Obligations
$1.5M
Total Obligated
$1.5M
Current Award
$1.5M
Potential Award
100% Funded

Award Hierarchy

Definitive Contract

HR001123C0079

Subcontracts

0

Activity Timeline

Interactive chart of timeline of amendments to HR001123C0079

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
Representative
Marcus Molinaro
Modified: 12/30/25