Skip to content
@checkedc

Checked C

Supporting the development of Checked C, an extension to C for writing more secure and reliable C programs.

Helping developers write more secure systems code

About Checked C

Checked C extends C with bounds checking and improved type-safety. This helps developers write more secure systems code.

  • It is opt-in and backwards compatible. As a developer, you add annotations and/or modify types to opt-in to bounds checking and type-safety.
  • All existing C code is valid Checked C code.
  • It supports incremental conversion of code. You can convert a few security-critical functions or your entire program, and do the conversion as you have time.
  • It supports annotations that can be erased from your program using macros, so that your Checked C code can compile with C compilers that do not understand Checked C annotations.

Checked C includes a language specification, samples, a compiler, and 3C, a tool for translating existing C code to Checked C.

About the Project

The language specification and compiler were developed at Microsoft from 2015-2021. The Checked C effort now continues as an active open-source research project. Recent contributions include:

  • The 3C tool for translating C to Checked C (Aravind Machiry, Mike Hicks and others). A paper on this tool appeared in OOPSLA '22 and won a Distinguished Paper award.
  • Fat-pointers for temporal safety (Jie Zhou, John Criswell, and Mike Hicks). This work will appear in the upcoming OOPSLA ’23 conference.
  • Support for erasing annotations for C compilers that don’t support Checked C (in progress).
  • Experiments with converting open-source systems code.

As of 2023, we're officially a non-profit! This supports continuity of the project beyond any one person, helps us keep track of intellectual property rights, and will let us raise funds so support project activities.

Pinned Loading

  1. checkedc-llvm-project checkedc-llvm-project Public

    This repo contains a version of clang that is modified to support Checked C. Checked C is an extension to C that lets programmers write C code with bounds checking and improved type-safety.

    13 19

  2. checkedc checkedc Public

    Checked C is an extension to C that lets programmers write C code with bounds checking and improved type-safety. The goal is to let people easily make their existing C code type-safe and eliminate …

    C 25 3

Repositories

Showing 10 of 10 repositories
  • checkedc-llvm-project Public

    This repo contains a version of clang that is modified to support Checked C. Checked C is an extension to C that lets programmers write C code with bounds checking and improved type-safety.

    checkedc/checkedc-llvm-project’s past year of commit activity
    13 19 169 3 Updated Jun 27, 2024
  • checkedc Public

    Checked C is an extension to C that lets programmers write C code with bounds checking and improved type-safety. The goal is to let people easily make their existing C code type-safe and eliminate entire classes of errors.

    checkedc/checkedc’s past year of commit activity
    C 25 3 68 0 Updated May 30, 2024
  • workflows Public

    Checked C workflows for GitHub Actions

    checkedc/workflows’s past year of commit activity
    Shell 0 0 0 1 Updated Dec 31, 2023
  • .github Public
    checkedc/.github’s past year of commit activity
    0 0 0 0 Updated Nov 26, 2023
  • checkedc/checkedc-llvm-test-suite’s past year of commit activity
    C 0 0 1 0 Updated Jul 29, 2023
  • checkedc/checkedc-vsftpd’s past year of commit activity
    C 0 2 0 0 Updated Jan 10, 2022
  • checkedc-tiny-bignum-c Public Forked from kokke/tiny-bignum-c

    Small portable multiple-precision unsigned integer arithmetic in C

    checkedc/checkedc-tiny-bignum-c’s past year of commit activity
    C 3 Unlicense 84 1 0 Updated Jan 9, 2022
  • checkedc/checkedc-thttpd’s past year of commit activity
    C 0 1 0 0 Updated Dec 9, 2021
  • checkedc/checkedc-icecast’s past year of commit activity
    C 0 GPL-2.0 1 0 0 Updated Dec 9, 2021
  • checkedc/checkedc-libjpeg-tutorial’s past year of commit activity
    C 0 1 0 0 Updated Oct 4, 2021

Top languages

Loading…

Most used topics

Loading…