“本書為我們作了一個對產(chǎn)生式編程的精彩介紹,它注定會成為一部經(jīng)典之作。作者精心講述了領(lǐng)域特定語言和產(chǎn)生式編程之間通常為人所忽視的聯(lián)系,并把這種聯(lián)系作為未來開發(fā)的一個推動因素。廣大的開發(fā)人員完全可以把書中豐富而且實用的方法當(dāng)做可以立即應(yīng)用的首要步驟……而且,無論是使用現(xiàn)存系統(tǒng),還是為正在出現(xiàn)的新產(chǎn)生式技術(shù)而做準(zhǔn)備,它們都是價值不凡的。” ——CharlesSimonvi,微軟研究院總構(gòu)架師、意圖編程的發(fā)明者 “本書圍繞‘統(tǒng)一那些本來支離破碎的東西’這個原則,逐步展開了一些令人印象深刻的主題,主要包括領(lǐng)域工程和元程序設(shè)計。關(guān)鍵是要理解,本書并不是某種新穎的變換,也不僅僅是對某些值得關(guān)注的邊角技術(shù)的闡述:它是一種更加廣泛的啟蒙運動的先鋒官,這種運動打開了一扇通向一個新時代的大門?!?——摘自由IamesCoplien所作的前言,Coplien是朗訊貝爾實驗室中一位聲名卓著的技術(shù)專家 產(chǎn)生式編程(Generative Programming,GP)為應(yīng)用程序開發(fā)人員提出了十分美妙的承諾。它使“從‘一種一個’的軟件系統(tǒng)向自動制作軟件的各不相同的變體發(fā)展”這種思路變得十分真實可信。簡單地說,GP以“確定軟件開發(fā)中自動化的好處”為中心。本書包括了將幫助你設(shè)計和實現(xiàn)一個系統(tǒng)族的“正確”組件,以及自動組合組件的方法和工具。這里提出的方法可以應(yīng)用到所有的商用開發(fā)中——從類和過程的層次上的“微觀編程”(programming in the small),到“宏觀編程”(programming in the large),就是說開發(fā)大型系統(tǒng)的家族。本書是對這種正在浮現(xiàn)的規(guī)程的完整指導(dǎo)和參考。它提供了對以下這些關(guān)鍵技術(shù)和主題的深入探討: ●領(lǐng)域工程 ●特征建模 ●泛型編程 ●面向方面的編程 ●使用C++的模板元程序設(shè)計 ●產(chǎn)生器 ●微軟的意圖編程 使用本書你將會學(xué)習(xí)到如何組合這些技術(shù),以及(也是更加重要的)如何在實踐中運用它們。書中包括來自三個不同領(lǐng)域的完整的案例研究:程序設(shè)計領(lǐng)域(容器數(shù)據(jù)結(jié)構(gòu))、業(yè)務(wù)領(lǐng)域(銀行業(yè)務(wù))以及科學(xué)計算(矩陣計算)。Krzysztof Czarnecki是德國烏爾姆Daimler Chrysler研究和技術(shù)中心的一位研究員和顧問。他在對華盛頓Redmond的施樂Palo Alto研究中心和微軟研究中心進行訪問研究期間,取得了面向方面編程和意圖編程的第一手經(jīng)驗。他在薩克拉門托的加利福尼亞州立大學(xué)獲得了計算機科學(xué)的學(xué)士學(xué)位,在德國的Ilmenau大學(xué)獲得了計算機科學(xué)的碩士學(xué)位和博士學(xué)位。 Ulrich W.Eisenecker是Zweibrucken的凱澤斯勞滕應(yīng)用科學(xué)大學(xué)的一位計算機科學(xué)教授,在那里他主管組件和窗口接口部門。在大學(xué)職業(yè)生涯以前,他在工業(yè)界度過了大約十年時間。他是德國,下雜志《OBJEKTspektrum》的一種組件軟件專輯增刊的編輯,他還為之撰寫了一個C++專欄。他已經(jīng)發(fā)表了一百多篇文章,并且經(jīng)常在國內(nèi)和國際肝會議上講演。
作者簡介
KRZYSZTOF CZARNECKI是德國烏爾姆DAIMLERCHRYSLER研究和技術(shù)中心的一位研究員和顧問。他在對華盛頓REDMOND的施樂PALO ALTO研究中心和微軟研究中心進行訪問研究期間,取得了面向方面編輯和意圖編輯的第一手經(jīng)驗。他在薩克拉門托的加利福尼亞州立大學(xué)獲得了計算機科學(xué)的學(xué)士學(xué)位,在德國的LLMENAU大學(xué)獲得了計算機科學(xué)的碩士學(xué)位和博士學(xué)位。ULRICH W·EISENECKER是ZWEIBRUCKEN的凱澤斯勞滕應(yīng)用科學(xué)大學(xué)的一位計算機科學(xué)教授,在那里他主管組件和窗口接口部門。在大學(xué)職業(yè)生涯以前,他在工業(yè)界度過了大約十年時間。他是德國IT雜志《OBJEKTSPEKTRUM》的一種組件軟件專輯增刊的編輯,他還為之撰寫了一個C++專欄。他已經(jīng)發(fā)表了一百多篇文章,并且經(jīng)常在國內(nèi)和國際IT會議上講演。