Jäsentäminen
Jäsentäminen tarkoittaa kohteen syntaktista analyysiä. Jäsennys saa syötteenään jonon tokeneita ja se tarkistaa niiden rakenteen enemmän tai vähemmän muodolliseen kielioppiin verrattuna. Luonnollisen kielen jäsennys tarkoittaa lauseiden sanojen kuvaamista kielioppisääntöjen mukaan eli sen selvittämistä, mikä sana on minäkin lauseenjäsenenä. Ohjelmakoodin jäsennys tarkoittaa kääntäjän tekemää semanttista tarkistusta ohjelmointikielen sääntöjen mukaan.
Ohjelmointikielet
Jäsennystä käytetään yleisimmin tietokonekielisen ohjelman kääntämiseen kahdella tasolla: leksikaaliseen ja syntaktiseen tarkistukseen.
Ensimmäinen vaihe on tokenien luonti tai leksikaalinen analysointi, joissa syöte (lähdekoodi) pilkotaan merkityksellisiksi symboleiksi säännöllisten lausekkeiden kieliopin mukaan. Esimerkiksi (tasku)laskinohjelma selaa syötettyjä näppäilyjä "12*(3+4)^2" ja pilkkoo sen tokeneiksi: 12, *, (, 3, +, 4, ), ^, ja 2. Kukin on merkityksellinen symboli aritmeettisen lauseen kontekstissa. Jäsentimessä voi olla sääntö, että merkit *, +, ^, ( ja ) ovat uuden tokenin aloitusmerkkejä. Siten merkityksettömiä tokeneita kuten 12* tai (3 ei generoida.
Seuraava vaihe on syntaktinen analyysi, jossa tarkistetaan, että tokenit muodostavat hyväksyttävän lausekkeen. Tämä tehdään tavallisesti kontekstivapaiden kielioppien kanssa. Ne määrittelevät rekursiivisesti komponentit, jotka voivat muodostaa lausekkeen ja missä järjestyksessä niiden on esiinnyttävä. Kuitenkaan kaikkia ohjelmointikielen määritteleviä sääntöjä ei voida esittää kontekstista vapailla kieliopeilla yksinään. Esimerkkeinä tyypin kelvollisuus ja tunnuksen ominaisuusmäärittelyt. Nämä säännöt voidaan esittää attribuuttikielioppien kanssa.
Viimeinen vaihe on semanttinen jäsennys tai analyysi. Laskinohjelmaesimerkissä toiminto on laskea lausekkeen arvo tai toisaalta kääntäjä, joka luo pätkän ohjelmaa. Näihin toimintoihin voidaan käyttää attribuuttikielioppeja.
Jäsennin
- Pääartikkeli: Jäsennin
Jäsennin on tietokoneohjelma, joka ottaa lisää merkkijonon analysoi rakennetta ja tarvittaessa jäsentää sen toiseen muotoon.
Kirjallisuutta
- Chapman, Nigel P., LR Parsing: Theory and Practice, Cambridge University Press, 1987. ISBN 052130413X
- Grune, Dick; Jacobs, Ceriel J.H., Parsing Techniques - A Practical Guide, VU University Amsterdam, Amsterdam, The Netherlands. Originally published by Ellis Horwood, Chichester, England, 1990; ISBN 0136514316