LINUX.ORG.RU

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

 , ,


1

5

Проект развивает Робин Роу (Robin Rowe), бывший профессор компьютерных наук, принимавший участие в комитетах по развитию стандартов С и С++, в своё время создавший графический редактор Cinepaint, использовавшийся при создании некоторых голливудских фильмов, и POSIX-библиотеку libunistd для Windows. Соучредителем компании Trasec выступает Габриэль Пантера (Gabrielle Pantera), занимавшая руководящий пост в компании Disney.

Из особенностей:

  • Проверки выхода за границы массива. В TrapC применяется фундаментально иной способ работы с указателями и специальный механизм перехвата ошибок на основе обработчиков исключений (trap).

  • Проверки use after free.

  • Наличие GC.

  • Выделение памяти через new. *alloc и free нет.

  • Явная инициализация нулями.

  • Строгая типизация.

Исходный код компилятора для TrapC планируют открыть в 2025 году.

>>> Подробности

★★★★★

Проверено: maxcom ()
Ответ на: комментарий от wandrien

Эх, бяда. Придётся по-старинке на крестах.

Что-тт я сегодня плохо иронию считываю. Обозначу базовую линию тем, что кресты всегда можно скомпиллировать зигом. А у него быстрая установка и правильно приготовленный рантайм.

sarumeister
()
Ответ на: комментарий от Zhbert

Разрабы C++ просто ждут появления -funsafe фичи в компиляторе, после чего можно будет с чистой совестью насрать на все расты и его конкурентов и продолжать попивать кусок сока у себя в квартале куске.

lesopilorama
()
Последнее исправление: lesopilorama (всего исправлений: 1)

занимавшая руководящий пост в компании Disney

Put a chick in this C compiler and make her gay! Ясно, короче.

somemong
()
Ответ на: комментарий от lesopilorama

-funsafe

Но в TrapC будет только «–make-it-lgbtp» (экстремистская организация, запрещена в РФ), причем по дефолту. Это ж Дисней!

somemong
()
Последнее исправление: somemong (всего исправлений: 1)
Ответ на: комментарий от otto

Так вектора это динамический массив, ему можно заранее зарезервировать место в памяти функцией vector<char>::reserve(1000)
Как таковой «динамической памяти» на уровне языка нет, это все реализовано на уровне библиотеки, вот и надо для эмбедщины свою библиотеку, в которой вектору надо явно резервировать размер и который не может расширятся больше зарезервированного.

uin ★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.