Browsing by Author "Apinis, Kalmer, juhendaja"
Now showing 1 - 8 of 8
- Results Per Page
- Sort Options
Item Efektisüsteemide õpetamine Haskellis(Tartu Ülikool, 2021) Kallaste, Peter; Apinis, Kalmer, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutKäesolevas bakalaureusetöös loodi õppematerjalid Haskelli efektisüsteemide kohta. Selle töö käigus vaadeldi nelja erinevat efektisüsteemi (freer-simple, fused-effects, polysemy ja effet) ja nende seast valiti üks, mille kohta moodustati õppematerjalid. Võrdluse käigus valiti välja fused-effects teek ja moodustati sellest õppematerjale. Sellega seoses räägiti efektide kasutamisest funktsioonides ja õpetati neid käivitama programmides. Veel näidati uute efektide loomist, et tekkis arusaam efektisüsteemide kasulikkusest. Õppematerjali näidete juurde koostati ülesanded, mille läbimisel tudeng peaks oskama kirjutada lihtsaid efekte kasutatavaid meetodeid ja rakendada neid oma projektides.Item Funktsionaalprogrammeerimise õpetamine Idrises(Tartu Ülikool, 2021) Holter, Karoliine; Apinis, Kalmer, juhendaja; Vojdani, Vesal, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutViimase kümne aasta jooksul on funktsionaalprogrammeerimine palju arenenud ja edasi liikunud. Bakalaureusetöö eesmärk on uurida, kas sõltuvate tüüpidega keel Idris on sobilik keel bakalaureuseastmes klassikaliste ja tänapäevaste funktsionaalprogrammeerimise teemade õpetamiseks. Selleks kohandati Haskelli baasil eelkõige klassikalist funktsionaalprogrammeerimist õpetava kursuse „Programmeerimiskeeled“ praktikumiülesanded Idrisesse ning uuriti, milliseid uusi teemasid saab Idrise kasutusele võtmisega kursuse kavva lisaks võtta. Töös tutvustatakse Haskelli ja Idrise põhilisi erinevusi „Programmeerimiskeelte“ aines käsitletud teemade ulatuses ning sõltuvate tüüpidega programmeerimist Idrises. Töö põhjal jõuti järeldusele, et Idris on sobilik keel bakalaureuseastmes funktsionaalprogrammeerimise õpetamiseks.Item Java baitkoodi sünkroniseerimise analüüs raamistikus Põder(Tartu Ülikool, 2020) Mullari, Halliki; Apinis, Kalmer, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutComplex applications demand more and more performance from computers. One way to add performance is to add more cores to the processor. To utilize those added cores, the use of multithreading in programs is needed. However, multithreading adds additional complexity to programs and one problem that arises with multithreading is data races. Data races can be discovered with static analysis. The aim of this thesis is to add a module to the Põder framework that analyses Java bytecode synchronization and that could rule out the presence of data races. The result of the analysis produces a report that states if it could rule out data races. If not it brings to attention the variables that could have data races and to points out from where they were accessed and which monitors were guarding them at that time. With this information it is possible to fix synchronization flaws so that data races can be eliminated.Item Modulaarne staatiline programmianalüüs(Tartu Ülikool, 2021) Mägi, Karl Marten; Apinis, Kalmer, juhendaja; Vojdani, Vesal, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutStaatiline programmianalüüs on viis uurida programmi käitumist ja omadusi. Modulaarne analüüs viitab programmi osade eraldi analüüsimisele ja saadud tulemuste kombineerimisele. See aitab mahukate analüüside korral aega säästa, sest on võimalik tükeldatud analüüsi osi taaskasutada. Töö käigus antakse eestikeelne ülevaade modulaarsest analüüsist, selle impleementatsioonist programmianalüüsi raamistikus Põder ning täiendatakse raamistiku Põder. Esmalt parandati vigu, mis tekkisid tulemuste laadimisel. Lisati laetavate tulemuste verifitseerimine, et nendes saaks kindlam olla, ning versioonihaldus, et oleks võimalik ohutult laadida tulemusi kasutaja arvuti välistest allikatest. Tulemusena on raamistik Põder kasutajale mugavam ja tulemuste salvestamine ning laadimine on töökindlam.Item Push-relabel algoritmi formaalne tõestamine Coq raamistikus(Tartu Ülikool, 2024) Õim, Aksel; Apinis, Kalmer, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutThe push-relabel algorithm calculates the maximum flow in a flow network by giving nodes height and excess values. The algorithm tries to send the excess from the nodes to the sink by continually changing the height of the nodes and preserving three different invariants. The main goal of this bachelor's thesis is to formally prove the push-relabel algorithm in Coq by giving an overview of the implementation of the algorithm and proven lemmas. The main focus is on the proof to the algorithm, but an overview of Coq and graph definitions will be given along with a description of the push-relabel algorithm.Item Scala 3 jõudlustestimine(Tartu Ülikool, 2023) Rauba, Brandon; Apinis, Kalmer, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutHigh-level programming languages bring along numerous possibilities for structuring code. When using a new language or exploring a new abstraction feature within a language there may be doubts about the functions making the code slower. This bachelor’s thesis controls if Scala 3 abstraction features are slow or not. During the work process there will be written tests that can be used to compare to older functions. Tests results will be converted on graphs to make a decision which function to use. In the end the results will be summarised and the answer to the question if Scala 3 new updates are slower or faster will be answered.Item Veebirakendus funktsionaalprogrammeerimise ja -keele Idris õppimiseks(Tartu Ülikool, 2022) Markus, Maarika; Apinis, Kalmer, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutUute programmeerimiskeelte ja paradigmade õppimisel on oluline harjutamine. Kursuses „Funktsionaalprogrammeerimine“ kasutatud keele Idris õppimiseks on keeruline leida tasuta veebimaterjale, et iseseisvalt teemaga tutvuda. Bakalaureusetöö eesmärk on luua keskkond, mis võimaldab lihtsustada funktsionaalse programeerimise ja keele Idrise õppimisega alustamist. Töös antakse ülevaade funktsionaalse programmeerimise paradigmast ja keelest Idris, tutvustatakse rakenduse loomise võimalusi, kasutatud tehnoloogiat ning valminud veebirakendust.Item Võrrandi lahendamine kombineeritud laiendamise ja kitsendamise abil Coqis(Tartu Ülikool, 2024) Sammul, Kadi; Apinis, Kalmer, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutIn program analysis constraint solving via sets of values is time-consuming and needs a lot of memory. Therefore, it is wiser to use widening. Widening makes analysis inaccurate - to restore accuracy narrowing can be used. Using combined widening and narrowing we create an algorithm in Coq, where in addition to finding a solution we guarantee the termination of the analysis.