Search results for "Haskell"
showing 9 items of 9 documents
Persistent software transactional memory in Haskell
2021
Emerging persistent memory in commodity hardware allows byte-granular accesses to persistent state at memory speeds. However, to prevent inconsistent state in persistent memory due to unexpected system failures, different write-semantics are required compared to volatile memory. Transaction-based library solutions for persistent memory facilitate the atomic modification of persistent data in languages where memory is explicitly managed by the programmer, such as C/C++. For languages that provide extended capabilities like automatic memory management, a more native integration into the language is needed to maintain the high level of memory abstraction. It is shown in this paper how persiste…
Towards CNC Programming Using Haskell
2004
Recent advances in Computerized Numeric Control (CNC) have allowed the manufacturing of products with high quality standards. Since CNC programs consist of a series of assembler-like instructions, several high-level languages (e.g., AutoLISP, APL, OMAC) have been proposed to raise the programming abstraction level. Unfortunately, the lack of a clean semantics prevents the development of formal tools for the analysis and manipulation of programs. In this work, we propose the use of Haskell for CNC programming. The declarative nature of Haskell provides an excellent basis to develop program analysis and manipulation tools and, most importantly, to formally prove their correctness.
Linssit ohjelmoinnissa
2016
Ohjelmoinnissa on usein tilanteita, joissa kaksi toisiinsa yhteyksissä olevaa rakennetta on sidoksissa toisiinsa niin, että muutokset yhteen rakenteeseen heijastuvat asianmukaisesti myös toiseen rakenteeseen. Tässä tutkielmassa käsitellään datamallien välistä transformointia kaksisuuntaisten transformaatioiden näkökulmasta. Tekstissä käydään läpi erityisen tarkasti eräs kaksisuuntainen transformaatio, nimeltään linssit, ja tutkitaan linssien rakenteita ja ominaisuuksia. Linssien yhteydessä käydään läpi alunperin relaatiotietokannoista tullut termi näkymänpäivitysongelma, joka on yleistettävissä datamallien välisiin transformaatioihin. Linssit ovat vielä tällä hetkellä melko harvinaisia ohje…
Toistorakenteet C#:ssa ja Haskellissa
2017
Tutkielmassa vertaillaan funktionaalista ja imperatiivista ohjelmointiparadigmaa toistorakenteiden osalta. Vertailussa tarkastellaan Jyväskylän yliopiston ohjelmointikursseilla käsiteltäviä C#– ja Haskell–ohjelmointikieliä, jotka edustavat merkittävästi erilaisia suunnitteluperiaatteita ja määrittelevät ensisijaiset toistorakenteensaeri lähtökohdista käsin. Eroavaisuuksien ja aiemman tutkimustiedon perusteella jäsennetään, miksi funktionaalisen paradigman omaksuminen tuottaa vaikeuksia imperatiiviseen ohjelmointitapaan totuttautuneille ohjelmoijille. Imperative and functional programming languages implement repetition from different standpoints. This thesis compares two drastically differen…
Sound and reusable components for abstract interpretation
2019
Abstract interpretation is a methodology for defining sound static analysis. Yet, building sound static analyses for modern programming languages is difficult, because these static analyses need to combine sophisticated abstractions for values, environments, stores, etc. However, static analyses often tightly couple these abstractions in the implementation, which not only complicates the implementation, but also makes it hard to decide which parts of the analyses can be proven sound independently from each other. Furthermore, this coupling makes it hard to combine soundness lemmas for parts of the analysis to a soundness proof of the complete analysis. To solve this problem, we propose to c…
Haskellin käyttö web-palvelinohjelmoinnissa
2018
Funktio-ohjelmointia ei tavallisesti juurikaan käytetä web-kehityksessä. Tässä tutkielmassa selvitetään, olisiko Haskell-nimisestä funktio-ohjelmointikielestä kuitenkin hyötyä web-palvelinohjelmoinnissa. Tutkimuskysymyksenä on "Miten Haskellia voi hyödyntää web-palvelinohjelmoinnissa" ja tutkimusmenetelmänä on kirjallisuuskatsaus. Tuloksena saadaan, että Haskellilla ohjelmoitujen web-palvelinten etuja ovat erityisesti nopeus ja pieni koko. Functional programming isn't normally used much in web development. In this thesis we investigate whether Haskell, a functional programming language, could nonetheless be useful in web server programming. The research problem is ''How can Haskell be utili…
Opiskelijoiden suurimmat haasteet Haskell-ohjelmointikielen tyyppijärjestelmän kanssa
2018
Haskell-ohjelmointikielellä opetettavalla funktio-ohjelmoinnin johdatuskurssilla oppilaat kohtaavat useita haasteita. Näistä yleisimmät liittyvät usein kielen syntaksiin tai tyyppijärjestelmään. Tämä tutkielma keskittyy oppilaiden haasteisiin Haskellin tyyppijärjestelmän kanssa laajentaen aiempaa tutkimusta tyyppeihin liittyvistä haasteista. Tavoitteena on tunnistaa oppilaiden yleisimmät virheet, haasteet ja väärinkäsitykset tyyppeihin liittyen analysoimalla automaattitehtävistä kerättyä aineistoa. Analyysi keskittyy tyyppien ymmärrystä testaaviin tehtäviin, joista saatavien havaintojen pohjalta opetusta voidaan keskittää haasteellisimpiin tyyppijärjestelmän osa-alueisiin. Students face man…
Regularisaatio vahvojen gravitaatiolinssien inversiossa
2015
Massiivisten galaksien gravitaatio aiheuttaa vääristymän teleskoopilla havaittavaan kuvaan muuttamalla galaksin takaa saapuvan valon reittiä. Niin kutsu- tuissa vahvoissa gravitaatiolinsseissä voi linssinä toimiva galaksi tuottaa kuvaan sen takana olevasta galaksista useita näyttäviä kaaria. Linssinä toimineen galaksin massa ja linssiytyneen galaksin alkuperäinen muoto voidaan tällöin laskennallisesti selvit- tää, ja näin saada tietoa linssigalaksin massan ja teleskoopilla suoraan havaitun valon määrän suhteesta. Tämän lähtökohtaisesti huonosti määritellyn inversio-ongelman laskennallinen ratkaiseminen vaatii kuitenkin ongelman uudelleenmäärittelyä eli regularisaatiota. Ongelman ratkaisemis…
Understanding beginners' mistakes with Haskell
2015
AbstractThis article presents an overview of student difficulties in an introductory functional programming (FP) course taught in Haskell. The motivation for this study stems from our belief that many student difficulties can be alleviated by understanding the underlying causes of errors and by modifying the educational approach and, possibly, the teaching language accordingly. We analyze students' exercise submissions and categorize student errors according to compiler error messages and then manually according to the observed underlying cause. Our study complements earlier studies on the topic by applying computer and manual analysis while focusing on providing descriptive statistics of d…