= %s", fact_9));
Domieszkowanie tekstu w połączeniu z funkcjami wykonywanymi w trakcie kompilacji pozwala na dynamiczne generowanie kodu D podczas kompilowania programu. Może to być wykorzystane do parsowania języków dziedzinowych do kodu D, który następnie jest włączany jako część powstającego programu D.
import FooToD; // hipotetyczny moduł z funkcją tłumaczącą język Foo na D
void main() { mixin(fooToD(import("example.foo"))); }
Zarządzanie pamięcią Choć D jest kompilowany do kodu maszynowego, zarządzanie pamięcią domyślnie odbywa się za pośrednictwem odśmiecacza pamięci, identycznie jak w językach interpretowanych. Część obiektów może być usuwana natychmiast po znalezieniu się poza zasięgiem. Pomimo tego, programista ma pełną kontrolę nad całym procesem. Dozwolone jest ręczne alokowanie i zwalnianie pamięci poprzez przeciążone operatory new oraz delete lub poprzez zwyczajne wywołanie funkcji malloc() oraz free() z biblioteki standardowej C. Możliwe jest zmienianie zakresów pamięci obserwowanych przez odśmiecacz, wstrzymywanie i wznawianie jego pracy, a także wymuszanie wykonania ogólnego lub pełnego czyszczenia.