summaryrefslogtreecommitdiff
path: root/plan
diff options
context:
space:
mode:
authorCamil Staps2016-09-13 17:31:18 +0200
committerCamil Staps2016-09-13 17:31:18 +0200
commit47c09b3d0a6009edd155b7e40456cbf694b6cbbe (patch)
tree91311d06435516364c0ec74583213d1beae770ea /plan
parentOnderzoeksplan (diff)
Verwerking opmerkingen John op onderzoeksplan
Diffstat (limited to 'plan')
-rw-r--r--plan/plan.tex61
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}