Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Foreign Function Interface Antti Marttila Funktio-ohjelmointi 2.

Samankaltaiset esitykset


Esitys aiheesta: "Foreign Function Interface Antti Marttila Funktio-ohjelmointi 2."— Esityksen transkriptio:

1 Foreign Function Interface Antti Marttila Funktio-ohjelmointi 2

2 Motivaatiota ● Haskell helpottaa suunnittelua ● Haskell on ilmaisuvoimainen ● Haskell vähentää virheitä ● C on tehokas ● C kielenä useissa valmiissa kirjastoissa ● C on kaikkialla ja sillä pääsee kaikkialle ● Se mitä C on niin Haskell ei ja päinvastoin (lähes)

3 Ongelma ● Olisi hyvä jos olisi olemassa kieli jolla olisi kaikki edellä mainitut hyvät ominaisuudet ilman ongelmia ● Millainen olisi kieli jossa yhdistyisi Haskellin ja C:n parhaat puolet

4 Ratkaisu ● Käytetään niitä yhdessä niin, että se kumpi sopii paremmin tilanteesseen, niin se otetaan käyttöön ● Kuinka se toteutetaan?

5 Foreign Funktion Interface (FFI) ● Vieraskielinen funktio rajapinta ● Haskellin lisäominaisuus jolla päästään ohjelmakoodista käsiksi toisella kielellä kirjoitettuun koodiin ja sieltä Haskelliin ● Kaksi kieltä kohtaavat toisensa ● Käytännössä tarvetta parantaa Haskellilla tehdyn ohjelman nopeutta tai mahdollisuus päästä C:n valmiisiin kirjastoihin ● Käytännössä ei tarvetta päästä C:stä Haskelliin

6 Hyödyt ● Päästään käsiksi suureen joukkoon valmiita kirjastoja ● Yhteensopivuus (C) järjestelmien kanssa ● Nopeus ● Voidaan käyttää Haskellia

7 Ongelmat ● Roskienkeruu ● Tyyppieroavaisuudet ● Virhealttius kasvaa C:n mukana ● Monikulttuurisuus

8 FFI:n Koodillinen toteutus

9 Yhteensopivat tyypitYhteensopivat tyypit

10 Varsinainen kirjaston hakuVarsinainen kirjaston haku

11 Foreign ● 'foreign' kertoo Haskellille että käytetään FFI:tä ● 'import' vaihtiehto 'export' ● [callconv] on ccall tai stdcall ● [ext_fun] “osoite.h nimi” tai “nimi” ● [unsafe] vaihtoehto 'safe' (oletuksena safe) ● Varid '::' prim_type tavanomainen funktion esittely

12 Kääntäminen ● ghc -o foo -ffi Main.hs

13 Toinen esimerkki

14 Kommenttia Kysyttävää Palautetta Kiitos


Lataa ppt "Foreign Function Interface Antti Marttila Funktio-ohjelmointi 2."

Samankaltaiset esitykset


Iklan oleh Google