Institut für Computersprachen
Programmiersprachen und Übersetzer
| Diplomarbeit | |
| Titel | Proper Tail Recursion in C |
| Autor | Probst, Mark |
| Erscheinungsjahr | 2001 |
| Inventardatum | 13.03.2001 |
| Abstract | Die Programmiersprache C wird erfolgreich als Zielsprache von Compilern für verschiedenste Programmiersprachen eingesetzt. Leider wird die Übersetzung funktionaler Sprachen wie Scheme und logischer Sprachen wie Prolog nach C erschwert, da C keine Proper Tail Calls zur Verfügung stellt. Proper Tail Calls sind Funktionsaufrufe, die den Stack Frame der aufrufenden Funktion für jeden der Aufgerufenen wiederverwenden. Viele höhere Programmiersprachen setzen voraus, dass alle Funktionsaufrufe als Proper Tail Calls implementiert werden. Diese Arbeit erklärt, warum die übliche Calling Convention Proper Tail Calls im allgemeinen Fall nicht unterstützen kann und präsentiert eine Calling Convention, die diese Eigenschaft hat, unter Beibehaltung aller Möglichkeiten von Funktionsaufrufen in ANSI-C, insbesondere Funktionen mit variabler Argumentzahl , ohne großen Aufwand zu verursachen. Auf RISC Maschinen ergibt sich in manchen Situationen sogar ein Geschwindigkeitszuwachs. Es wird eine Implementierung dieser Calling Convention für die Alpha und die i386 Architekturen in der GNU Compiler Collection (GCC) beschrieben und der generierte code im Detail analysiert. Weiters werden die Probleme bei der Implementierung dieser Calling Convention für die SPARC beschrieben und deren Lösungen skizziert. |
| Status | Verfügbar |