Atitit 編程范式之道?attilax著 艾龍 著
?
1. 編程范式與編程語言的關(guān)系是什么? 1
2. LOP??面向語言編程(LOP, Language Oriented Programming) 2
3. OOP 2
4. AOP 2
5. Fp 函數(shù)式編程 2
6. 命令式??Imperative? 2
7. 其他 2
7.1. 泛型式、 2
7.2. 產(chǎn)生式編程(Generative Programming)?自動生成源代碼的編程也屬于另一種編程范式 2
7.3. 過程化(命令式)編程? 3
7.4. 事件驅(qū)動編程??]響應式編程范式-- 3
7.5. 4個常用的編程范式:泛型式、元編程、切面式和事件驅(qū)動式。 3
8. 元編程??原來元編程就是編寫能自動生成源代碼的程序。" 3
8.1. 通過向?qū)А⑼戏趴丶确绞阶詣由稍创a 3
8.2. 產(chǎn)生式編程(Generative Programming?區(qū)別 3
8.3. 許多腳本語言都提供eval函數(shù),可以在運行時將字符串作為表達式來運算[4]。 4
9. 參考資料 4
9.1. 編程范式,程序員的編程世界觀 -- 簡明現(xiàn)代魔法.html 4
9.2. 3.2 超級范式--提升語言的級別(2) - 51CTO.COM.mhtml 4
9.3. 編程范式思考問題 - huangshanchun的專欄 - CSDN博客.mhtml 4
?
?
?
?
1.?編程范式與編程語言的關(guān)系是什么?
如果把一門編程語言比作兵器,它的語法、工具和技巧等是招法,它采用的編程范式則是心法。
抽象的編程范式須要通過具體的編程語言來體現(xiàn)。范式的世界觀體現(xiàn)在語言的核心概念中,范式的方法論體現(xiàn)在語言的表達機制中。一種語言的語法和風格與其所支持的編程范式密切相關(guān)。
?
2.?LOP??面向語言編程(LOP, Language Oriented Programming)
有人認為LOP是繼OOP之后的下一個重要的編程范式,我們不妨拭目以待。" 句號整理了一下頭緒:"能不能這么說:如果處理一些復雜、非標準格式的文檔,可以考慮用元...
?
語言導向式編程(LOP)通過創(chuàng)建一套專用語言DSL來編寫程序。相比通用語言,DSL更簡單、更抽象、更專業(yè)、更接近自然語言和聲明式語言、開發(fā)效率更高,同時有助于專業(yè)程序員與業(yè)務分析員之間的合作。
語言導向式編程一般通過元編程將專用語言轉(zhuǎn)化為通用語言。
?
?
3.?OOP4.?AOP5.?Fp 函數(shù)式編程6.?命令式??Imperative?7.?其他7.1.?泛型式、7.2.?產(chǎn)生式編程(Generative Programming)?自動生成源代碼的編程也屬于另一種編程范式
--產(chǎn)生式編程(Generative Programming)[3]的范疇
?
7.3.?過程化(命令式)編程?7.4.?事件驅(qū)動編程??]響應式編程范式--7.5.?4個常用的編程范式:泛型式、元編程、切面式和事件驅(qū)動式。
?
8.?元編程??原來元編程就是編寫能自動生成源代碼的程序。"
?
8.1.?通過向?qū)А⑼戏趴丶确绞阶詣由稍创a
元編程的例子比比皆是:許多IDE如Visual Studio、Delphi、Eclipse等均能通過向?qū)?、拖放控件等方式自動生成源碼;UML建模工具將類圖轉(zhuǎn)換為代碼;Servlet引擎將JSP轉(zhuǎn)換為Java代碼;包括Spring、Hibernate、XDoclet在內(nèi)的許多框架和工具都能從配置文件、annotation/attribute等中產(chǎn)生代碼。"
8.2.?產(chǎn)生式編程(Generative Programming?區(qū)別
也不盡然。"冒號馬上修正道,"自動生成源代碼的編程也屬于另一種編程范式--產(chǎn)生式編程(Generative Programming)[3]的范疇。區(qū)別在于后者更看重代碼的生成,而元編程看重的是生成代碼的可執(zhí)行性。另外,除了在編譯期間生成源代碼的靜態(tài)元編程,還有能在運行期間修改程序的動態(tài)元編程。從低級的匯編語言到一些高級的動態(tài)語言如Perl、Python、Ruby、JavaScript、Lisp、Prolog等均支持此類功能。比如,
?
產(chǎn)生式編程與靜態(tài)元編程都能自動生成源代碼。產(chǎn)生式編程強調(diào)代碼的生成,元編程強調(diào)生成代碼的可執(zhí)行性。此外,動態(tài)元編程并不生成源代碼,但能在運行期間修改程序。
元程序?qū)⒊绦蜃鳛閿?shù)據(jù)來對待,有著其他程序所不具備的自覺性、自適應性和智能性,可以說是一種最高級的程序。
8.3.?許多腳本語言都提供eval函數(shù),可以在運行時將字符串作為表達式來運算[4]。
?
9.?參考資料9.1.?編程范式,程序員的編程世界觀 -- 簡明現(xiàn)代魔法.html9.2.?3.2 超級范式--提升語言的級別(2) - 51CTO.COM.mhtml
[編譯]響應式編程范式--(1) - ttylinux - 博客園.mhtml
9.3.?編程范式思考問題 - huangshanchun的專欄 - CSDN博客.mhtml