Foreign Function Interface Antti Marttila Funktio-ohjelmointi 2.

Slides:



Advertisements
Samankaltaiset esitykset
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Advertisements

 Omakielinen opetus Ideoita opettajien yhteistyöhön sekä materiaalia opetukseen ja itsenäiseen työskentelyyn Samran Khezri Turun Lyseon koulu
Käyttöohje: Kuinka luoda uusi foorumi ja kuinka kommentoida foorumiin. (Painamalla F5 voit katsoa tämän diaesityksen)
Innostavan esityksen muistavat kaikki. Ideasta käytäntöön NY 12h –leirin esitys2008.
Active directory.
Selkeän kirjoittamisen huoneentaulu
Yhteisiä tekoja Tepsi – työhyvinvoinnin hyvien käytäntöjen tietopankki 1www.tyohyvinvointifoorumi.fi.
Kielipläjäys 7. luokalle
Toimittaja – Sovellusarkkitehtuuritas on pilkkominen Kalle Launiala, ProtonIT Oy
Kurssilla käytettävät työkalut

13. Pakkaukset.
Sonera content gateway-rajapinnan ohjelmointi
Projektikatselmus Publicum Teknillinen korkeakoulu Publicum-ryhmä.
Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 / Jyväskylän yliopisto.
Kurssilla käytettävät työkalut
Kommentti ÄI1.
Testaus Tiptopissa draft Mats Lindstedt, Mika Rintala.
Ohjelman jakaminen useampaan tiedostoon Olio-ohjelmointi (C++) KYAMK, Jarkko Ansamäki 2001.
Tekoäly-sovellusten levittäminen WWW-ympäristössä
Paikkatietojen hyödyntäminen Turun sosiaali- ja terveystoimessa sekä kasvatus- ja opetustoimessa Katariina Hilke Turun kaupunki / Strategia ja viestintä.
OPISKELIJAA TUKEVA PALAUTE
T Personal SE assignment Project progress tracking and control.
Funktion esittely eli prototyyppi tMyn1 Funktion esittely eli prototyyppi Funktion esittely (function declaration) kertoo funktion nimen, parametrien tyypit.
Suomi-koulujen opettajat suomenopettajina
Kalenteri 2005 AJAVA – Ajanvarausjärjestelmä CSP Compact Software Products.
KANSALLISKIRJASTO - Kirjastoverkkopalvelut UKJ-hankkeen tilannekatsaus Ari Ahlqvist Kehittämispäällikkö UKJ-ohjausryhmä
UNIX ftp://shell.shore.net/members/w/s/ws/Support/OS/UNIX.pdf
Omakielinen opetus Ideoita opettajien yhteistyöhön
Pariohjelmointi Personal SE - Vesa Oinonen. Yleistä pariohjelmoinnista kaksi ohjelmoijaa istuu saman koneen ääressä ohjelmoimassa samaa ohjelmaa Tavoitteena.
LÄÄKÄRINKIERTOJEN SUJUVOITTAMINEN OSASTOLLA 11K
© 2010 IBM Corporation1 Palautesivun esittely  Palautesivua käytetään pääasiassa palautteen lähettämiseen virastoihin. Palautesivun pitäisi löytyä jokaisesta.
KANSALLISKIRJASTO - Kirjastoverkkopalvelut UKJ toteutusvaihtoehtojen tutkiminen Minna Kivinen, UKJ-ohjausryhmän kokous
Älykkäiden käyttöliittymien käytettävyysvaatimukset Rami Annala T Käyttöliittymien ja käytettävyyden seminaari, Syksy 2002: Kontekstiherkkyydestä.
Vesa Ollikainen & Outi Grotenfelt
T Henkilökohtainen SE harjoitus
Java - Tietokanta. JDBC=Java database connectivity  ODBC:n kaltainen ohjelmointiliittymä SQL- tietokantoihin  Koostuu Java-kehitysympäristön (esim.
Tik Tietojenkäsittelyopin ohjelmatyö Palautuspalaveri 3 Projektin esittely lyhyesti Projektin arviointi –projektin tila –suunnitelmat P1-vaiheelle.
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Heikki Vesterinen Systeemitieteiden kandidaattiseminaari – Syksy 2009 Epälineaarinen hinnoittelu:
Palvelun käyttöliittymätasonpalvelun toteutus osaksi TIPTOP portaalia prosessin kulku EduGUI komponenttikirjasto on käytettävissä open sourcena, Eduix.
Webkameralla toteutettu reaaliaikainen 3d- liikkeenseurantasovellus Tapio Vierros Antti Virta Väliraportti.
Tentti. Olio-ohjelmoinnin perusteet | Kevät 2015 | Jorma Laurikkala2 Tentti Torstaina klo 16–20 D10ab (Päätalo). Pääasiassa Java-ohjelmien kirjoittamista.
Funktion jatkuva kohdassa x = x0 joss
Liikkeen fysiikkaa.
CS30A Case Course in Strategy consulting Kurssin opettaja  Professori, Tuomo Kässi Vastaanottoaika to 15:00 – 16:00  Tutkijatohtori,
Ei-essentialistista semantiikkaa? Tommi Nieminen XXV Kielitieteen päivät, Tampere Essentialistinen semantiikka ja sen ongelmat 2. Ei-essentialistisen.
EKOPAJA Consulting Esite palveluista EKOPAJA Consulting EKOPAJA Consulting on perustettu ideoimaan uusia tehokkaita ja ympäristöystävällisiä.
Monadit TIES341 Funktio-ohjelmointi 2 Kevät 2006.
Abstraktit tietotyypit TIEA341 Funktio-ohjelmointi 1 Syksy 2005.
1.0 TE DiplomityöEsitelmä/ / JT Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olio- orientoituneeseen ohjelmointiin Jukka.
Jatkeet TIES341 Funktio-ohjelmointi 2 Kevät 2006.
Uusi näkökulma TIEA341 Funktio-ohjelmointi 1 Syksy 2005.
Pasi Tuominen MARC21 -tietuejoukkojen deduplikointi.
Kierros 5 - OLO Peli.
Kaksoistutkinto-opiskelu
Finna.fi:n etusivu-uudistuksen suunnittelu
Pilvipalveluna – kuinkas muuten…
OKM:n tietovarastopalvelut -kokonaisuuteen liittyvän tiedon avaaminen
Kierros 4 - OLO Web.
Oman alan lehdet (1) Käy lainaamassa oppilaitoksen kirjastosta oman alan lehti. Pohdi ja kirjoita blogiisi (tee oma sivu nimeltään ”Oman alan lehdet”)
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Loppuraportti Ryhmä 6.
Tietueiden muunnokset Muuntaja-ohjelmalla
13. Pakkaukset.
Rakennetun ympäristön paikkatiedot RYM-C2004
Arvioinnista arkipäivää
13. Pakkaukset.
4. Luokan testaus ja käyttö olion kautta
SFX:n haravointi Finnaan
2.2 Tutustutaan rakennuspaikkaan
Esityksen transkriptio:

Foreign Function Interface Antti Marttila Funktio-ohjelmointi 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)

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

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

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

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

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

FFI:n Koodillinen toteutus

Yhteensopivat tyypitYhteensopivat tyypit

Varsinainen kirjaston hakuVarsinainen kirjaston haku

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

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

Toinen esimerkki

Kommenttia Kysyttävää Palautetta Kiitos