From 2748a80fed28b471fd21c1e51d6a750fd9c78a2d Mon Sep 17 00:00:00 2001 From: Marco Ammon Date: Fri, 26 Jun 2020 10:58:38 +0200 Subject: [PATCH] Naiver Code-Generator --- verfahren.pdf | Bin 124163 -> 124961 bytes verfahren.tex | 12 +++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/verfahren.pdf b/verfahren.pdf index 44f5af58913ec45dc6f393582e7cdd4622a6e3ce..508d76df735c2cf8abba78c10f611558b3e7de1c 100644 GIT binary patch delta 25192 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 btc-m=V%q8+G#M&4J0AdrmKLNWh4Oy@eaePy delta 24321 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 diff --git a/verfahren.tex b/verfahren.tex index 64fb5c2..5e83712 100644 --- a/verfahren.tex +++ b/verfahren.tex @@ -226,8 +226,18 @@ \subsection{Mit Registerzuteilung} \subsubsection{Naiver Code-Generator} +\begin{itemize} + \item arbeitet auf minimalem Grundblöcken (einzelner Zwischencode-Befehl) + \item pro Befehl: + \begin{enumerate} + \item Da alle Variablen im Speicher liegen, Laden der Operanden in Register + \item Durchführung der Operation auf Registern + \item Rückschreiben des Ergebnisses in Speicher + \end{enumerate} + \item Optimierung: feste Zuteilung von Argumenten, Variablen und Zwischenergebnissen einer Funktion in Register (wenige Register müssen aber für Operationen frei bleiben) +\end{itemize} -\subsubsection{getreg} +\subsubsection{Einfacher Code-Generator mit \texttt{getreg}} \subsubsection{Sethi-Ullman-Algorithmus}