Partialevaluering : Specialisering av program  Utformning av en laboration

Partialevaluering av program är ett intressant ämne både för att optimera programmen men även för möjligheterna att kompilera program med en interpretator. Denna rapport beskriver hur laborationerna i kursen Data och Programstrukturer på Linköpings Universitet, som är helt baserad på Abelson &am...

Full description

Bibliographic Details
Main Author: Binggeli, Alexander
Format: Others
Language:Swedish
Published: Linköpings universitet, Institutionen för datavetenskap 2012
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-73907
id ndltd-UPSALLA1-oai-DiVA.org-liu-73907
record_format oai_dc
spelling ndltd-UPSALLA1-oai-DiVA.org-liu-739072018-01-13T05:15:36ZPartialevaluering : Specialisering av program  Utformning av en laborationsweBinggeli, AlexanderLinköpings universitet, Institutionen för datavetenskapLinköpings universitet, Tekniska högskolan2012PartialevalueringLaborationsunderlagComputer SciencesDatavetenskap (datalogi)Partialevaluering av program är ett intressant ämne både för att optimera programmen men även för möjligheterna att kompilera program med en interpretator. Denna rapport beskriver hur laborationerna i kursen Data och Programstrukturer på Linköpings Universitet, som är helt baserad på Abelson & Sussmans bok Structure and Interpretation of Computer Programs kan utökas så att den även går igenom partialevaluering. Som grund i laborationsunderlaget ligger en enkel partialevaluator för en delmängd av det funktionella språket Scheme som utvecklas för underlaget. Rapporten består i huvudsak av tre delar, i början introduceras läsaren till partialevaluering. Vi förklarar hur man av ett generellt program och viss känd information vill skapa ett nytt specialiserat program. Två vanliga metoder att göra partialevaluering på beskrivs men i första hand fokuserar rapporten på den metod som implementerats, nämligen offline metoden. Specialisering av ett program med en offline partialevaluator börjar med en analys av programmet som sedan specialiseras. Vi går igenom varje steg i analysen och specialiseringen innan implementationen introduceras. I den andra delen av rapporten tittar vi närmre på den implementation som kommer användas I laborationsuppgifterna. Genom att beskriva språket som specialiseras och titta på kod för de funktioner som är intressanta förklaras hur partialevaluatorn fungerar. Tillslut presenteras fem förslag på uppgifter kring några ämnen och problem som passar I laborationskursen. Uppgifterna försöker följa en liknande ordning som tidigare uppgifter i kursen. Vi börjar med en uppgift där man testar partialevaluatorn och undersöker resultatet av specialisering. Sedan följer tre uppgifter som tittar på hur funktionaliteten i partialevaluatorn kan utökas. Den sista uppgiften fokuserar på hur man kan kompilera ett mönster till en mönstermatchare med en partialevaluator. Student thesisinfo:eu-repo/semantics/bachelorThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-73907application/pdfinfo:eu-repo/semantics/openAccess
collection NDLTD
language Swedish
format Others
sources NDLTD
topic Partialevaluering
Laborationsunderlag
Computer Sciences
Datavetenskap (datalogi)
spellingShingle Partialevaluering
Laborationsunderlag
Computer Sciences
Datavetenskap (datalogi)
Binggeli, Alexander
Partialevaluering : Specialisering av program  Utformning av en laboration
description Partialevaluering av program är ett intressant ämne både för att optimera programmen men även för möjligheterna att kompilera program med en interpretator. Denna rapport beskriver hur laborationerna i kursen Data och Programstrukturer på Linköpings Universitet, som är helt baserad på Abelson & Sussmans bok Structure and Interpretation of Computer Programs kan utökas så att den även går igenom partialevaluering. Som grund i laborationsunderlaget ligger en enkel partialevaluator för en delmängd av det funktionella språket Scheme som utvecklas för underlaget. Rapporten består i huvudsak av tre delar, i början introduceras läsaren till partialevaluering. Vi förklarar hur man av ett generellt program och viss känd information vill skapa ett nytt specialiserat program. Två vanliga metoder att göra partialevaluering på beskrivs men i första hand fokuserar rapporten på den metod som implementerats, nämligen offline metoden. Specialisering av ett program med en offline partialevaluator börjar med en analys av programmet som sedan specialiseras. Vi går igenom varje steg i analysen och specialiseringen innan implementationen introduceras. I den andra delen av rapporten tittar vi närmre på den implementation som kommer användas I laborationsuppgifterna. Genom att beskriva språket som specialiseras och titta på kod för de funktioner som är intressanta förklaras hur partialevaluatorn fungerar. Tillslut presenteras fem förslag på uppgifter kring några ämnen och problem som passar I laborationskursen. Uppgifterna försöker följa en liknande ordning som tidigare uppgifter i kursen. Vi börjar med en uppgift där man testar partialevaluatorn och undersöker resultatet av specialisering. Sedan följer tre uppgifter som tittar på hur funktionaliteten i partialevaluatorn kan utökas. Den sista uppgiften fokuserar på hur man kan kompilera ett mönster till en mönstermatchare med en partialevaluator.
author Binggeli, Alexander
author_facet Binggeli, Alexander
author_sort Binggeli, Alexander
title Partialevaluering : Specialisering av program  Utformning av en laboration
title_short Partialevaluering : Specialisering av program  Utformning av en laboration
title_full Partialevaluering : Specialisering av program  Utformning av en laboration
title_fullStr Partialevaluering : Specialisering av program  Utformning av en laboration
title_full_unstemmed Partialevaluering : Specialisering av program  Utformning av en laboration
title_sort partialevaluering : specialisering av program  utformning av en laboration
publisher Linköpings universitet, Institutionen för datavetenskap
publishDate 2012
url http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-73907
work_keys_str_mv AT binggelialexander partialevalueringspecialiseringavprogramutformningavenlaboration
_version_ 1718608480948977664