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...
Main Author: | |
---|---|
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 |