Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Template Meta-Programmierung (oder ähnliches) in Delphi (https://www.delphipraxis.net/10625-template-meta-programmierung-oder-aehnliches-delphi.html)

frankg 22. Okt 2003 12:14


Template Meta-Programmierung (oder ähnliches) in Delphi
 
Hallo Leute!

Heute habe ich mal eine Frage, ob es so etwas, wie Template Meta-Programmierung (oder irgendwas ähnliches auch unter Delphi) gibt. Sicherlich wird jetzt der eine oder andere sagen "Wozu denn Template Meta-Programmierung? Das ist doch totaler Quatsch und wird unter C++ nur in einigen wenigen, akademischen Beispielen genutzt!". Das was bisher auch meine Ansicht, bis ich ein Kapitel im Buch Game Programming Gems, w. CD-ROM (http://www.amazon.de/exec/obidos/ASI...006251-6105313) gelesen habe. Dort verwenden sie Template Meta-Programmierung, um das in der Spieleprogrammierung allseits beliebte Problem der Sin/Cos Funktionen in den Griff zu bekommen. Das Problem ist ja, dass man, wenn man ein Spiel programmiert ziemlich auf Geschwindigkeit angewiesen ist, daher sind langwierige Berechungen von Sin/Cos Funktionen nicht unbedingt empfehlenswert. Oft sieht man, dass sin/cos-Tabellen verwendet werden. Das Buch beschreitet aber einen anderen Ansatz: Hier wird per Template-Meta-Programmierung im Prinzip die Taylor-Reihe für die sin-Funktion als "Markro" abgelegt, d.h. Ausdrücke wie z.B. x := sin(0.5) werden zur Compilierzeit berechnet, so dass im fertigen Programm dann im Prinzip an Stelle von x := sin (0.5) nur noch die Wertzuweisung steht. Das hat den Nachteil, dass das Programm länger compiliert (klar, müssen ja jede Menge Sinüsse berechnet werden ;-)), im Endeffekt läuft das Programm dann aber zur Ausführungszeit schneller, weil Berechnungen durch Wertzuweisungen ersetzt wurden.
So lange Rede kurzer Sinn - geht so etwas unter Delphi auch (also im Prinzip ein Markro, dass zur Compilierzeit abgearbeitet wird).

Viele Grüsse

Frank :coder:

Christian Seehase 22. Okt 2003 12:51

Re: Template Meta-Programmierung (oder ähnliches) in Delphi
 
Moin Frank,

standardmässig geht das in Delphi nicht, aber es gibt durchaus Makroerweiterungen von Drittanbietern. Gesehen habe ich das schon.
Ich habe dazu allerdings leider weder einen Namen, noch einen Link o.ä. zur Hand.

Man müsste sich dazu in die IDE einklinken (via Open Tools API), und vor dem Aufruf des Compilers für die Makroauflösung sorgen.
Technisch sollte das lösbar sein, nur kenne ich mich mit der OTA nicht so sonderlich gut aus, um entsprechend etwas einbinden zu können :?

Robert Marquardt 22. Okt 2003 13:44

Re: Template Meta-Programmierung (oder ähnliches) in Delphi
 
Na da faellt einem CodeRush ein. Wie die sich in die IDE einklinken geht auf keine Kuhhaut.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz