Много програмисти открито критикуват небрежното отношение към паметта на C

...
Много програмисти открито критикуват небрежното отношение към паметта на C
Коментари Харесай

Наследник на C и C++ елиминира основен проблем


Много програмисти намерено подлагат на критика небрежното отношение към паметта на C и C++
(снимка: CC0 Public Domain)

Бойкотът на езиците за програмиране C и C++ наподобява се анулира. Разработчици сътвориха нов “диалект ”, лишен от главния проблем на двата известни езика – уязвимата работа с паметта, която предизвиква хакерите.

В ход е създаването на един тип „ правоприемник ” на езиците C и C++, наименуван TrapC. Проектът може да се назова отклонение на тези езици, само че по-скоро е тяхна еволюционна форма. Авторите на TrapC са отстранили главния минус на C и C++ – неспособността на двата езика да работят безвредно с паметта, което отваря доста необятно поле за творчество на хакерите.

C++ по нов метод

Стартъпът Trasec стартира да създава нов език за програмиране TrapC, който се явява развиване на езиците C и C++ – техния fork, акцент. Според обява на The Register за плана, Trasec залага на концепцията, че за разлика от истинските C и C++, нейният език знае по какъв начин безвредно да работи с паметта.

През последните години доста програмисти, в това число членове на общността на софтуера с отворен код, все по-открито подлагат на критика извънредно небрежното отношение към паметта в C и C++. Признати специалисти настояват, че е време да общността да се отърве от двата езика и да премине към техните безвредни за паметта съперници и в това време да се пренапишат всички планове на тяхна база.

Rust е най-често споменаван език като безвредна опция на C и C++. Вече има оферти той да се употребява за ядрото на Linux и даже Microsoft обмисля да пренапише някои от своите софтуерни артикули върху него. Американските управляващи също приказват отрицателно за сигурността на C и C++ и изискват преход към Rust.

Въпреки това, към момента има доста „ староверци ” измежду програмистите – тези, които няма да се откажат от C и C++ в интерес на Rust.

Указателите са значими

Авторите на TrapC оферират собствен личен способ за отбрана против неточности при работа с паметта, излизайки отвън границите на буфера и пробвайки се да работят с към този момент освободена памет. Идеята им е да преразгледат логаритмите за работа с указатели на паметта и да основат нов механизъм за прихващане на неточности.

Те оферират този механизъм да се базира на по този начин наречения „ обработчик на изключения ” (trap), който е отразен в името на езика. В момента се работи освен върху самия език, само че и върху компилатор за него, чийто код създателите желаят да създадат отворен в бъдеще. По проект това би трябвало да стане през 2025 година, само че към момента няма по-точна дата.

Всички нови логаритми и механизми за отбрана ще бъдат внедрени непосредствено в компилатора. Те прецизно ще наблюдават за границите на заделените буфери на паметта и че указателите ще препращат единствено към области на паметта, свързани с тях.

В допълнение, компилаторът ще следи потреблението на видове и ще „ ругае ”, в случай че потреблението им не е безвредно.

Колкото по-просто, толкоз по-добре

Разработчиците на TrapC явно се стремят да създадат този език по-прост от C или C++. По-специално, той няма конструктор malloc – употребява се нов конструктор.

Повикванията free и delete също са отстранени, а на компилатора е дадена значима роля – наред с други неща, той дава отговор за освобождението на паметта. Този метод в допълнение усъвършенства отбраната против течове от паметта.

Наред с това TrapC има доста по-малко основни думи, спрямо C и C++. Така да вземем за пример, липсва основната дума union, която се употребява за дефиниране на обединявания.

В същото време този език за програмиране е планиран да бъде съчетаем със C, защото употребява същия прибавен двоичен интерфейс ABI – програмен интерфейс сред два модула, дефиниран на равнище машинен код.

Кой стои зад плана

В основата на плана Trasec, както и на езика TrapC, стои доста видна фигура в общността на програмирането, без която създаването на C и C++ не би било допустимо. Това е Робин Роу, някогашен професор по компютърни науки и някогашен член на голям брой комитети за създаване на стандарти за C и C++.

Роу е прочут и като един от основателите на графичния редактор с отворен код Cinepaint, който е употребен за основаване на графики за почти 20 известни кино лентата, включително 2 Fast 2 Furious, The 6th Day, Planet of the Apes, Spider-Man и всички филми за Хари Потър. Освен това Роу създаде POSIX библиотеката libunistd за Windows.

В момента Роу е основен изпълнителен шеф (CEO) на Trasec, само че самият стартъп не е учреден единствено от него. Вторият съосновател е Габриел Пантера, някогашен топ управител на Disney. В Trasec тя работи като основен действен шеф (COO). Двамата са заети с търсене на вложители и набиране на средства за плана си.
Източник: technews.bg


СПОДЕЛИ СТАТИЯТА


КОМЕНТАРИ
НАПИШИ КОМЕНТАР