Neljännen viikon palautus

Opin tällä viikolla että profilointi(kaan) ei toimi Mavenissa ainakaan ilman tappelua. Opin lisäksi miten äärellisen automaatin tilat oikein toimivat yleisesti ottaen ja aloitin automaatin suunnittelun uudestaan. Vielä pitäisi saada rakennetuksi itse automaatti oikein ja saada kokonaisuus kuntoon siten että merkkijonoja pystyisi vertaamaan oikein tuloksin säännöllisten lausekkeiden kanssa. Tältä osin työ on vielä aika pahasti kesken.
    Tällä viikolla sain aikaiseksi mm. Hajautuskartan suorituskyvyn käytännön testaamiselle oman luokan ja aloin tilastoimaan tuloksia. Lisäksi automaatin kannalta tarpeellisten tietorakenteiden ominaisuuksien määrä kasvoi.
    Edelleen jäi hieman epäselväksi miten äärellinen automaatti varsinaisesti kannattaisi rakentaa. Ajattelin toteuttaa epädeterministisen äärellisen automaatin tilojen ahneella lisäyksellä. Algoritmini saattaa luoda enemmän kuin optimaalisen määrän tiloja joka voi vaikuttaa negatiivisesti suorituskykyyn verratessa merkkijonoa säännölliseen kieleen tilojen poikittaissuuntaisella läpikäynnillä. En oikein onnistunut löytämään mistään tarpeeksi käytännönläheistä materiaalia aiheesta kunnon (pseudo-)koodiesimerkeillä.
    Vastoinkäymisistä huolimatta koen että ohjelma kokonaisuudessaan on edistynyt ihan kohtalaisesti. Seuraavan viikon tavoitteenani on saada aikaiseksi edes literaaleja oikein ymmärtävä automaatti sekä suorituskyvyn testausluokat kaikille tietorakenteille.