Checked C – это проект Microsoft Research, который призван сделать язык программирования C более безопасным для разработчиков. Checked C реализован как компилятор Clang для Windows и Linux. Он предоставляет серию расширений для ЯП C, которые делают более безопасным прямое использование указателей за счет реализации нескольких новых типов указателей, а также универсальных типов для замены использования указателей void.
Существуют определенные виды ошибок программирования, такие как переполнение буфера и неправильное приведение типов, которые программисты могут сделать при написании программ на C или C++. Эти ошибки могут привести к уязвимостям безопасности или проблемам с надежностью ПО. Расширение Checked C позволяет программистам добавлять в свои программы проверки для обнаружения ошибок такого рода при запуске программы или во время её написания. Системное ПО можно постепенно модифицировать обратно совместимым способом, чтобы иметь такую проверку.
В C программисты используют указатели для доступа к данным. Указатель - это адрес ячейки памяти. Программистам легко сделать ошибки при работе с указателями, например, программа считывает или записывает неправильные данные. Эти ошибки могут привести к сбою программ, неправильному поведению или перехвату программы злоумышленником. Checked C позволяет программистам лучше описывать то, как они собираются использовать указатели и диапазон памяти, занятой данными, на которые указывает указатель. Затем эта информация используется для добавления проверки во время выполнения для обнаружения ошибок при обращении к неправильным данным, вместо того, чтобы ошибка возникала незаметно и без обнаружения. Эта информация также может использоваться для обнаружения ошибок программирования во время написания программы. Проверяется то, осуществляется ли доступ к данным в намеченных границах. Название Checked C отражает тот факт, что статическая и динамическая проверка добавляются к C.
Во многих языках программирования уже есть такая проверка. C# и Java являются примерами таких языков. Однако эти языки автоматически добавляют информацию, необходимую для проверки в структуры данных. Это проблема системного ПО, когда программисту требуется точный контроль над тем, что делает программа. В Checked C программист контролирует размещение информации, необходимой для проверки границ, и то, как информация проходит через программу, поэтому программист сохраняет точный контроль над тем, что делает программа.
Checked C размещен на GitHub с бинарными файлами, доступными для Windows и Linux. Есть несколько простых примеров.
GitHub: https://github.com/microsoft/checkedc-clangChecked C is an extension to C that adds checking to detect or prevent common programming errors such as out-of-bounds memory accesses.
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:
Игровые объявления и предложения:
Если вас заинтересовал материал «Checked C», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела.
Предлагаются такие схожие материалы:
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.