Az F# nyelv erőforrásanalízise



Hasonló dokumentumok
PROGRAMOZÁS MÓDSZERTANI ALAPJAI I. TÉTELEK ÉS DEFINÍCIÓK

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Relációs algebrai lekérdezések átírása SQL SELECT-re (példák)

Budapesti Műszaki és Gazdaságtudományi Egyetem. Áramlástan Tanszék. Mérés előkészítő óra I

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs

FELADATOK A. A feladatsorban használt jelölések: R + = {r R r>0}, R = {r R r < 0}, [a; b] = {r R a r b}, ahol a, b R és a b.

Líneáris függvények. Definíció: Az f(x) = mx + b alakú függvényeket, ahol m 0, m, b R elsfokú függvényeknek nevezzük.

(2) A R. 3. (2) bekezdése helyébe a következő rendelkezés lép: (2) A képviselő-testület az önkormányzat összes kiadását

LEKÉRDEZÉSEK SQL-BEN. A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek

Természetes számok: a legegyszerűbb halmazok elemeinek. halmazokat alkothatunk, ezek elemszámai természetes 3+2=5

Többváltozós függvények Riemann integrálja

Analízis 1. (BSc) vizsgakérdések Programtervez informatikus szak tanév 2. félév

Azonosító jel: MATEMATIKA EMELT SZINTŰ ÍRÁSBELI VIZSGA október 21. 8:00. Az írásbeli vizsga időtartama: 240 perc

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Geometria I.

Beadható feladatok december Add meg az alábbi probléma állapottér-reprezentációját!

Ködös határ (Félreértés, hiba)

Nevezetes függvények

Adatok szűrése, rendezése

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek


Soukup Dániel, Matematikus Bsc III. év cím: Témavezető: Szentmiklóssy Zoltán, egyetemi adjunktus

Juhász Tibor. Lineáris algebra

ELŐFESZÍTETT VASBETON TARTÓ TERVEZÉSE AZ EUROCODE SZERINT

SZAKDOLGOZAT. Hucker Dávid

BEVEZETÉS A FUZZY-ELVŰ SZABÁLYOZÁSOKBA. Jancskárné Dr. Anweiler Ildikó főiskolai docens. PTE PMMIK Műszaki Informatika Tanszék

10. OPTIMÁLÁSI LEHETŐSÉGEK A MŰVELET-ELEMEK TERVEZÉSEKOR

Adatbázisok II. Jánosi-Rancz Katalin Tünde 327A

Érdekes informatika feladatok

INFORMATIKAI ALAPISMERETEK

Fordítóprogramok felépítése, az egyes programok feladata. A következő jelölésmódot használjuk: program(bemenet)(kimenet)

SCHÖCK BOLE MŰSZAKI INFORMÁCIÓK NOVEMBER

A matematika alapjai 1 A MATEMATIKA ALAPJAI. Pécsi Tudományegyetem, 2006

Nemzeti versenyek évfolyam

FUNKCIONÁLIS PROGRAMOZÁS

1. fejezet Microsoft Excel 2010 Tartománynevek... 3

GAZDASÁGMATEMATIKA KÖZÉPHALADÓ SZINTEN

XML adatkezelés. 11. témakör. Az XQuery nyelv alapjai. XQuery. XQuery célja egy imperatív lekérdező nyelv biztosítása. XQuery.

MATEMATIKA ÍRÁSBELI ÉRETTSÉGI-FELVÉTELI FELADATOK május 19. du. JAVÍTÁSI ÚTMUTATÓ

FELADATOK A KALKULUS C. TÁRGYHOZ

Funkcionálanalízis az alkalmazott matematikában

14. Ember-gép kölcsönhatás

Műszerek tulajdonságai

JANUS PANNONIUS TUDOMÁNYEGYETEM. Schipp Ferenc ANALÍZIS I. Sorozatok és sorok

S z á m í t ó g é p e s a l a p i s m e r e t e k

Áramlástan. BMEGEÁTAE01 Dr. Lajos Tamás Tanszék: AE épület. v1.00

Halmazelmélet alapfogalmai

117. AA Megoldó Alfréd AA 117.

Pénzügyi matematika. Medvegyev Péter szeptember 8.

Formális szemantika. Kifejezések szemantikája. Horpácsi Dániel ELTE Informatikai Kar

MAGYAR RÉZPIACI KÖZPONT Budapest, Pf. 62 Telefon , Fax

2. Interpolációs görbetervezés

P a r c iá lis v í z g ő z n y o m á s [ P a ]

p j p l = m ( p j ) 1

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

GEOGRAPHICAL ECONOMICS

