TIES448 Luento 3

Jäsentäjän tehtävät

  • selaajan tuottaman sanasjonon muuttaminen ohjelman loogista rakennetta kuvaavaksi tietorakenteeksi
  • ohjelmassa olevien kielioppivirheiden tunnistaminen ja diagnosointi

Jäsentäjän laatiminen

  • nykyaikana pitää AINA perustua kontekstittomaan kielioppiin!
    • kannattaa etsiä harjoitustyön lähdekielen pohjana olevan kielen valmis kielioppi, josta voi sitten lähteä liikkeelle
    • ks. metakielet
  • voi tehdä käsin rekursiivisesti etenevän (ennustavan) jäsentimen
    • ks. erillinen teksti
    • voi myös käyttää FIRST/FOLLOW-joukkoja, ks kurssikirja
  • yleensä kannattaa käyttää jäsentäjägeneraattoreita
    • parserikombinaattorikirjasto on hyvä vaihtoehto Haskellissa

Kielioppimalleja

Valinnaisuus

<optional-semicolon> ::= <empty> | ;
<empty> ::=

Toisto (tyhjä sallittu)

<stmts> ::= <empty> | <stmts> <stmt>
<empty> ::=

Epätyhjä lista (pilkulla erotettu)

<list> ::= <item> | <list> , <item>

Tyypillisiä ongelmia

Kertausta kurssilta TIEA241 Automaatit ja kieliopit:

Jäsentäjägeneraattoreita

Vaihtoehtoinen formalismi

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.