# Checked C

> extension of C programming language

**Wikidata**: [Q97658553](https://www.wikidata.org/wiki/Q97658553)  
**Source**: https://4ort.xyz/entity/checked-c

## Summary
Checked C is an extension of the C programming language designed to enhance safety and prevent common programming errors. Developed by Microsoft Research, it introduces new syntax and features to C while maintaining backward compatibility, making it a practical tool for secure systems programming.

## Key Facts
- **Type**: Extension of the C programming language, classified as a programming language and an extension (instance of ).
- **Versions**:
  - **0.5**: Released on June 13, 2016 ([GitHub](https://github.com/microsoft/checkedc/releases/tag/v0.5-final)).
  - **0.6**: Released on January 5, 2017 ([GitHub](https://github.com/microsoft/checkedc/releases/tag/v0.6-final)).
  - **0.7**: Released on February 15, 2018 ([GitHub](https://github.com/microsoft/checkedc/releases/tag/v0.7-final)).
  - **0.7.1** (preferred version): Released on June 8, 2018 ([GitHub](https://github.com/microsoft/checkedc/releases/tag/v0.7.1-final)).
- **Websites**:
  - Official Microsoft Research page: [https://www.microsoft.com/en-us/research/project/checked-c/](https://www.microsoft.com/en-us/research/project/checked-c/)
  - Project website: [https://www.checkedc.org/](https://www.checkedc.org/)
- **Source Code**:
  - Primary repository: [https://github.com/microsoft/checkedc](https://github.com/microsoft/checkedc) (hosted on GitHub, owned by Microsoft).
  - Secondary repository: [https://github.com/checkedc/checkedc](https://github.com/checkedc/checkedc).
- **Documentation**: Described in the source *"Checked C: Making C Safe by Extension"*.
- **Wikidata**: Listed with a Google Knowledge Graph ID `/g/11frmp1xpm` and a Wikipedia entry in Russian (`ru`).
- **Sitelink Count**: 1 (Wikidata).

## FAQs

**What is Checked C?**
Checked C is an extension of the C programming language that adds safety features to prevent common errors like buffer overflows and memory corruption, while remaining compatible with standard C code.

**Who developed Checked C?**
It was developed by Microsoft Research as part of their efforts to improve systems programming security.

**What versions of Checked C have been released?**
The released versions include 0.5 (2016), 0.6 (2017), 0.7 (2018), and 0.7.1 (2018, preferred version).

**Where can I find the source code for Checked C?**
The primary repository is hosted on GitHub at [https://github.com/microsoft/checkedc](https://github.com/microsoft/checkedc), with a secondary repository at [https://github.com/checkedc/checkedc](https://github.com/checkedc/checkedc).

**Is Checked C backward-compatible with standard C?**
Yes, Checked C is designed to be backward-compatible, allowing existing C code to work while enabling new safety features.

## Why It Matters
Checked C addresses critical security vulnerabilities in C, a language widely used in systems programming but prone to memory-related errors. By introducing compile-time checks and new syntax, it helps prevent exploits like buffer overflows, which are common in low-level software. Its backward compatibility ensures adoption without requiring a full rewrite of existing code, making it a practical solution for improving security in legacy systems.

## Notable For
- **Safety Extensions**: Introduces new syntax (e.g., bounds-checked pointers) to prevent memory corruption.
- **Microsoft Research Backing**: Developed by a leading research team, ensuring robust design and testing.
- **Backward Compatibility**: Works with existing C code, reducing adoption barriers.
- **Open-Source Availability**: Source code is publicly accessible on GitHub, encouraging community contributions.

## Body

### Overview
Checked C is an extension of the C programming language aimed at enhancing safety without sacrificing performance or compatibility. It introduces new language features, such as bounds-checked pointers and dynamic checks, to prevent common vulnerabilities like buffer overflows and use-after-free errors.

### History and Development
- **2016**: Version 0.5 was released on June 13, marking the first public release.
- **2017**: Version 0.6 followed on January 5, introducing refinements.
- **2018**: Versions 0.7 (February 15) and 0.7.1 (June 8) were released, with 0.7.1 being the preferred stable version.

### Key Features
- **Bounds-Checked Pointers**: Ensures pointer arithmetic stays within allocated memory.
- **Dynamic Checks**: Runtime validation of memory access to prevent corruption.
- **Backward Compatibility**: Existing C code compiles without modification.

### Ecosystem
- **Source Code**: Hosted on GitHub under Microsoft’s repository ([microsoft/checkedc](https://github.com/microsoft/checkedc)) and a community repository ([checkedc/checkedc](https://github.com/checkedc/checkedc)).
- **Documentation**: The project is documented in the paper *"Checked C: Making C Safe by Extension"*, providing technical details on its design.

### Community and Resources
- **Websites**:
  - Microsoft Research page: [https://www.microsoft.com/en-us/research/project/checked-c/](https://www.microsoft.com/en-us/research/project/checked-c/)
  - Project website: [https://www.checkedc.org/](https://www.checkedc.org/)
- **Wikidata**: Listed with a Russian Wikipedia entry and a Google Knowledge Graph ID.

### Related Projects
Checked C is part of a broader effort to improve memory safety in systems programming, alongside projects like Rust and Clang’s Undefined Behavior Sanitizer. Its focus on C compatibility distinguishes it from languages requiring full rewrites.

## References

1. [Release 0.5. 2016](https://github.com/microsoft/checkedc/releases/tag/v0.5-final)
2. [Release 0.6. 2017](https://github.com/microsoft/checkedc/releases/tag/v0.6-final)
3. [Release 0.7. 2018](https://github.com/microsoft/checkedc/releases/tag/v0.7-final)
4. [Release 0.7.1. 2018](https://github.com/microsoft/checkedc/releases/tag/v0.7.1-final)