TÍPUSKIKÖVETKEZTETÉSI MÓDSZEREK
|
|
- Jázmin Lakatosné
- 5 évvel ezelőtt
- Látták:
Átírás
1 TÍPUSKIKÖVETKEZTETÉSI MÓDSZEREK THE METHODS OF TYPE INFERENCE Csörnyei Zoltán 1, Nagy Sára 2 ELTE Informatikai Kar, Programozási Nyelvek és Fordítóprogramok Tanszék 1 ELTE Informatikai Kar, Algoritmusok és Alkalmazásaik Tanszék 2 Összefoglaló Előadásunkban a típuselmélet egyik speciális területével, a típuskikövetkeztetéssel foglalkozunk. Nem minden programnyelvben kötelező a típusok megadása, vannak olyan nyelvek is, ahol egyáltalán nem kell a programozónak a típusokkal foglalkoznia. Viszont a típusok, a lehetséges típusok ismerete feltétlenül szükséges a program helyességének a vizsgálatához. A típuskikövetkeztetés feladata a típusok pontos meghatározása. Először a legegyszerűbb módszert, a Curry-típuskikövetkeztetést mutatjuk be, majd a polimorfikus let-utasításon tanulmányozzuk a Hindley-Milner-algoritmust. Megadunk környezetfüggő és környezetfüggetlen módszereket, és megmutatjuk a korlátozások generálásának és az egységesítésnek az alkalmazását. Foglalkozunk a rekurzióval is, megadjuk a mai modern programnyelvekben alkalmazott Hindley-Mycroft-típuskikövetkeztető eljárást is. Típuskikövetkeztetéssel, különböző részletességgel, az ELTE Doktori Iskolájában, a programtervező informatikus MSc-képzésben foglalkozunk, és egy rövid összefoglaló szerepel a programtervező matematikus szak tantervében is. Kulcsszavak típuselmélet, típuskikövetkeztetés, fordítóprogramok Abstract We will discuss a particular area of the type theory, the type inference. Prescribing the types is not always mandatory: There are languages in which not all of types have to be given. In some languages the programmer does not need to consider types at all. However, the knowledge of the possible types is essential for checking the correctness of softwares. Type inference describes the types exactly. First we present the simplest method, the Curry-inference method, then we study the Hindley- Milner algorithm on the polymorphic let-statement. We present context dependent and context free methods, and the applications of generating constrains and of unification. We will consider recursion, and will present the Hindley-Mycroft type inference that is used by modern programming languages. In Eotvos University, we teach type inference - in different depths in PhD courses and in an MSc course. The curriculum of BSc degree also includes a brief summary of type inference. Keywords type theory, type inference, compilers 1
2 Bevezetés A típus már a kezdetektől fogva a számítástudomány központi fogalma. A típusrendszerek vizsgálata az utóbbi évek fontos kutatási területévé vált, az eredmények sikeresen alkalmazhatók a programozási nyelvek tervezésében, nagyhatékonyságú fordítóprogramok implementációjában és a típus nem utolsósorban a biztonságos programok létrehozásának egyik eszköze. Közismert Robin Milnernek az a mondása, hogy egy jól típusozott program nem futhat rosszul. Ezt az állítást már sokan finomították, pontosabbá tették, precízebben megfogalmazták, de ez a kijelentés jól mutatja a típusnak, a típuselméletnek a programozási nyelvekben betöltött szerepét. 1. A Curry-típusrendszer Nem minden programnyelvben kötelező a típusok megadása, vannak olyan nyelvek, ahol nem kell minden típust megadni, és vannak, ahol egyáltalán nem kell a programozónak a típusokkal foglalkoznia. A típusok, a lehetséges típusok ismerete viszont feltétlenül szükséges a program helyességének a vizsgálatához, a típuskikövetkeztetés feladata a típusok pontos meghatározása. A Curry-típusos λ-kalkulust röviden Curry-típusrendszernek nevezzük. A Currytípusrendszer típusai nem alaptípusokból, hanem típusváltozókból épülnek fel. A típusváltozók konkrét típusértéket majd a típuskikövetkeztetés folyamán kapnak. A Curry-típusrendszer szintaxisa: <típus>::= <típuváltozó> ( <típus> <típus>) <λ kifejezés >::= <változó> ( λ<változó>.<λ kifejezés > ) ( <λ kifejezés > <λ kifejezés >) A kifejezések típusát mindig egy <váltózó>:<típus> párokból álló típuskörnyezetből kiindulva a Curry-típusrendszer szabályainak felhasználásával bizonyítjuk. A kifejezések szabad változóinak típusa a típuskörnyezetből olvasható ki. A környezet üres is lehet. A Curry-típusrendszerben is háromfajta következtetés van, az első kettő a szintaktikus helyességgel foglalkozik, a harmadik egy jól formált kifejezés típusát adja meg: Ha -ból E:τ, akkor -ban az E kifejezés típusaτ. Azt mondjuk, hogy egy E:τ következtetés érvényes a típuskörnyezetben, ha bizonyítható a Curry-típusrendszer szabályaival. A típus meghatározásával kapcsolatban három kérdés merül fel, ezekben a típuskörnyezet mindig üres: 1. típuskikövetkeztetés: ha adott az E kifejezés, van-e olyan A típus, melyre E:A, 2. típusellenőrzés: ha adott az E kifejezés és az A típus, akkor teljesül-e az, hogy E:A, 3. típus-reprezentáció: ha adott az A típus, van-e olyan E kifejezés, melyre E:A. 2
3 2. A Curry-típuskikövetkeztetés A fentiek szerint legyen E a Curry-típusrendszer egy kifejezése, és azt vizsgáljuk, hogy van-e olyan A típus, hogy E:A. Típusváltozók szimultán helyettesítését az [α 1 :=A 1,, α n := A n ] leírással adjuk meg, és ha s egy típusváltozó helyettesítés, akkor az A típus s helyettesítését As alakban írjuk le. Azt mondjuk, hogy az A típus a B típus variánsa, ha van olyan s 1 és s 2 helyettesítések, hogy As 1 B és Bs 2 A. Ha pedig As Bs, akkor s az A és B egyesítő helyettesítése. Az A típus általánosabb típus a B típusnál, ha létezik olyan s helyettesítés, hogy B As. Ezt a tulajdonságot B A val jelöljük. Ha üres típuskörnyezetből következik, hogy E:A és A a legáltalánosabb típus, akkor A-t principális típusnak nevezzük. A feladat tehát az, hogy meghatározzuk, kikövetkeztessük az E kifejezés principális típusát. A típuskikövetkeztetés két műveletre, a korlátozások generálására és az egyesítésre bontható fel. A korlátozások típusok közötti egyenlőségek. A korlátozások generálása azt jelenti, hogy a típusrendszer levezetési szabályainak felhasználásával az E kifejezésre és részkifejezéseire nem adunk meg konkrét típusokat, hanem új típusváltozók alkalmazásával egyenleteket generálunk. A korlátozások egyenletrendszerét az egyesítés lépése oldja meg. Az egyesítés a generált típusváltozókhoz konkrét típuskifejezéseket rendel, az E-hez tartozó típusváltozóhoz rendelt típuskifejezés lesz majd az E típusa. A korlátozások generálását a T(,E,A ) leképezéssel végezzük, ahol egy típuskörnyezet, E egy kifejezés és A egy típus. A T(,E,A ) leképezést az E szerkezete szerint adjuk meg: 1. T(,x,A ) {A = (x)} 2. T(, x.e,a ) T({,x: },E, ) {A = },ahol és új típusváltozók, 3. T(,EF,A ) T(,E, A ) T(,F, ),ahol új típusváltozó. Az egyesítés feladat a korlátozások egyenletrendszerének olyan megoldása, ami a korlátozásokat adó kifejezés principális típusa lesz. Ha egy E kifejezés korlátozásait a fenti leképezéssel határozzuk meg és eredményül egy egyenletrendszert kapunk, akkor az egyesítés eljárással meghatározzuk az egyenletrendszer legáltalánosabb megoldását, és ebből már meg tudjuk határozni a principális típust. 3. A let-kifejezés bevezetése 3.1. Az egyszerű let-kifejezés és típuskikövetkeztetése A Curry-típusos λ-kalkulust egy új kifejezéssel bővítjük, a let-kifejezéssel. Ezt az indokolja, hogy a let-kifejezés a legtöbb funkcionális programnyelvben benne van, és kezelése az eddig megismert módszerekkel nem valósítható meg. A let-kifejezés szintaktikája: let <változó> = <λ kifejezés 1 > in <λ kifejezés 2 > 3
4 Először csak olyan let-kifejezéssel foglalkozunk, amelyekben a <változó> nem szerepel a <λ kifejezés 1 > - ben, azaz nincs rekurzió, és feltesszük, hogy a <változó> típusa monomorf. A let-kifejezés operációs szemantikája: let x = E in F F[x := E], és a let-kifejezés típusszabálya: Ha Γ-ból E:A és Γ,x:A-ból F:B, akkor Γ-ból let x=e inf :B. Látható, hogy a λ absztrakcióhoz hasonlóan, a típuskörnyezet x:a eleme beépül a letkifejezésbe. Ennek a let-kifejezésnek a korlátozás-generálása nagyon egyszerű. Legyen α egy új típusváltozó, és tegyük fel, hogy a let-kifejezés típusa A, ekkor a let-kifejezéshez a következő két korlátozás-generálás adható meg: T( Γ, E,α ) és T( {Γ, x:a }, F, A ), ezeknek a megoldása pedig az előző pontban már szerepelt. A korlátozások generálása után a principális típus most is az egységesítés műveletével határozható meg Probléma a let-tel, a polimorfikus let-kifejezés bevezetése A fenti let-kifejezés nagyon jónak tűnik, de sajnos már olyan egyszerű kifejezésre sem alkalmazható, mint például a következő: let f = λx.x in pair (f 0) (f True). A λx.x típusa α α, így az (f 0) típusa Nat Nat, de az (f True) típusa Bool Bool. Az f monomorf típusa miatt ez nem lehetséges. Ezért itt (de csak itt) meg kell engedni a változó polimorf típusát. Ez a let-polimorfizmus, és ez először az ML programnyelvben jelent meg. Ha az f polimorf, akkor a pair (f 0) (f True) kifejezés típusozható, és típusa Pair_Nat_Bool. Ehhez azonban a típus fogalmát is módosítani kell. Az eddigi típust egyszerű típusnak nevezzük, és bevezetjük a típusséma, azaz a polimorfikus típus fogalmát: <típusséma> := <egyszerű típus> <típusváltozó>. <típusséma> A típussémát a σ jellel jelöljük Látható, hogy a kvantor csak a típussémák baloldalán szerepelhet. A kvantor egy kötést valósít meg, a <típusváltozó> kötött lesz az utána következő <típussémá>-ban. Ezt a kötést a típusváltozó helyettesítésekor is figyelembe kell venni. Megadhatjuk egy típusséma gen(γ,σ) általánosítását úgy, hogy univerzális kvantorokkal kötjük a szabad típusváltozóit, és beszélhetünk egy típusséma inst(σ) példányosításáról: ahol a kvantorokkal kötött típusváltozókat egyedi új típusváltozókkal helyettesítjük. Ezeknek a fogalmaknak a bevezetésével már megadhatjuk a polimorfikus let-kifejés típuskikövetkeztetését. 4
5 4. A Hindley-Milner-típuskikövetkeztetés A típuskikövetkeztetés módszerét egymástól függetlenül 1969-ben Hindley, majd ban Milner publikálta, innen származik Hindley-Milner típuskikövetkeztetés elnevezés. Milner volt az első, aki Robinson egységesítését is alkalmazta, beépítve a típuskikövetkeztést az ML fordítóprogramjának elemző algoritmusai közé. Curry is foglalkozott a típuskikövetkeztetéssel, ezért ezt a módszert gyakran Curry--Hindley típuskikövetkeztetésnek is nevezik. A principális típus tétel bizonyítását Damas adta meg, ezért sokan ennek a módszernek a Damas-Milner típuskikövetkeztetés nevet adták A típusrendszer szabályai Csak a három legfontosabb típusszabályt adjuk meg: Ha Γ-ból E:σ, akkor Γ-ból E:gen(Γ,σ), ha Γ-ból E:σ, akkor Γ-ból E:inst(σ), ha Γ-ból E:σ és Γ,x:σ-ból F: σ, akkor Γ-ból let x = E in F :σ. Látható, hogy a típusséma előfordulhat a kifejezések típusában is, nem csak a típuskörnyezetekben. Ez nehézkessé teszi a típuskikövetkeztetést, ráadásul a kifejezés szintaktikájából egyáltalán nem látszik, hogy mikor kell az általánosítás vagy a példányosítás szabályát alkalmazni. Ezért módosítsuk a let-kifejezés típusszabályát úgy, hogy ez a kifejezés írja bele a típuskörnyezetbe a polimorfikus típust, és hogy a polimorfikus típus ne szerepeljen kifejezések típusában, csak a típuskörnyezetben. ha Γ-ból E:σ és {Γ,x: gen(γ,σ)}-ból F: σ, akkor Γ-ból let x = E in F :σ. A típuskörnyezetből egy változó típusát kiolvashatjuk, de ekkor mindig a példányosítás műveletét kell alkalmazni A W-algoritmus Milner két algoritmust is adott a típuskikövetkeztetésre. Először a W-algoritmussal foglalkozunk. Az algoritmust mintákkal, a kifejezés szerkezete szerint adjuk meg. Az algoritmus egy típuskörnyezetre és a kifejezésre egy típusváltozó helyettesítését határozza meg, vagy hibajelzéssel megáll. Az algoritmust nem részletezzük, csupán két mintára vonatkozó lépését adjuk meg: W(Γ,x) = (Id, inst(σ)), ahol {x:σ} a Γ-ban van. W(Γ,let x=e inf) = (s 1, s 2, τ ), ahol W(Γ,E) = (s 1,τ ) és W({Γs 1,x:gen(Γs 1,τ },F) = (s 2,τ ) A megadott két lépésből is látható, hogy az univerzális kvantoros típusséma a let-kifejezés feldolgozásánál kerül bele a típuskörnyezetbe, és egy változó típusának a típuskörnyezetből való meghatározásánál a példányosítás műveletét alkalmazzuk. Ezek biztosítják azt, hogy például a fenti 5
6 f = λx.x in pair (f 0) (f True) kifejezésben az f típusa α.α α lesz, és az f 0 kifejezésben az f típusának meghatározásakor a példányosítás művelete az α-hoz a Nat, az f True kifejezésben pedig a Bool típust rendeli hozzá A W-algoritmus helyes, azaz ha W(Γ,E) = (s,τ), akkor Γs-ből valóban az következik, hogy E:τ, és az algoritmus teljes, vagyis a legáltalánosabb típust határozza meg A J-algoritmus A J-algoritmust is Milner definiálta 1978-ban, mint a W-algoritmus egy egyszerűbb formáját, ugyanabban a cikkben, amelyben a W-algoritmus is először szerepel. A J- algoritmust a Haskell programnyelv implementációjában használták. A típuskikövetkeztetés is használ egy s helyettesítést, mint egy globális változót, a típuskikövetkeztetés indításakor s = Id. A helyettesítést azonban csak az egységesítés argumentumainak megadásában használjuk, és ellentétben a W-algoritmussal, a helyettesítés a principális típus végső meghatározásában már nem szerepel. Most is csak két mintára vonatkozó lépést adunk meg: J(Γ,x) = inst(σ), ahol {x:σ} a Γ-ban van, J(Γ,let x=e inf) = τ, ahol J(Γ,E) = τ és W({Γ,x:gen(Γs_1,τ s},f) = τ. Az algoritmus közvetlenül a kifejezés típusát adja meg, és bizonyítható, hogy az algoritmus helyes és teljes Az M-algoritmus Mind a W-, mind a J-algoritmus az EF applikációra úgy működik, hogy először végigszámolta az E-t, majd végigszámolja az F-t, és csak ezután ellenőrzi, hogy az E típusa függvény-e, vagyis az E típus α α alakú-e. Ezért ezeket a típuskikövetkeztetéseket környezetfüggetlen típuskikövetkeztetéseknek nevezzük, hiszen a kifejezések típusát anélkül határozzák meg, hogy megvizsgálnák, azok milyen környezetben vannak. Ezeket az algoritmusokat alulról-felfelé haladó algoritmusoknak is tekinthetjük, hiszen például ha az EF applikációt gráffal ábrázoljuk, az algoritmusok először az E-t, a bal oldali részfát járják be, utána foglalkoznak a jobb oldali F részfájával, és csak ezután lépnek egy szinttel feljebb az applikáció műveletéhez, és csak most vizsgálják meg az applikáció lehetőségét. Ez a működés a hiba felfedezésére is erősen kihat, hiszen ha az applikáció nem lehetséges, ezt a kikövetkeztető algoritmus csak sok munka után, az E és F teljes feldolgozása után fedezi fel. A típuskikövetkeztető rendszer sokkal hamarabb észrevenné a hibát, ha egy EF applikáció esetén az E feldolgozása után azonnal ellenőrizné, hogy az E típusa vajon függvény-e. Ez a gondolat az alapja a típuskikövetkeztetés M-algoritmusának, amit Lee és Yi dolgozott ki 1998-ban. 6
7 Az M-algoritmus a környezetből meghatározza a várható típust, ezt a típust továbbítja a kifejezés felé, és hibát jelez, ha a kifejezés típusa nem felel meg a várt típusnak. Az algoritmust ezért környezetfüggő típuskikövetkeztetésnek nevezzük. A módszer lényegében egy felülről-lefelé haladó típuskikövetkeztetés. Az EF applikáció gráfját tekintve az algoritmus először meghatározza az applikáció elemeinek várható típusát, és csak ezután járja be az E bal oldali részfát. Csak akkor folytatja a típuskikövetkeztetést a jobb oldali részfával, azaz az F kifejezéssel, ha az E típusa megfelel a várt típusnak. 5. A rekurzió bevezetése és a Milner-Mycroft típuskikövetkeztetés A rekurzív kifejezések típusának leírására a fenti rendszerek nem alkalmasak, ezért bővítsük a rendszerünket a rekurziót leíró fix-kifejezéssel. A fix-kifejezés szintaktikája: fix <változó>. <λ kifejezés>, és operációs szemantikája fix x. E E [x:= fix x. E ]. A fix-kifejezés klasszikus monomorf típusszabályát Mycroft módosította polimorfikus típusokra: ha Γ,x:σ-ból E: σ, akkor Γ-ból fix x. E:σ. A típusok tehát típussémák, és ez biztosítja a polimorfikus típusos rekurzív függvények leírását. Ezt a típusrendszert nevezzük Milner-Mycroft típusrendszernek. A let-kifejezéshez hasonlóan, a fix-kifejezés típusszabálya is módosítható úgy, hogy a kvantoros típussémák csak a típuskörnyezetben szerepeljenek. Ez a típuskikövetkeztetés szintaxisvezérelt végrehajtását teszi lehetővé. A Milner-Mycroft típusrendszer megtartja a Hindley-Milner típusrendszer legtöbb tulajdonságát, például itt is teljesül a tárgy-redukció tétele, és itt is igaz, hogy a típusosan helyes kifejezések nem okoznak run-time típus-hibát. Azonban, míg a Curry- és a Hindley- Milner típusrendszer típus-kikövetkeztetése eldönthető és a probléma általában polinomiális, néhány speciális esetben exponenciális időbonyolultságú, addig a Milner-Mycroft típuskikövetkeztetés nem eldönthető, azaz vannak olyan problémák, amelyekre a kikövetkeztetés nem terminál. Irodalomjegyzék [1] L. Cardelli: Type Systems, Handbook of Computer Science and Engineering, CRC Press, [2] Z. Csörnyei: Lambda-kalkulus, Typotex, Budapest, [3] Z. Csörnyei: Típuselmélet (kézirat), [4] B. C. Pierce: Types and Programming Languages, The MIT Press, Cambridge, [5] B. C. Pierce (editor):advanced Topics in Types and Programming Languages, The Mit Press,
Nyelvek típusrendszere (IPM-08sztNYTRE, IPM-08EsztNYTRE)
Nyelvek típusrendszere (IPM-08sztNYTRE, IPM-08EsztNYTRE) http://people.inf.elte.hu/pgj/nytr_msc/ Páli Gábor János pgj@elte.hu Eötvös Loránd Tudományegyetem, Informatikai Kar Programozási Nyelvek és Fordítóprogramok
RészletesebbenKaposi Ambrus. Informatikai Kar. Pannonhalmi Bencés Gimnázium november 24.
Bizonyítás és programozás Kaposi Ambrus Eötvös Loránd Tudományegyetem Informatikai Kar Pannonhalmi Bencés Gimnázium 2017. november 24. A tökéletes operációs rendszer (i) BeOS Plan9 2 / 22 A tökéletes operációs
RészletesebbenA szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok
A szemantikus elemzés helye Forrásprogram Forrás-kezelő (source handler) Lexikális elemző (scanner) A szemantikus elemzés feladatai Fordítóprogramok előadás (A, C, T szakirány) Szintaktikus elemző (parser)
RészletesebbenFUNKCIONÁLIS PROGRAMOZÁS
FUNKCIONÁLIS PROGRAMOZÁS A funkcionális programozás néhány jellemzője Funkcionális programozás 1-2 Funkcionális, más néven applikatív programozás Funkcionális = függvényalapú, függvényközpontú Applikatív
RészletesebbenKaposi Ambrus. University of Nottingham Functional Programming Lab. Hackerspace Budapest 2015. január 6.
Bizonyítás és programozás Kaposi Ambrus University of Nottingham Functional Programming Lab Hackerspace Budapest 2015. január 6. Bizonyítás, érvelés Példa: sáros a csizmám ha vizes a föld, esett az eső
RészletesebbenNyelvek típusrendszere (jegyzet)
Nyelvek típusrendszere (jegyzet) Kaposi Ambrus Eötvös Loránd Tudományegyetem akaposi@inf.elte.hu 2017. november 6. Lektorálta: Csörnyei Zoltán Az ELTE tankönyv- és jegyzettámogatási pályázatán elnyert
RészletesebbenProgramok értelmezése
Programok értelmezése Kód visszafejtés. Izsó Tamás 2016. szeptember 22. Izsó Tamás Programok értelmezése/ 1 Section 1 Programok értelmezése Izsó Tamás Programok értelmezése/ 2 programok szemantika értelmezése
RészletesebbenA Feldspar fordító, illetve Feldspar programok tesztelése
A Feldspar fordító, illetve Feldspar programok tesztelése [KMOP-1.1.2-08/1-2008-0002 társfinanszírozó: ERFA] Leskó Dániel Eötvös Loránd Tudományegyetem Programozási Nyelvek és Fordítóprogramok Tanszék
RészletesebbenA DEBRECENI MÉRNÖK INFORMATIKUS KÉPZÉS TAPASZTALATAIRÓL. Kuki Attila Debreceni Egyetem, Informatikai Kar. Összefoglaló
A DEBRECENI MÉRNÖK INFORMATIKUS KÉPZÉS TAPASZTALATAIRÓL TEACHING EXPERIENCES OF THE IT ENGINEERING COURSE OF UNIVERSITY OF DEBRECEN Kuki Attila Debreceni Egyetem, Informatikai Kar Összefoglaló A Debreceni
RészletesebbenChomsky-féle hierarchia
http://www.cs.ubbcluj.ro/~kasa/formalis.html Chomsky-féle hierarchia G = (N, T, P, S) nyelvtan: 0-s típusú (általános vagy mondatszerkezet ), ha semmilyen megkötést nem teszünk a helyettesítési szabályaira.
RészletesebbenSegédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat
Formális nyelvek a gyakorlatban Formális nyelvek, 1 gyakorlat Segédanyagok Célja: A programozási nyelvek szintaxisának leírására használatos eszközök, módszerek bemutatása Fogalmak: BNF, szabály, levezethető,
RészletesebbenA szemantikus elemzés elmélete. Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete. A szemantikus elemzés elmélete
A szemantikus elemzés elmélete Szemantikus elemzés (attribútum fordítási grammatikák) a nyelvtan szabályait kiegészítjük a szemantikus elemzés tevékenységeivel fordítási grammatikák Fordítóprogramok előadás
RészletesebbenA digitális számítás elmélete
A digitális számítás elmélete 8. előadás ápr. 16. Turing gépek és nyelvtanok A nyelvosztályok áttekintése Turing gépek és a természetes számokon értelmezett függvények Áttekintés Dominó Bizonyítások: L
RészletesebbenLogika és informatikai alkalmazásai kiskérdések február Mikor mondjuk, hogy az F formula a G-nek részformulája?
,,Alap kiskérdések Logika és informatikai alkalmazásai kiskérdések 2012. február 19. 1. Hogy hívjuk a 0 aritású függvényjeleket? 2. Definiálja a termek halmazát. 3. Definiálja a formulák halmazát. 4. Definiálja,
RészletesebbenKiterjesztések sek szemantikája
Kiterjesztések sek szemantikája Példa D Integer = {..., -1,0,1,... }; D Boolean = { true, false } D T1... T n T = D T 1... D Tn D T Az összes függvf ggvény halmaza, amelyek a D T1,..., D Tn halmazokból
RészletesebbenA fröccs szintaxisa és operációs szemantikája
A fröccs szintaxisa és operációs szemantikája Kaposi Ambrus Eötvös Loránd Tudományegyetem akaposi@inf.elte.hu 2017. október 2. 1. Bevezetés Ipari partnerünk megkereste az Informatikai Kar Programozási
RészletesebbenFUNKCIONÁLIS PROGRAMOZÁS GYAKORLAT JEGYZET
FUNKCIONÁLIS PROGRAMOZÁS GYAKORLAT JEGYZET Szerkesztette: Balogh Tamás 2013. május 17. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! - Ne add
RészletesebbenAz impulzusnyomatékok általános elmélete
Az impulzusnyomatékok általános elmélete November 27, 2006 Az elemi kvantummechanika keretében tárgyaltuk már az impulzusnyomatékot. A továbbiakban általánosítjuk az impulzusnyomaték fogalmát a kvantummechanikában
Részletesebben... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.
Párhuzamos programok Legyen S parbegin S 1... S n parend; program. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Folyamat
RészletesebbenFUNKCIONÁLIS PROGRAMNYELVEK IMPLEMENTÁCIÓJA
FUNKCIONÁLIS PROGRAMNYELVEK IMPLEMENTÁCIÓJA Csörnyei Zoltán, csz@maxi.elte.hu Nagy Sára, saci@ludens.elte.hu Eötvös Loránd Tudományegyetem Általános Számítástudományi Tanszék. Abstract Functional languages
RészletesebbenFormális szemantika. Kifejezések szemantikája. Horpácsi Dániel ELTE Informatikai Kar
Formális szemantika Kifejezések szemantikája Horpácsi Dániel ELTE Informatikai Kar 2016-2017-2 Az előadás témája Egyszerű kifejezések formális szemantikája Az első lépés a programozási nyelvek szemantikájának
RészletesebbenMagasabbrendű funkcionális programozás
1 Magasabbrendű funkcionális programozás Hanák Péter hanak@inf.bme.hu Irányítástechnika és Informatika Tanszék OM Kutatás-Fejlesztési Helyettes Államtitkárság Hanák Dávid dhanak@inf.bme.hu Számítástudományi
RészletesebbenÁltalános algoritmustervezési módszerek
Általános algoritmustervezési módszerek Ebben a részben arra mutatunk példát, hogy miként használhatóak olyan általános algoritmustervezési módszerek mint a dinamikus programozás és a korlátozás és szétválasztás
Részletesebben3. előadás. Programozás-elmélet. A változó fogalma Kiterjesztések A feladat kiterjesztése A program kiterjesztése Kiterjesztési tételek Példa
A változó fogalma Definíció Legyen A = A 1 A 2... A n állapottér. A pr Ai projekciós függvényeket változóknak nevezzük: : A A i pr Ai (a) = a i ( a = (a 1, a 2,..., a n ) A). A változók jelölése: v i =
RészletesebbenChomsky-féle hierarchia
http://www.ms.sapientia.ro/ kasa/formalis.htm Chomsky-féle hierarchia G = (N, T, P, S) nyelvtan: 0-s típusú (általános vagy mondatszerkezetű), ha semmilyen megkötést nem teszünk a helyettesítési szabályaira.
Részletesebben3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek
3. Előadás Megyesi László: Lineáris algebra, 47. 50. oldal. Gondolkodnivalók Determinánsok 1. Gondolkodnivaló Determinánselméleti tételek segítségével határozzuk meg a következő n n-es determinánst: 1
RészletesebbenAlap fatranszformátorok II
Alap fatranszformátorok II Vágvölgyi Sándor Fülöp Zoltán és Vágvölgyi Sándor [2, 3] közös eredményeit ismertetjük. Fogalmak, jelölések A Σ feletti alaptermek TA = (T Σ, Σ) Σ algebráját tekintjük. Minden
RészletesebbenHázi feladatok megoldása. Nyelvek használata adatszerkezetek, képek leírására
Nyelvek használata adatszerkezetek, képek leírására Formális nyelvek, 2. gyakorlat 1. feladat Módosított : belsejében lehet _ jel is. Kezdődhet, de nem végződhet vele, két aláhúzás nem lehet egymás mellett.
RészletesebbenA TANTÁRGY ADATLAPJA
A TANTÁRGY ADATLAPJA 1. A képzési program adatai 1.1 Felsőoktatási intézmény Babeș Bolyai Tudományegyetem 1.2 Kar Matematika és Informatika Kar 1.3 Intézet Magyar Matematika és Informatika Intézet 1.4
RészletesebbenAutomaták és formális nyelvek
Automaták és formális nyelvek Bevezetés a számítástudomány alapjaiba 1. Formális nyelvek 2006.11.13. 1 Automaták és formális nyelvek - bevezetés Automaták elmélete: információs gépek általános absztrakt
RészletesebbenKOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA
KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA Szoftver Verifikáció és Validáció, 2015 Ősz Vaitkus Márton Tartalom Motiváció Maple MiniMaple MiniMaple típusellenőrzése MiniMaple formális specifikációja MiniMaple
Részletesebben2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér
Funkcionális programozás 2. el adás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2019, tavaszi félév Mir l volt szó? Követelmények, osztályozás Programozási
RészletesebbenALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha
ALAPFOGALMAK 1 Á l l a p o t t é r Legyen I egy véges halmaz és legyenek A i, i I tetszőleges véges vagy megszámlálható, nem üres halmazok Ekkor az A= A i halmazt állapottérnek, az A i halmazokat pedig
Részletesebben1. Homogén lineáris egyenletrendszer megoldástere
X HOMOGÉN LINEÁRIS EGYENLET- RENDSZEREK 1 Homogén lineáris egyenletrendszer megoldástere Homogén lineáris egyenletrendszer definíciója már szerepelt Olyan lineáris egyenletrendszert nevezünk homogénnek,
RészletesebbenFUNKCIONÁLIS PROGRAMOZÁS ELŐADÁS JEGYZET
FUNKCIONÁLIS PROGRAMOZÁS ELŐADÁS JEGYZET Szerkesztette: Balogh Tamás 2013. május 30. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! - Ne add
RészletesebbenAZ EGYETEM TÖRTÉNETE. Az Eötvös Loránd Tudományegyetem Magyarország legrégebbi folyamatosan m{köd[, s egyben legnagyobb egyeteme.
AZ EGYETEM TÖRTÉNETE Az Eötvös Loránd Tudományegyetem Magyarország legrégebbi folyamatosan m{köd[, s egyben legnagyobb egyeteme. Pázmány Péter esztergomi érsek 1635-ben Nagyszombat városában alapította
RészletesebbenFFT. Második nekifutás. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék október 2.
TARTALOMJEGYZÉK Polinomok konvolúviója A DFT és a maradékos osztás Gyűrűk támogatás nélkül Második nekifutás Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék 2015. október 2. TARTALOMJEGYZÉK Polinomok
RészletesebbenAlgoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.
Algoritmuselmélet NP-teljes problémák Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 13. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet
Részletesebben2018, Funkcionális programozás
Funkcionális programozás 1. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2018, tavaszi félév Követelmények, osztályozás Előadás, jelenlét:
RészletesebbenCsempe átíró nyelvtanok
Csempe átíró nyelvtanok Tile rewriting grammars Németh L. Zoltán Számítástudomány Alapjai Tanszék SZTE, Informatikai Tanszékcsoport 1. előadás - 2006. április 10. Képek (pictures) I. Alapdefiníciók ábécé:
RészletesebbenEmlékeztető: LR(0) elemzés. LR elemzések (SLR(1) és LR(1) elemzések)
Emlékeztető Emlékeztető: LR(0) elemzés A lexikális által előállított szimbólumsorozatot balról jobbra olvassuk, a szimbólumokat az vermébe tesszük. LR elemzések (SLR() és LR() elemzések) Fordítóprogramok
RészletesebbenA Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:
A Formális nyelvek vizsga teljesítése a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon: 1. Öt rövid kérdés megválaszolása egyenként 6 pontért, melyet minimum
RészletesebbenHázi feladatok megoldása. Nyelvek felismerése. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 5. gyakorlat
Házi feladatok megoldása Nyelvek felismerése Formális nyelvek, 5. gyakorlat 1. feladat Adjunk a következő nyelvet generáló 3. típusú nyelvtant! Azon M-áris számrendszerbeli számok, melyek d-vel osztva
RészletesebbenFunkcionális Nyelvek 2 (MSc)
Funkcionális Nyelvek 2 (MSc) Páli Gábor János pgj@elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar Programozási Nyelvek és Fordítóprogramok Tanszék Tematika A (tervezett) tematika rövid összefoglalása
Részletesebben6. Függvények. Legyen függvény és nem üreshalmaz. A függvényt az f K-ra való kiterjesztésének
6. Függvények I. Elméleti összefoglaló A függvény fogalma, értelmezési tartomány, képhalmaz, értékkészlet Legyen az A és B halmaz egyike sem üreshalmaz. Ha az A halmaz minden egyes eleméhez hozzárendeljük
RészletesebbenAlapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók
Haskell 1. Alapok tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók elég jól elkerülhetők így a mellékhatások könnyebben
Részletesebben6. Függvények. 1. Az alábbi függvények közül melyik szigorúan monoton növekvő a 0;1 intervallumban?
6. Függvények I. Nulladik ZH-ban láttuk: 1. Az alábbi függvények közül melyik szigorúan monoton növekvő a 0;1 intervallumban? f x g x cos x h x x ( ) sin x (A) Az f és a h. (B) Mindhárom. (C) Csak az f.
RészletesebbenLogika es sz am ıt aselm elet I. r esz Logika 1/36
1/36 Logika és számításelmélet I. rész Logika 2/36 Elérhetőségek Tejfel Máté Déli épület, 2.606 matej@inf.elte.hu http://matej.web.elte.hu Tankönyv 3/36 Tartalom 4/36 Bevezető fogalmak Ítéletlogika Ítéletlogika
RészletesebbenFunkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }
Funkcionális és logikai programozás { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi ` 1 Jelenlét: Követelmények, osztályozás Az első 4 előadáson
RészletesebbenDiszkrét Matematika MSc hallgatók számára. 4. Előadás
Diszkrét Matematika MSc hallgatók számára 4. Előadás Előadó: Hajnal Péter Jegyzetelő: Szarvák Gábor 2012. február 28. Emlékeztető. A primál feladat optimális értékét p -gal, a feladat optimális értékét
Részletesebben2. Rekurzió. = 2P2(n,n) 2 < 2P2(n,n) 1
2. Rekurzió Egy objektum definícióját rekurzívnak nevezünk, ha a definíció tartalmazza a definiálandó objektumot. Egy P eljárást (vagy függvényt) rekurzívnak nevezünk, ha P utasításrészében előfordul magának
RészletesebbenHALLGATÓI KÉRDŐÍV ÉS TESZT ÉRTÉKELÉSE
HALLGATÓI KÉRDŐÍV ÉS TESZT ÉRTÉKELÉSE EVALUATION OF STUDENT QUESTIONNAIRE AND TEST Daragó László, Dinyáné Szabó Marianna, Sára Zoltán, Jávor András Semmelweis Egyetem, Egészségügyi Informatikai Fejlesztő
Részletesebben1. Példa. A gamma függvény és a Fubini-tétel.
. Példa. A gamma függvény és a Fubini-tétel.. Az x exp x + t )) függvény az x, t tartományon folytonos, és nem negatív, ezért alkalmazható rá a Fubini-tétel. I x exp x + t )) dxdt + t dt π 4. [ exp x +
RészletesebbenJava programozási nyelv
Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék
RészletesebbenVektorterek. Több esetben találkozhattunk olyan struktúrával, ahol az. szabadvektorok esetében, vagy a függvények körében, vagy a. vektortér fogalma.
Vektorterek Több esetben találkozhattunk olyan struktúrával, ahol az összeadás és a (valós) számmal való szorzás értelmezett, pl. a szabadvektorok esetében, vagy a függvények körében, vagy a mátrixok esetében.
RészletesebbenNP-teljesség röviden
NP-teljesség röviden Bucsay Balázs earthquake[at]rycon[dot]hu http://rycon.hu 1 Turing gépek 1/3 Mi a turing gép? 1. Definíció. [Turing gép] Egy Turing-gép formálisan egy M = (K, Σ, δ, s) rendezett négyessel
RészletesebbenHadamard-mátrixok Előadó: Hajnal Péter február 23.
Szimmetrikus kombinatorikus struktúrák MSc hallgatók számára Hadamard-mátrixok Előadó: Hajnal Péter 2012. február 23. 1. Hadamard-mátrixok Ezen az előadáson látásra a blokkrendszerektől független kombinatorikus
RészletesebbenS0-02 Típusmodellek (Programozás elmélet)
S0-02 Típusmodellek (Programozás elmélet) Tartalom 1. Absztrakt adattípus 2. Adattípus specifikációja 3. Adattípus osztály 4. Paraméterátadás 5. Reprezentációs függvény 6. Öröklődés és polimorfizmus 7.
RészletesebbenAlgoritmusok és adatszerkezetek II.
Algoritmusok és adatszerkezetek II. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 5. Vágható-egyesíthető Halmaz adattípus megvalósítása önszervező
RészletesebbenEgyenletek, egyenlőtlenségek, egyenletrendszerek I.
Egyenletek, egyenlőtlenségek, egyenletrendszerek I. DEFINÍCIÓ: (Nyitott mondat) Az olyan állítást, amelyben az alany helyén változó szerepel, nyitott mondatnak nevezzük. A nyitott mondatba írt változót
RészletesebbenDualitás Dualitási tételek Általános LP feladat Komplementáris lazaság 2017/ Szegedi Tudományegyetem Informatikai Intézet
Operációkutatás I. 2017/2018-2. Szegedi Tudományegyetem Informatikai Intézet Számítógépes Optimalizálás Tanszék 7. Előadás Árazási interpretáció Tekintsük újra az erőforrás allokációs problémát (vonat
RészletesebbenFormális nyelvek - 5.
Formális nyelvek - 5. Csuhaj Varjú Erzsébet Algoritmusok és Alkalmazásaik Tanszék Informatikai Kar Eötvös Loránd Tudományegyetem H-1117 Budapest Pázmány Péter sétány 1/c E-mail: csuhaj@inf.elte.hu 1 Lineáris
RészletesebbenMŰSZAKI TUDOMÁNY AZ ÉSZAK-ALFÖLDI RÉGIÓBAN 2010
MŰSZAKI TUDOMÁNY AZ ÉSZAK-ALFÖLDI RÉGIÓBAN 2010 KONFERENCIA ELŐADÁSAI Nyíregyháza, 2010. május 19. Szerkesztette: Edited by Pokorádi László Kiadja: Debreceni Akadémiai Bizottság Műszaki Szakbizottsága
RészletesebbenLogika es sz am ıt aselm elet I. r esz Logika Harmadik el oad as 1/33
1/33 Logika és számításelmélet I. rész Logika Harmadik előadás Tartalom 2/33 Elsőrendű logika bevezetés Az elsőrendű logika szintaxisa 3/33 Nulladrendű állítás Az ítéletlogikában nem foglalkoztunk az álĺıtások
RészletesebbenA STRATÉGIAALKOTÁS FOLYAMATA
BUDAPESTI CORVINUS EGYETEM VÁLLALATGAZDASÁGTAN INTÉZET VERSENYKÉPESSÉG KUTATÓ KÖZPONT Szabó Zsolt Roland: A STRATÉGIAALKOTÁS FOLYAMATA VERSENYBEN A VILÁGGAL 2004 2006 GAZDASÁGI VERSENYKÉPESSÉGÜNK VÁLLALATI
RészletesebbenFUNKCIONÁLIS PROGRAMNYELVEK IMPLEMENTÁCIÓJA
CSÖRNYEI ZOLTÁN FUNKCIONÁLIS PROGRAMNYELVEK IMPLEMENTÁCIÓJA I. rész BUDAPEST, 2010 ii c Csörnyei Zoltán, 2010. Minden jog fenntartva. Jelen könyvet, illetve annak részeit tilos reprodukálni, adatrögzítő
RészletesebbenA SZAKDOLGOZAT SZERKESZTÉSE
A SZAKDOLGOZAT SZERKESZTÉSE Főiskolai és BSc szakokon Szakdolgozat 1. A szakdolgozat nyelve: magyar vagy angol. 2. A szakdolgozat alakja: A4 formátum, bekötött, fekete színű kemény kötés. 3. A szakdolgozat
RészletesebbenA logikai következmény
Logika 3 A logikai következmény A logika egyik feladata: helyes következtetési sémák kialakítása. Példa következtetésekre : Minden veréb madár. Minden madár gerinces. Minden veréb gerinces 1.Feltétel 2.Feltétel
RészletesebbenDifferenciálegyenletek megoldása próbafüggvény-módszerrel
Differenciálegyenletek megoldása próbafüggvény-módszerrel Ez még nem a végleges változat, utoljára módosítva: 2012. április 9.19:38. Elsőrendű egyenletek Legyen adott egy elsőrendű lineáris állandó együtthatós
RészletesebbenProgramtervező informatikus MSc nappali tagozat ajánlott tanterv 2018
Előadás Előadás Programtervező informatikus MSc nappali tagozat ajánlott tanterv 2018 Szoftvertechnológia specializáció (törzsanyaggal együtt) Törzsanyag IPM-18KMTGY Kutatásmódszertan 0 2 Gy 1 3 1 0+2+1
RészletesebbenProgramtervező informatikus MSc nappali tagozat ajánlott tanterv 2018
Előadás Előfeltétel Előadás Előfeltétel Programtervező informatikus MSc nappali tagozat ajánlott tanterv 018 Szoftvertechnológia specializáció (törzsanyaggal együtt) Törzsanyag IPM-18KMTGY Kutatásmódszertan
RészletesebbenDiszkrét matematika 2. estis képzés
Diszkrét matematika 2. estis képzés 2018. tavasz 1. Diszkrét matematika 2. estis képzés 10. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
RészletesebbenPredikátumkalkulus. 1. Bevezet. 2. Predikátumkalkulus, formalizálás. Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák.
Predikátumkalkulus Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák. 1. Bevezet Nézzük meg a következ két kijelentést: Minden almához tartozik egy fa, amir l leesett. Bármely
RészletesebbenElsőrendű logika szintaktikája és szemantikája. Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1
Elsőrendű logika szintaktikája és szemantikája Logika és számításelmélet, 3. gyakorlat 2009/10 II. félév Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1 Az elsőrendű logika Elemek egy
RészletesebbenDiszkrét matematika 2.C szakirány
Diszkrét matematika 2.C szakirány 2015. ősz 1. Diszkrét matematika 2.C szakirány 3. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2015.
RészletesebbenII. Két speciális Fibonacci sorozat, szinguláris elemek, természetes indexelés
II. Két speciális Fibonacci sorozat, szinguláris elemek, természetes indexelés Nagyon könnyen megfigyelhetjük, hogy akármilyen két számmal elindítunk egy Fibonacci sorozatot, a sorozat egymást követő tagjainak
Részletesebbenf(x) vagy f(x) a (x x 0 )-t használjuk. lim melyekre Mivel itt ɛ > 0 tetszőlegesen kicsi, így a a = 0, a = a, ami ellentmondás, bizonyítva
6. FÜGGVÉNYEK HATÁRÉRTÉKE ÉS FOLYTONOSSÁGA 6.1 Függvény határértéke Egy D R halmaz torlódási pontjainak halmazát D -vel fogjuk jelölni. Definíció. Legyen f : D R R és legyen x 0 D (a D halmaz torlódási
RészletesebbenDiszkrét matematika 2.C szakirány
Diszkrét matematika 2.C szakirány 2017. tavasz 1. Diszkrét matematika 2.C szakirány 3. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2017.
RészletesebbenDiszkrét matematika I.
Diszkrét matematika I. középszint 2013 ősz 1. Diszkrét matematika I. középszint 8. előadás Mérai László merai@compalg.inf.elte.hu compalg.inf.elte.hu/ merai Komputeralgebra Tanszék 2013 ősz Kombinatorika
RészletesebbenDiszkrét matematika I.
Diszkrét matematika I. középszint 2014. ősz 1. Diszkrét matematika I. középszint 10. előadás Mérai László diái alapján Komputeralgebra Tanszék 2014. ősz Felhívás Diszkrét matematika I. középszint 2014.
Részletesebben2016, Funkcionális programozás
Funkcionális programozás 2. előadás Sapientia Egyetem, Műszaki és Humántudományok Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2016, tavaszi félév Miről volt szó? Programozási paradigmák: imperatív,
RészletesebbenAlgoritmusok helyességének bizonyítása. A Floyd-módszer
Algoritmusok helyességének bizonyítása A Floyd-módszer Algoritmusok végrehajtása Egy A algoritmus esetében a változókat három változótípusról beszélhetünk, melyeket az X, Y és Z vektorokba csoportosítjuk
RészletesebbenFüggvények július 13. f(x) = 1 x+x 2 f() = 1 ()+() 2 f(f(x)) = 1 (1 x+x 2 )+(1 x+x 2 ) 2 Rendezés után kapjuk, hogy:
Függvények 015. július 1. 1. Feladat: Határozza meg a következ összetett függvényeket! f(x) = cos x + x g(x) = x f(g(x)) =? g(f(x)) =? Megoldás: Összetett függvény el állításához a küls függvényben a független
Részletesebbenminden x D esetén, akkor x 0 -at a függvény maximumhelyének mondjuk, f(x 0 )-at pedig az (abszolút) maximumértékének.
Függvények határértéke és folytonossága Egy f: D R R függvényt korlátosnak nevezünk, ha a függvényértékek halmaza korlátos. Ha f(x) f(x 0 ) teljesül minden x D esetén, akkor x 0 -at a függvény maximumhelyének
RészletesebbenA Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:
A Formális nyelvek vizsga teljesítése a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon: 1. Öt kis kérdés megválaszolása egyenként 6 pontért, melyet minimum 12
RészletesebbenMBNK12: Permutációk (el adásvázlat, április 11.) Maróti Miklós
MBNK12: Permutációk el adásvázlat 2016 április 11 Maróti Miklós 1 Deníció Az A halmaz permutációin a π : A A bijektív leképezéseket értjünk Tetsz leges n pozitív egészre az {1 n} halmaz összes permutációinak
RészletesebbenÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA)
ÍTÉLETKALKULUS SZINTAXIS ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA) jelkészlet elválasztó jelek: ( ) logikai műveleti jelek: ítéletváltozók (logikai változók): p, q, r,... ítéletkonstansok: T, F szintaxis szabályai
RészletesebbenProgram ekvivalencia és logikai relációk
EÖTVÖS LORÁND TUDOMÁNYEGYETEM Természettudományi kar Program ekvivalencia és logikai relációk Diplomamunka Szalai Zsolt matematikus hallgató Konzulens: Csörnyei Zoltán, egyetemi docens Dr., PhD. matematikus
RészletesebbenA törzsszámok sorozatáról
A törzsszámok sorozatáról 6 = 2 3. A 7 nem bontható fel hasonló módon két tényez őre, ezért a 7-et törzsszámnak nevezik. Törzsszámnak [1] nevezzük az olyan pozitív egész számot, amely nem bontható fel
RészletesebbenKifejezések. Kozsik Tamás. December 11, 2016
Kifejezések Kozsik Tamás December 11, 2016 Kifejezés versus utasítás C/C++: kifejezés plusz pontosvessző: utasítás kiértékeli a kifejezést jellemzően: mellékhatása is van például: értékadás Ada: n = 5;
RészletesebbenA fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása
A fordítóprogramok szerkezete Forrásprogram Forrás-kezelő (source handler) Kódoptimalizálás Fordítóprogramok előadás (A,C,T szakirány) Lexikális elemző (scanner) Szintaktikus elemző (parser) Szemantikus
RészletesebbenDiszkrét matematika I.
Diszkrét matematika I. középszint 2014. ősz 1. Diszkrét matematika I. középszint 2. előadás Mérai László diái alapján Komputeralgebra Tanszék 2014. ősz Matematikai logika Diszkrét matematika I. középszint
Részletesebben6. Előadás. Megyesi László: Lineáris algebra, oldal. 6. előadás Bázis, dimenzió
6. Előadás Megyesi László: Lineáris algebra, 37. 41. oldal. Gondolkodnivalók Lineáris függetlenség 1. Gondolkodnivaló Legyen V valós számtest feletti vektortér. Igazolja, hogy ha a v 1, v 2,..., v n V
RészletesebbenFormális nyelvek - 9.
Formális nyelvek - 9. Csuhaj Varjú Erzsébet Algoritmusok és Alkalmazásaik Tanszék Informatikai Kar Eötvös Loránd Tudományegyetem H-1117 Budapest Pázmány Péter sétány 1/c E-mail: csuhaj@inf.elte.hu 1 Véges
RészletesebbenAz optimális megoldást adó algoritmusok
Az optimális megoldást adó algoritmusok shop ütemezés esetén Ebben a fejezetben olyan modellekkel foglalkozunk, amelyekben a munkák több műveletből állnak. Speciálisan shop ütemezési problémákat vizsgálunk.
Részletesebben2012. október 2 és 4. Dr. Vincze Szilvia
2012. október 2 és 4. Dr. Vincze Szilvia Tartalomjegyzék 1.) Az egyváltozós valós függvény fogalma, műveletek 2.) Zérushely, polinomok zérushelye 3.) Korlátosság 4.) Monotonitás 5.) Szélsőérték 6.) Konvex
RészletesebbenSzámelméleti alapfogalmak
1 Számelméleti alapfogalmak 1 Definíció Az a IN szám osztója a b IN számnak ha létezik c IN melyre a c = b Jelölése: a b 2 Példa a 0 bármely a számra teljesül, mivel c = 0 univerzálisan megfelel: a 0 =
RészletesebbenNagy Gábor compalg.inf.elte.hu/ nagy
Diszkrét matematika 3. estis képzés 2018. ősz 1. Diszkrét matematika 3. estis képzés 9. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
RészletesebbenFordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1
Fordító részei Kód visszafejtés. Izsó Tamás 2016. szeptember 29. Izsó Tamás Fordító részei / 1 Section 1 Fordító részei Izsó Tamás Fordító részei / 2 Irodalom Izsó Tamás Fordító részei / 3 Irodalom Izsó
Részletesebben8. Egyenletek, egyenlőtlenségek, egyenletrendszerek II.
8 Egyenletek, egyenlőtlenségek, egyenletrendszerek II Elméleti összefoglaló Az a + b+ c, a egyenletet másodfokú egyenletnek nevezzük A D b ac kifejezést az egyenlet diszkriminánsának nevezzük Ha D >, az
Részletesebben