Наследник на 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
КОМЕНТАРИ




