Jäsentäminen

Wikipediasta
(Ohjattu sivulta Leksikaalinen analyysi)
Siirry navigaatioon Siirry hakuun

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.

Jäsennyspuu

Ohjelmointikielet

[muokkaa | muokkaa wikitekstiä]

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.

Pääartikkeli: Jäsennin

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

  • 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

[muokkaa | muokkaa wikitekstiä]
Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.