Lataa esitys
Esittely latautuu. Ole hyvä ja odota
JulkaistuJere Kapulainen Muutettu yli 8 vuotta sitten
1
Aiheet ● Ohjelmointikielten kääntäminen ● Kieliopin määrittely ● Kääntäjän toiminta
2
Ohjelmointikielten kääntäminen ● Korkean tason kielellä kirjoitetun ohjelman kääntäminen koneen ymmärtämään muotoon. ● Jokainen korkean tason kielellä kirjoitettu käsky käännetään yhdeksi tai useammaksi konekieliseksi käskyksi ● Menetelmät: – Tulkinta – Kääntäminen
3
Syntaksin määrittely ● Ohjelma on johonkin merkkivalikoimaan kuuluvien merkkien jono ● Syntaktiset säännöt kertovat, minkälaiset merkkijonot ovat jonkin ohjelmointikielen ohjelmia ● Kielen syntaksi on tarvittavien syntaktisten sääntöjen kokoelma
4
Kieliopit ● Syntaksin määrittelyyn käytetään kielioppia ● Kielioppi on joukko sääntöjä, jotka kertovat kielen symbolien laillisen käytön ● Ohjelma muodostetaan käyttäen kieliopin sääntöjä ● Ohjelmointikielten syntaksi kuvataan usein yhteysvapaalla kieliopilla (context-free grammar)
5
Yhteysvapaan kieliopin osat ● Päätesymbolit – terminaalit ● Välisymbolit – nonterminaalit ● Alkusymboli ● Produktiosäännöt
6
Syntaksikaavio
7
Jäsennyspuu
8
Kääntäjän toiminta ● Kääntäjä muuttaa korkean tason kielellä kirjoitetun ohjelman konekielelle 1.Selaaminen – leksikaalinen analyysi 2.Jäsentäminen – Syntaktinen analyysi 3.Koodin generointi Tekstialkioiden lista Lähdekielin en ohjelma SelausJäsennys Jäsennyspuu Koodin generointi Kohdekielinen ohjelma
9
Selaaminen ● Tunnistaa yhteen tekstialkioon kuuluvat merkit ● Selvittää tekstialkion tyypin ● Tekstialkiot ovat päätesymboleita – Varattu sana – Operaattori – Välimerkki – Tunnus – Luku- tai merkkivakio ● Tunnukset synbolitauluun
10
Jäsentäminen ● Selvitetään syntaktinen rakenne jäsennyspuuhun — Osittava – top-down — Kokoava – bottom-up
11
Koodin generointi ● Selvitetään syntaktinen rakenne jäsennyspuuhun ● Syntaktisen analyysin jälkeen tuotetaan konekielinen ohjelma — Muistin varaaminen — Konekäskyjen muodostaminen — Koodin optimointi
12
Muistin varaaminen ● Varataan muisti muuttujien arvoille ● Liitetään muistiosoitteet 254... 253 249 245 osoite 1merkki 4kok.lukuarvo 4kok.lukusumma kokotyyppitunnus summa= arvo+1 merkki=’a’
13
Konekäskyjen muodostaminen ● Symbolisen konekielikoodin luominen jäsennyspuusta Käännösmoduuli: MODULE asetuslause(x, y, o, z) tulosta LOAD y CASE o of '+' : tulosta ADD z '-' : tulosta SUBTRACT z '*' : tulosta MULTIPLY z '/' : tulosta DIVIDE z ENDCASE tulosta STORE x ENDMODULE x = y + z = +=+= Tunnus X Y Z LOAD y ADD z STORE x
14
Optimointi ● Suorassa käännöksessä konekieliseen koodiin jää turhia/ylimääräisiä palasia ● Muutetaan koodi koneen kannalta tehokkaampaan muotoon LOAD Y ADD Z STORE X LOAD X MULTIPLY A STORE B LOAD Y ADD Z MULTIPLY A STORE B
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.