Checked C — язык программирования, разработанный в Microsoft Research и ориентированный на максимальную совместимость с C, но обеспечивающий большую безопасность при работе с памятью и, вследствие этого — большую защиту от уязвимостей написанных на нём приложений.

Спецификация языка, примеры и тесты распространяются на условиях MIT license и Final Specification Agreement (обеспечивающего свободу от патентных и копирайтных исков в рамках данного соглашения).

Нововведения языка В язык введено ряд новых типов указателей, таких, как: array_ptr<T> — указатель на массив фиксированного размера. Проверка выхода за его границы во время исполнения программы может быть обеспечена автоматически; array_ptr_nt<T> — указатель на элемент массива типа Т, ограниченного символом null. ptr<T> — указатель не требующий проверки выхода за границы, поскольку не используется для вычисления новых адресов. Соответственно, адресная арифметика для указателей такого типа запрещена.

Реализация Компилятор Checked C доступен в виде модифицированных с целью поддержки CheckedC LLVM/Clang. Компилятор поддерживает 32-х и 64-х разрядные версии Windows, UNIX/Linux и MacOSГотовые бинарные сборки доступны только для Windows, инструкции по сборке исходных текстов для различных платформ являются частью документации компилятора.

См. также Cyclone Rust

Примечания

Литература

Ссылки

Категория:Си (язык программирования) Категория:Свободные компиляторы и интерпретаторы