元編程

元編程 （ 英語 ： Metaprogramming ） ， 又譯超編程 ， 是指某類計算機程序的編寫 ， 這類計算機程序編寫或者操縱其它程序 （ 或者自身 ） 作爲它們的資料 ， 或者在編譯時完成部分本應在運行時完成的工作 。 多數情況下 ， 與手工編寫全部代碼相比 ， 程序員可以獲得更高的工作效率 ， 或者給與程序更大的靈活度去處理新的情形而無需重新編譯 。 編寫元程序的語言稱之爲元語言 。 被操縱的程序的語言稱之爲 「 目標語言 」 。 一門編程語言同時也是自身的元語言的能力稱之爲 「 反射 」 或者 「 自反 」 。 反射是促進元編程的一種很有價值的語言特性 。 把編程語言自身作爲一級資料類型 （ 如LISP 、 Forth或Rebol ） 也很有用 。 支持泛型編程的語言也使用元編程能力 。 元編程通常通過兩種方式實現 。 一種是通過應用程序編程接口 （ APIs ） 將運行時引擎的內部信息暴露於編程代碼 。 另一種是動態執行包含編程命令的字符串表達式 。 因此 ， “ 程序能夠編寫程序 ” 。 雖然兩種方式都能用於同一種語言 ， 但大多數語言趨向於偏向其中一種 。