Metaprogramarea reprezintă scrierea de programe care scriu sau manipulează alte programe (sau chiar pe ele însele). Termenul se poate referi și la programe care fac în faza de compilare o parte din operațiile făcute în mod normal la rulare.