Sethi-Ullman-Algorithmus
This commit is contained in:
		
							parent
							
								
									16f83b0f0f
								
							
						
					
					
						commit
						0b075d38d7
					
				
							
								
								
									
										
											BIN
										
									
								
								verfahren.pdf
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								verfahren.pdf
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -270,6 +270,27 @@ | ||||
| \end{itemize} | ||||
| 
 | ||||
| \subsubsection{Sethi-Ullman-Algorithmus} | ||||
| \begin{enumerate} | ||||
| 	\item Baue DAG-Repräsentation von Befehlen, Variablen und Zwischenergebnissen auf | ||||
| 	\item Wandle DAG durch Herausschneiden gemeinsamer Teilausdrücke in Wald um | ||||
| 	\item Bestimme Ershov-Zahl $r$ (Anzahl der für Auswertung benötigten Register) rekursiv für jeden Teilbaum (vertausche Operanden bei kommutativen Operationen so dass möglichst viele Variablen direkt aus Speicher gelesen werden können):\\ | ||||
| 	\begin{align*} | ||||
| 	r(t_1\, \texttt{op}\, t_2) &= \begin{cases*} | ||||
| 		r(t_1) + 1 & falls $r(t_1) = r(t_2)$\\ | ||||
| 		\max(r(t_1), r(t_2)) & sonst | ||||
| 	\end{cases*}\\ | ||||
| 	r(v) &= \begin{cases*} | ||||
| 		1 & falls linker Operand\\ | ||||
| 		0 & falls rechter Operand | ||||
| 	\end{cases*} | ||||
| 	\end{align*} | ||||
| 	\item Code-Erzeugung und Mitführung eines Stapels unbenutzter Register:\begin{enumerate} | ||||
| 		\item Rekursives Traversieren des Ausdrucksbaums | ||||
| 		\item Besuchen der Kinder nach absteigendem Registerbedarf | ||||
| 		\item Generierung des Befehls für aktuellen Ausdruck | ||||
| 	\end{enumerate} | ||||
| 	\item Auftrennung des Baumes, wenn Teilbäume mehr Register als verfügbar benötigen $\rightarrow$ Teilbaum vor Auswertung des übrigen Baums im Speicher auswerten | ||||
| \end{enumerate} | ||||
| 
 | ||||
| \subsection{Ohne Registerzuteilung} | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Marco Ammon
						Marco Ammon