TIES448 Luento 9

Muistutus harjoitustyöstä

  • Harjoitustyön suunnitelman aika on nyt
    • palauta GIT-varastossa, jonka osoitteen laitat Korppiin
    • tarkemmin ks ohjeet

Olio-ohjelmointi, funktio-ohjelmointi ym

  • Koodaan tällä kertaa JavaScriptiä, mutta en tee olio-ohjelmaa
  • Aiemmalla TIES448-kurssilla olen koodannut Haskellilla mutta en ole tehnyt funktio-ohjelmaa
  • Pääpointtina tällä kurssilla on kääntäjätekniikan mallit (compiler patterns), jotka ovat melko samanlaisia kaikilla kielillä
    • malleja ei ole pakko käyttää, mutta ne auttavat
    • saa toki muokata omaan tyyliin sopiviksi omassa kääntäjässä

Välikielen generointi

  • Nämä ajatukset pätevät niin omalle välikielelle kuin WebAssemblylle, LLVM:lle jne
  • Suunnittele ensin, minkälaiseksi koodiksi mikäkin lähdekielen konstruktio kääntyisi
  • Tee rajapinta (esim. Facade), jonka kautta välikoodi generoidaan
  • Tee välikielelle AST-rakenne (Composite-luokkahierarkia tms)
    • AST:n luonti em. rajapinnan kautta
  • serialisoi ulkoiseen käyttöön tarvittaessa erikseen
    • joko AST tai suoraan rajapinnasta
  • kannattaa tehdä testikäyttöä varten suora tulkki välikielelle
    • no, tästähän tulee sitten tulkki lähdekielelle sivutuotteena :)

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