:

Szerző: Ady Krisztián

2001. november 20. 02:53

Továbbfejlesztett C programozási nyelv -- nyelv, mellyel nem hibázhatunk

Ha Mohamed nem megy a hegyhez, a hegy megy Mohamedhez. Ha a programozók nem képesek hibamentes programot írni, segítsen nekik a programozási nyelv. Az amerikai kutatók által kifejlesztett új programozási nyelv lehetetlenné teszi olyan szarvashibák elkövetését, melyek biztonsági lyukakat, váratlan programhibákat, fagyást okozhatnak. Legalábbis ezt állítják a kutatásban résztvevő tudósok.

Ha Mohamed nem megy a hegyhez, a hegy megy Mohamedhez. Ha a programozók nem képesek hibamentes programot írni, segítsen nekik a programozási nyelv. Az amerikai kutatók által kifejlesztett új programozási nyelv lehetetlenné teszi olyan szarvashibák elkövetését, melyek biztonsági lyukakat, váratlan programhibákat, fagyást okozhatnak. Legalábbis ezt állítják a kutatásban résztvevő tudósok.

A Cyclone névre keresztelt programozási nyelvet a Cornell Egyetem és az AT&T New York-i laboratóriumának munkatársai fejlesztik. A Cyclone a közkedvelten használt C programozási nyelv egy újratervezett és újraírt változata. A Cyclone programnyelvet úgy tervezték, hogy szinte lehetetlen olyan alapvető bugokat, hibákat létrehozni, melyek az alkalmazás működését veszélyeztetik.

"A C programnyelv egy igen erős nyelv, de ennyi erővel fel is akaszthatjuk magunkat," - nyilatkozta Graham Hutton, a nottinghami Egyetem szakértője. "[A fejlesztők] megpróbálják ezt az erőt tovább növelni, ám kicsit alaposabb ellenőrzést végezve, alapvetően biztonságosabbá téve a nyelv használatát -- ez egy nagyon jó dolog."

A kutatók szerint a C nyelven programozók gyakran készítenek olyan kódot, mely olyan alapvető hibákkal van tele, melyek csak a teljes program elkészültekor bukkannak fel. Ezeket a hibákat nehéz előre megjósolni, s a programok totális működésképtelenségéhez, esetenként részleges hibás működéséhez vezethetnek. Sokszor biztonsági lyukakat is nyújthatnak, ezeket előszeretettek használják fel jóindulatú elemek, ha módjuk van rá.

A Cyclone fordítóprogramja, compilerje a kód olyan szegmenseinek felismerésére képes "type-checking engine" motorjának segítségével, melyek később gondot okozhatnak. Ez a motor nem csak a kód nyelvi helyességét ellenőrzi, hanem analizálja és a várható felhasználási célt elemezve kiemeli azon részleteket, melyek potenciális veszélyforrást nyújthatnak. A "Buffer overrun" hiba az egyik leggyakoribb ilyen hiba. Rossz memóriahasználatot okozhat, s olyan memóriaterületekhez férhetnek hozzá a bug kihasználásával, melyek esetleg nem tartoznak avatatlan szemekre.

A Cyclone compilerje újraírja a hibás kódot, vagy különböző megoldásokat javasol a rossz kód helyett. Amennyiben a hiba mégis bekövetkezne a program futtatásakor, a program biztonsággal leállítható fagyás vagy a rendszer összeomlása nélkül is.

Az új nyelv nagyon hasonló a C-hez, ezért a meglévő programok forráskódjuk segítségével könnyedén, minimális munkával átültethetők a Cyclone nyelvre. A kutatók egy alapszintű webszerver alkalmazást is írtak a Cyclone segítségével, mely immunis az általános támadásokra, s mentes az általánosabb hibáktól.

A Cyclone programnyelvet a 2002 júniusában Németországban megrendezendő "Programming Language Design and Implementation Conference" rendezvényen is bemutatják.

a címlapról