Русская Википедия:Checked C

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

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

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

Нововведения языка

В язык введено ряд новых типов указателей, таких, как:

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

Реализация

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

См. также

Примечания

Шаблон:Примечания

Литература

Ссылки

Шаблон:Языки программирования Шаблон:Compu-lang-stub Шаблон:Изолированная статья

  1. Шаблон:Cite web
  2. Шаблон:Cite web
  3. Шаблон:Cite web
  4. Шаблон:Статья
  5. Шаблон:Github
  6. Шаблон:Github
  7. Готовые бинарные сборки доступны Шаблон:Wayback только для Windows, инструкции по сборке исходных текстов для различных платформ являются частью документации компилятора