Analízis előadás és gyakorlat vázlat

Java II. I A Java programozási nyelv alapelemei

Az anyagok mágneses tulajdonságai

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Hajlított vasbeton keresztmetszet ellenőrzése III. feszültségi állapotban

BIZONYTALAN ADATOK KEZELÉSE: FUZZY SZAKÉRTŐI RENDSZEREK

C# feladatok gyűjteménye

Munkafüzet megoldások 7. osztályos tanulók számára. Makara Ágnes Bankáné Mező Katalin Argayné Magyar Bernadette Vépy-Benyhe Judit

A GÉPIPARI TUDOMÁNYOS EGYESÜLET MŰSZAKI FOLYÓIRATA 2009/ oldal LX. évfolyam

Adatbázisok I. Az SQL nyelv

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

C# gyorstalpaló. Készítette: Major Péter

Matematikai alapismeretek. Huszti Andrea

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

Emlékeztető: a fordítás lépései. Szimbólumtábla-kezelés. Információáramlás. Információáramlás. Információáramlás.

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Félévi időbeosztás (nagyjából) házi feladat beadási határidőkkel (pontosan) Valószínűségszámítás 2. matematikusoknak és fizikusoknak, 2009 tavasz

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Logikai következmény, tautológia, inkonzisztens, logikai ekvivalencia, normálformák

Feszített vasbeton gerendatartó tervezése költségoptimumra

Internet technológiák

VÉGES CIKLIKUS CSOPORTOKNAK VÉGES CIKLIKUS CSOPORTOKKAL VALÓ SZÉTES BVÍTÉSEIRL

Sztochasztikus rákos folyamatok

Első sorozat (2000. május 22. du.) 1. Oldjamegavalós számok halmazán a. cos x + sin2 x cos x. +sinx +sin2x =

Tómács Tibor. Matematikai statisztika

Javító és felrakó hegesztés

11. Matematikai statisztika

Gyakorlatok. P (n) = P (n 1) + 2P (n 2) + P (n 3) ha n 4, (utolsó lépésként l, hl, u, hu-t léphetünk).

Excel vagy Given-When-Then? Vagy mindkettő?

Operációs Rendszerek II. labor. 2. alkalom

19. Hasításos technikák (hash-elés)

5. A kiterjesztési elv, nyelvi változók

Villamos kapcsolókészülékek BMEVIVEA336

Matematikai programozás gyakorlatok

ADATBÁZISOK I. Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: március 20.

Szkriptnyelvek. 1. UNIX shell

Energetikai minőségtanúsítvány összesítő

statisztikai menürendszere Dr. Vargha András 2007

INFORMATIKA LOGIKAI ALAPJAI JEGYZET

Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?

Mikrohullámok vizsgálata. x o

Adatbázisok* tulajdonságai

Programok értelmezése

Átírás:

Az F# nyelv erőforrásanalízise Góbi Attila Eötvös Loránd Tudományegyetem Támogatta a KMOP-1.1.2-08/1-2008-0002 és az Európai Regionális Fejlesztési Alap. 2012. Június 19. Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 1 / 1

Áttekintés Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 2 / 1

Áttekintés Outline Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 3 / 1

Áttekintés Áttekintés Absztrakt és egzakt interpretáció Irreleváns költségek ( ) Intervallum kalkulus Mohó, magasabbrendű nyelven Paraméterezhető Monoton költségek mérése Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 4 / 1

Áttekintés Áttekintés Source code program transformation Core program dependency analysis Function group (component) driver abstract interpretation Mathematical equations equations solver Math. formulas Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 5 / 1

A Core nyelv Outline Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 6 / 1

A Core nyelv A Core nyelv Abstract Syntax program ::= decl decl ::= ident ident = expr expr ::= expr expr + literal ident let ident = expr in expr case expr of case + case ::= pattern expr pattern ::= _ ident ident literal Beágyazott minták nincsenek Csak a legutolsó minta lehet _ A mintaillesztésben az azonosító csak adatkonstruktor lehet Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 7 / 1

A Core nyelv Core nyelv Beépített függvények Egészeken: + int, - int, * int, < int, > int, <= int, >= int, == int, /= int, div, mod Hasonlóan más típusokon Adatkonstruktorok: Nil, Cons, True, False Szintaktikus cukor: Nil ([]) és Cons (:) Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 8 / 1

Egzakt kalkulus Outline Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 9 / 1

