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

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.