Проект TrapC развивает Си-подобный язык, безопасно работающий с памятью

Стартап Trasec развивает язык программирования TrapC, представляющий собой диалект языка Си, обеспечивающий безопасную работу с памятью. Для блокирования ошибок при работе с памятью, таких как выход за границы выделенного буфера, в TrapC применяется фундаментально иной способ работы с указателями и специальный механизм обработки ошибок. Заявлено, что особенности работы с указателями по возможности не будут нарушать привычный уклад и будут реализовываться силами компилятора. Вместо malloc в TrapC используется похожий на C++ вызов new. Исходный код компилятора для TrapC планируют открыть в 2025 году.

На уровне ABI TrapC будет совместим с Си, что позволит комбинировать в одном приложении код на TrapC и чистом Си, но для кода Си не будет обеспечиваться безопасность работы с памятью. Проект развивает Робин Роу (Robin Rowe), бывший профессор компьютерных наук, принимавший участие в комитетах по развитию стандартов С и С++, в своё время создавший графический редактор Cinepaint, использовавшийся при создании некоторых голливудских фильмов, и POSIX-библиотеку libunistd для Windows.

Подробности о проекте пока не приводятся, показано лишь несколько примеров с кодом, в котором, например, заявлено, что TrapC не даст переполнить буфер buff при выполнении «strcpy(buff,argv[1]);» или не даст увеличить указатель или индекс массива на значение, смещающее его за пределы выделенного буфера или конца массива. Как именно достигается подобная защита не поясняется.

Дополнение: Опубликована видеозапись презентации языка TrapC, анонсированного на проходящей в Бангкоке конференции W2140.

Источник: http://www.opennet.ru/opennews/art.shtml?num=62224