编程范式的示意图

上传人:飞****9 文档编号:131939858 上传时间:2020-05-11 格式:PDF 页数:1 大小:39.19KB
返回 下载 相关 举报
编程范式的示意图_第1页
第1页 / 共1页
亲,该文档总共1页,全部预览完了,如果喜欢就下载吧!
资源描述

《编程范式的示意图》由会员分享,可在线阅读,更多相关《编程范式的示意图(1页珍藏版)》请在金锄头文库上搜索。

1、nondeterminism Observable Yes No More declarativeLess declarative Named stateUnnamed state seq or conc equality name by need synchronization by need synchronization thread continuation Lazy concurrent object oriented Concurrent programming Shared state concurrent programming Software transactional m

2、emory STM Sequential object oriented programming Stateful functional programming programming Imperative Lazy declarative concurrent programming programming Lazy dataflow Concurrent constraint programming constraint programming Constraint logic programming Relational logic programming Deterministic l

3、ogic programming synchron by need thread single assign Haskell Lazy functional programming Monotonic dataflow programming Declarative concurrent programming ADT functional programming ADT imperative programming Functional programming First order functional programming Descriptive declarative program

4、ming Imperative search programming Event loop programming Multi agent programming Message passing concurrent programming Data structures only Turing equivalent cell state unification Dataflow and Oz Alice CurryOz Alice Curry CLU OCaml Oz E in one vat Continuation programming Logic and constraintsmes

5、sage passing Message passingShared state v1 08 2008 by Peter Van Roy nondeterministic channel Oz Alice Curry Excel AKL FGHC FCP synch on partial termination FrTime SL instantaneous computation Strong synchronous programming Esterel Lustre Signal Functional reactive programming FRP Weak synchronous p

6、rogramming Pipes MapReduce Nondet state See Concepts Techniques and Models of Computer Programming Explanations Erlang AKL CSP Occam E Oz Alice publish subscribe tuple space Linda choice Nonmonotonic dataflow programming Concurrent logic programming Oz Alice AKL port Multi agent dataflow programming

7、 The chart classifies programming paradigms according to their kernel abstractions can be defined Kernel languages are ordered according to the creative extension principle a new concept is added when it cannot be encoded with only local transformations Two languages that implement programmer becaus

8、e they make different choices about what programming techniques and styles to facilitate the same paradigm can nevertheless have very different flavors for the languages the small core language in which all the paradigm s without interference from other paradigms It does not mean that there is a per

9、fect fit between the language and the paradigm It is not enough that libraries have been written in the language to support the paradigm The language s kernel language should support the paradigm When there is a family of related languages usually only one member of the family is mentioned to avoid

10、clutter The absence of a language does not imply any kind of value judgment When a language is mentioned under a paradigm it means that part of the language is intended by its designers to support the paradigm Typing is not completely orthogonal it has some effect on expressiveness Axes orthogonal t

11、o this chart are typing aspects and domain specificity program s specification A domain specific language should be definable in any paradigm except when the domain needs a particular concept Aspects should be completely orthogonal since they are part of a native fashion This flexibility is not show

12、n in the chart as Scheme are flexible enough to implement many paradigms in almost tinkering in particular are orthogonal to this chart Some languages such introspection and reflection Syntactic extensibility and kernel language protocols and generics to full fledged tinkering with the kernel langua

13、ge programming combined with syntactic support e g meta object programming syntactic extensibility e g macros to higher order language The term covers many different approaches from higher order Metaprogramming is another way to increase the expressiveness of a sequence of values in time Its express

14、ive power is strongly influenced by the paradigm that contains it We distinguish four levels of expressiveness State is the ability to remember information or more precisely to store a which differ in whether the state is unnamed or named deterministic or nondeterministic and sequential or concurren

15、t The least expressive is functional programming threaded state e g DCGs and monads unnamed deterministic and sequential Adding concurrency gives declarative concurrent programming e g synchrocells unnamed deterministic and concurrent Adding nondeterministic choice gives concurrent logic programming

16、 which uses stream mergers unnamed e g client server Named state is important for modularity nondeterministic and concurrent Adding ports or cells respectively gives message passing or shared state both are named nondeterministic and concurrent Nondeterminism is important for real world interaction local cell Active object programming Object capability programming Java OCaml closure embeddings solver LIFE AKL CLP ILOG Solver thread single assignment thread Smalltalk Oz thread Java Alice log cell

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号