Sparse

Sparse on C-kielen semanttinen parseri, jota käytetään muun muassa Linux-ytimen kehityksessä mahdollisten ongelmakohtien havaitsemiseen. Ohjelman alkuperäinen tekijä on Linus Torvalds, joka aloitti ohjelman kehittämisen vuonna 2003.

Ohjelma tekee staattisen analyysin lähdekoodista. Ohjelman ensimmäinen ylläpitäjä oli Josh Triplett vuodesta 2006, jonka jälkeen seurasivat Christopher Li vuodesta 2009 ja Luc Van Oostenryck vuodesta 2018.

Torvalds on sanonut saaneensa inspiraatiota ”Stanford checker” -ohjelmasta, jonka lähdekoodit eivät olleet saatavilla. ”Stanford checkerin” kehittäjät perustivat yhtiön nimeltä Coverity ja julkaisivat ohjelmansa kaupallisena ohjelmana nimeltä ”SWAT”.

Ohjelma voi tunnistaa ja seurata annotaation avulla eri osoiteavaruuksien käyttöä kuten ytimen avaruuden ja käyttäjäavaruuden osoitteiden käyttöä, joiden eroista GCC-kääntäjä ei ole tietoinen.

Yksi ohjelman tavoitteista on ollut saada vahvempi staattinen tyyppijärjestelmä kuin dynaaminen tyyppitarkistus lisäämättä suoritusaikaista kuormaa. 
Ohjelmaa suoritetaan osana Linux-ytimen automaattista testaamista linux-next versiohallintahaarasta.
Smatch on sparsen päälle rakennettu työkalu, joka on tehty seuraamaan tietoja ja löytämään tilanteita jotka ovat aina (tai ei koskaan) tosia.

Lähteet

Aiheesta muualla 
 Asennus ja käyttö KernelNewbies-sivustolla 
 Ohjelman manuaalisivu 

C
Linux-ohjelmat
Staattisen analyysin työkaluohjelmat