Ohjelmistoatomi

Ohjelmistoatomi on käsite, artefakti, joka kuvaa formaalien rakenteiden käsittelyä ja tulkintaa tietokoneessa.
Ohjelmistoatomin sisäisenä määrittelynä toimii pelkästään yksi atomistinen kaava (myös atomistinen sääntö). Sen takia ohjelmistoatomeista syntyvä malli on formaali ja tietokoneella täysin tulkittavissa ilman moniselitteisyyksiä.
Ohjelmistoatomi liittyy symboliseen analyysiin, missä symboleita ja niiden taustalla olevia objekteja tulkitaan kuvatun logiikan mukaisesti.

Ohjelmistoatomin taustaa 
Ohjelmistoatomi on kehittynyt fysiikan atomin ja atomismin muodostamista esikuvista. Loogisen atomismin teoriaa ovat kehittäneet Ludwig Wittgenstein ja Bertrand Russell, jotka kuvaavat myös molekyläärisiä käsitemalleja ajattelun pohjana atomeja käyttäen. Ohjelmistoatomi on menetelmätekninen ratkaisu, jossa symbolisen analyysin ja semiotiikan keskeinen käsite eli objekti saadaan toteutettua.

Ohjelmistoatomin soveltaminen koodin analysoimiseen 
Symbolisessa ohjelma-analyysissa ohjelmistoatomin sisäisenä atomistisena sääntönä toimii vastaavasta ohjelmasta sen kieliopin mukaan johdettu kielioppitermi. Tämä muodostaa ohjelmistoatomin semantiikan. Koodista kehitetty atomistinen malli sisältää joukon ohjelmistoatomeita, jotka kytkeytyvät keskenään samaan tapaan kuin vastaavat kielioppitermit esimerkiksi Java- tai C++-koodissa. Ohjelmistoatomia simuloidaan vastaavalla simulointimetodilla, joka ohjelmoidaan ohjelmistoatomia vastaavan olioon. Simulointimetodin käyttäytyminen vastaa alkuperäisen kielen käyttäytymistä, mikä voidaan kuvata tilasiirtymäkaaviona (tilakaavio).

Katso myös 
 Analyyttinen filosofia
 Looginen atomismi
 Semiotiikka
 Symbolinen analyysi

Kirjallisuutta 
 Atomistic Design Pattern for Programming in Prolog. St.Petersburg 17-19.6.2008. Vip Alc’08- conference (Atomistinen suunnittelumalli  (en) sivut 98-105)
 Symbolic Hybrid Programming Tool for Software Understanding. 3rd International Workshop on Hybrid Artificial Intelligence Systems (HAIS) 2008, Burgos, Spain, Springer LNAI 5271, pp. 499-506.

Aiheesta muualla 

 
 

Tietojenkäsittelytiede