Egzakt kalkulus Egzakt kalkulus R = [0, ] alaphalmazon e az egzakt költség κ 0, κ 1, κ 2,..., π, η, α 1, α 2, ζ 1, ζ 2,... [0, [ Irreleváns költség: Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 10 / 1

Egzakt kalkulus Szabályok e =0 e[v:= e 1 ] = e[v:= e 2 ] if e 1 e 2 e[v:=f] = f + e[v:= f] ha f zárt, és v nem case kifejezésben van Examples 42 =0 1 + (1+1) = 1 + 2 1 + (2+3) = 2+3 + 1+ (2+3) = 1 + 5 Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 11 / 1

Egzakt kalkulus Adatkonstruktor telített alkalmazása C e 1... e n = κ n Examples 42 = κ 0 True = κ 0 [ 1] = 1 : [] = Cons 1 [] = κ 2 + κ 0 Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 12 / 1

Egzakt kalkulus Natív függvény hívása Legyen f függvény, n aritással f e 1... e n = f δ f architektúrafüggő + int = 1, == int = 1, * int = 4, mod int = 16 Example 1 + 2 = δ 1 + 2 + 3 = 2δ 3 * 15 = 4δ Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 13 / 1

Egzakt kalkulus Case kifejezések Adatkonstruktor case (C f 1... f m ) of p 1 e 1... p n e n = π + e i [v 1 := f 1,..., v m := f m ] ha p i = C f 1... f m az első illeszkedős Wildchar case e of p 1 e 1... p n e n = π + e n ha p n = _ az első illeszkedés Example case [] of [] True; _ False = π + True = π + κ 0 Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 14 / 1

Egzakt kalkulus Let kifejezések let v = e in e = e [v:= e] Example let x = 1 + 1 in x + x = 1 + 1 + let x = (1 + 1) in x + x = 1 + 1 + (1+1) + (1+1) = 1 + 1 + 2 + 2 Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 15 / 1

Egzakt kalkulus Telített függvényalkalmazások f e 1... e n = α n + e[v 1 := e 1,..., v n := e n ] Example double (1 + 1) = 1 + 1 + α 1 + (1+1) + (1+1) = 2κ 0 + δ + α 1 + δ double x = x + x Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 16 / 1

Egzakt kalkulus Részleges alkalmazások n argumentumból closure készítésének költsége: ζ n Example (f 1) 2 = ζ 1 + α 1, if f has arity 2 (f 1) 2 = 2ζ 1, if f has arity 3 f 1 2 = ζ 2, if f has arity 3 Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 17 / 1

Kiterjesztett kifejezések Outline Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 18 / 1

Kiterjesztett kifejezések Tetszőleges kifejezés _ τ τ típusú tetszőleges kifejezés e = Az e kiterjesztett kifejezéshez tartozó kifejezések halmaza Szemantika e = {e} ha e konstruktor, változó vagy függvényszimbólum _ τ = { e e az összes τ típusú kifejezés} e = { e e e } case e of p 1 f 1;... ; p n f n = {case e of p 1 f 1 ;... ; p n f n e e, f 1 f 1,..., f n f n } let v = e 1 in e 2 = {let v = e 1 in e 2 e 1 e 1, e 2 e 2 } e 1... e n = {e 1... e n e 1 e 1,..., e n e n } Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 19 / 1

Kiterjesztett kifejezések Tetszőleges lista List τ n : τ típusú elemekből álló n hosszúságú lista Szemantika List τ 0 = { []} List τ n+1 = (_ τ : List τ n ) Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 20 / 1

Költségbecslés Outline Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 21 / 1

Költségbecslés Intervallum aritmetika Nyelvtan kiterjesztését már bemutattuk Most a költség kalkulus kiterjesztése következik Intervallum aritmetika (a, b) = zárt intervallum a és b végpontokkal, ahol a, b R (a, b) + (c, d) = (a+c, b+d) n(a, b) = (na, nb) (a, b) (c, d) = (min a c, max b d) a R beágyazható, mint (a, a) (a, b) (c, d) a c b d Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 22 / 1

Költségbecslés A költségbecslés szematikája Kiterjesztett kifejezések e = (a, b) e e : a e b és (a, b) a legszűkebb ilyen Nyílt kifejezések e = e[v 1 := _ τ1 ] ahol v 1 az e kifejezés τ 1 típusú szabad változója Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 23 / 1

Költségbecslés A költségbecslés szematikája e[v:= e 1 ] = e[v:= e 2 ] if e 1 e 2 case _ of p 1 e 1 ;... ; p n e n = e 1... e n case List 0 of [] e 1 ; v 1 :v 2 e 2 = π + e 1 case List n+1 of [] e 1 ; v 1 :v 2 e 2 = π + e 2 [v 1 := _, v 2 := List n ]... Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 24 / 1

Resource analysis Góbi Attila (ELTE) Az F# nyelv erőforrásanalízise 2012. Június 19. 25 / 1