diff options
author | Camil Staps | 2016-09-13 17:31:18 +0200 |
---|---|---|
committer | Camil Staps | 2016-09-13 17:31:18 +0200 |
commit | 47c09b3d0a6009edd155b7e40456cbf694b6cbbe (patch) | |
tree | 91311d06435516364c0ec74583213d1beae770ea /plan/plan.tex | |
parent | Onderzoeksplan (diff) |
Verwerking opmerkingen John op onderzoeksplan
Diffstat (limited to 'plan/plan.tex')
-rw-r--r-- | plan/plan.tex | 61 |
1 files changed, 33 insertions, 28 deletions
diff --git a/plan/plan.tex b/plan/plan.tex index 76afd6b..0733691 100644 --- a/plan/plan.tex +++ b/plan/plan.tex @@ -21,46 +21,51 @@ \thispagestyle{empty} \subsection*{Onderzoeksvraag} -Welke verschillen bestaan er tussen de ARM en Thumb-2 -architecturen\footnote{ARM Limited. \emph{ARMv7-M Architecture Reference -Manual.} (2006--2010)} en wat voor invloed hebben deze verschillen op code -generators? +Wat voor invloed heeft + het gebruik van Thumb-2 technologie\footnote{ARM Limited. \emph{ARMv7-M Architecture Reference Manual.} (2006--2010)} + (afgezet tegen 32-bit ARM instructies) + op code generators, specifiek die voor functionele talen? \subsection*{Relevantie} -Codegeneratie voor simpele architecturen is interessant, om op een hoog -abstractieniveau kleine, relatief goedkope systemen te kunnen programmeren. In -het bijzonder wil ik kijken naar vertaling van ABC-\footnote{Pieter Koopman. -\emph{Functional Programs as Executable Specifications}. (Meppel: Krips Repro, -1990)} naar Thumb-2 machinecode, met als doel steeds simpelere systemen met een -functionele taal te kunnen programmeren. +Codegeneratie voor simpele architecturen is interessant + om op een hoog abstractieniveau + kleine, relatief goedkope systemen te kunnen programmeren. +De Cortex-M3 processor + die in bijvoorbeeld de Arduino Due\footnote{\url{https://www.arduino.cc/en/Main/ArduinoBoardDue}} zit + gebruikt de Thumb-2 technologie. -De Cortex-M3 processor die in bijvoorbeeld de Arduino -Due\footnote{\url{https://www.arduino.cc/en/Main/ArduinoBoardDue}} zit gebruikt -de Thumb-2 instructieset. Er zijn enkele Haskell-georienteerde projecten voor -Arduino\footnote{\url{https://wiki.haskell.org/Arduino}}, maar die gebruiken -een EDSL die naar C gecompileerd of door C ge\"{\i}nterpreteerd wordt, waardoor -de functionele kracht van Haskell verloren gaat. +In het bijzonder wil ik kijken naar vertaling + van ABC-\footnote{Pieter Koopman. \emph{Functional Programs as Executable Specifications}. (Meppel: Krips Repro, 1990)} + naar Thumb-2 machinecode, + met als doel steeds simpelere systemen met een functionele taal te kunnen programmeren. \subsection*{Verwachte resultaten} -De verwachting is uiteindelijk een lijst met verschillen tussen ARM en Thumb-2 -op te kunnen stellen. Per verschil zou aangegeven moeten worden: +De verwachting is uiteindelijk + een lijst met verschillen tussen ARM en Thumb-2 op te kunnen stellen. +Per verschil zou aangegeven moeten worden: \begin{description} \item[Impact] - Wat voor techniek kan \emph{wel} op ARM gebruikt worden, maar niet op - Thumb-2? + Wat voor techniek kan wel/niet op ARM gebruikt worden, maar niet/wel op Thumb-2? \item[Oplossing] - Hoe kan een bestaande ARM code generator aangepast worden om werkende - Thumb-2 code te genereren, gezien dit verschil? Hierbij zal ik voorbeelden - uit de Clean code - generator\footnote{\url{https://svn.cs.ru.nl/repos/clean-code-generator/trunk}, - i.h.b. \texttt{cgarm*}.} gebruiken. + Hoe kan een bestaande ARM code generator aangepast worden + om werkende Thumb-2 code te genereren, gezien dit verschil? + Hierbij zal ik voorbeelden uit + de Clean code generator\footnote{\url{https://svn.cs.ru.nl/repos/clean-code-generator/trunk}, i.h.b. \texttt{cgarm*}.} + gebruiken. \item[Vergelijking van complexiteit] - Wat is ongeveer het effect van de aanpassingen op de complexiteit van een - Clean-programma? Het gaat hier in eerste instantie niet om een volledige - berekening of compleet bewijs, maar een algemeen idee. + Wat is ongeveer het effect van de aanpassingen + op de complexiteit van een Clean-programma? + Het gaat hier in eerste instantie + niet om een volledige berekening of compleet bewijs, + maar een algemeen idee. + + Hier moet gekeken worden naar + tijd- en ruimtecomplexiteit (hopelijk niet significant langzamer/groter dan ARM), + maar ook naar de grootte van het programma: + de gegenereerde code zou voor Thumb-2 significant kleiner moeten zijn. \end{description} \subsection*{Strategie} |