Eräpäivät ja algoritmit
Oletko koskaan saanut harjoitustyötä tai vastaavaa valmiiksi viikkoa ennen kalmanlinjaa? Minä olen, käytännössä melkein kahta, mitä nyt vähän viimeistelyä puuttui.
Ai mistä aiheesta? No, tietenkin Alfred V. Ahon & Margaret J. Corasickin monen merkkijonon hakualgoritmi. Merkkijono tarkoittaa tekstinpätkää, käytännössä esimerkiksi sanaa. Algoritmi on Wikipedian mukaan "tarkasti määritelty vaihesarja, jota seuraamalla voidaan ratkaista tietty ongelma". Itse voisin kääntää sen vaikka menetelmäksi. Aho & Corasick -algoritmilla voidaan siis etsiä tehokkaasti montaa sanaa isosta tekstimassasta. Vuonna 1975 sille oli käyttöä kirjastoalalla, nyt melkein missä vain.
Ohjelmakoodi on siitä hauska juttu, että se on samaan aikaan sekä menetelmän kuvaus että menetelmä. Eli se paitsi osaa (suoritettuna) tehdä jonkun asian, se on myös ihmisen luettava kuvaus siitä, miten se asia tehdään. Se on jonkun idean formalisointi tietokoneen ymmärtämään muotoon (no, ei aivan, ohjelmointikieli pitää ensin kääntää binäärimuotoon, jotta kone sen ymmärtäisi).
Taannoisissa ohjelmistopatenttikiistoissa, jotka nyt sivumennen sanoen uhkaavat tulla uudelleen ajankohtaiseksi yhteisöpatentti-nimiseen pakettiin käärittynä, oli kyse ainakin kauhuskenaarioiden osalta siitä, voisiko tulevaisuudessa idean patentoida. Kuten sanottu, ohjelmakoodi on sekä menetelmä että kuvaus siitä. Jos tämä kuvaus, ajatus, idea, olisi jonkun "omaisuutta", tämä joku voisi yksipuolisesti määritellä, kuka ideaa saa käyttää. Eikö se olisi aika kamalaa? Itse tein ohjelmakoodini paperille kirjoitetun artikkelin, reseptin pohjalta. Miettikääpä mitä tarkoittaisi, jos vaikkapa joku voisi patentoida makaronilaatikon reseptin. Jos haluat kokata laatikkoa, maksat. Huono analogia, mutta ajatus varmaan selkisi.
Mitäs nyt koodais? Viime yö meni tämän bränikän blogin kanssa. Tämä on sitä kuherteluvaihetta.
Ai mistä aiheesta? No, tietenkin Alfred V. Ahon & Margaret J. Corasickin monen merkkijonon hakualgoritmi. Merkkijono tarkoittaa tekstinpätkää, käytännössä esimerkiksi sanaa. Algoritmi on Wikipedian mukaan "tarkasti määritelty vaihesarja, jota seuraamalla voidaan ratkaista tietty ongelma". Itse voisin kääntää sen vaikka menetelmäksi. Aho & Corasick -algoritmilla voidaan siis etsiä tehokkaasti montaa sanaa isosta tekstimassasta. Vuonna 1975 sille oli käyttöä kirjastoalalla, nyt melkein missä vain.
Ohjelmakoodi on siitä hauska juttu, että se on samaan aikaan sekä menetelmän kuvaus että menetelmä. Eli se paitsi osaa (suoritettuna) tehdä jonkun asian, se on myös ihmisen luettava kuvaus siitä, miten se asia tehdään. Se on jonkun idean formalisointi tietokoneen ymmärtämään muotoon (no, ei aivan, ohjelmointikieli pitää ensin kääntää binäärimuotoon, jotta kone sen ymmärtäisi).
Taannoisissa ohjelmistopatenttikiistoissa, jotka nyt sivumennen sanoen uhkaavat tulla uudelleen ajankohtaiseksi yhteisöpatentti-nimiseen pakettiin käärittynä, oli kyse ainakin kauhuskenaarioiden osalta siitä, voisiko tulevaisuudessa idean patentoida. Kuten sanottu, ohjelmakoodi on sekä menetelmä että kuvaus siitä. Jos tämä kuvaus, ajatus, idea, olisi jonkun "omaisuutta", tämä joku voisi yksipuolisesti määritellä, kuka ideaa saa käyttää. Eikö se olisi aika kamalaa? Itse tein ohjelmakoodini paperille kirjoitetun artikkelin, reseptin pohjalta. Miettikääpä mitä tarkoittaisi, jos vaikkapa joku voisi patentoida makaronilaatikon reseptin. Jos haluat kokata laatikkoa, maksat. Huono analogia, mutta ajatus varmaan selkisi.
Mitäs nyt koodais? Viime yö meni tämän bränikän blogin kanssa. Tämä on sitä kuherteluvaihetta.
Kommentit
Ei kommenttia
Lisää kommentti