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 usein 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ä ja numero aloittaa luvun. Leksikaalinen analysaattori tai "skanneri" varmistaa sääntöjensä mukaan, että merkityksettömiä tokeneita kuten 12* tai (3 ei generoida.

Seuraava vaihe on syntaktinen analyysi, jossa tarkistetaan, että tokenit (välisymbolit, päätössymbolit) muodostavat hyväksyttävän lausekkeen. Ohjelmointikielen syntaksi määritellään yleensä formaalisti BNF-notaatiolla. Tämä notaatio määrittää kontekstivapaan kieliopin. Kielioppi määrittelee rekursiivisesti tokenit, 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 

Jäsennin on tietokoneohjelma, joka ottaa lisää merkkijonon analysoi rakennetta ja tarvittaessa jäsentää sen toiseen muotoon.

Katso myös
 Lex, ohjelma, jolla luodaan  leksikaalisia analysaattoreita säännöllisen kielen avulla
 Yacc, ohjelma, joka luo yhteydettömän kieliopin sääntöjen mukaan LALR-jäsentimen

Kirjallisuutta
 Chapman, Nigel P., LR Parsing: Theory and Practice, Cambridge University Press, 1987. 
 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; 

Luokka:Lauseoppi
Luokka:Formaalit kielet
Luokka:Ohjelmointi