作者yauhh (哟)
看板C_and_CPP
标题Re: [问题] 各种 programming style 的比较
时间Thu May 28 11:51:45 2009
※ 引述《Holocaust123 (Terry)》之铭言:
: 讲 programming style 好像怪怪的,不过我不知道要讲甚麽
: ‧object oriented programming oo
: ‧functional programming fun
: ‧generic programming gen
: ‧procedure programming pro
: 1.
: 想请问 functional programming 是不是有点类似oo,
: 只是oo programming是以class为单位,
: 而functional programming是以function为单位?
: 如果我说的是对的(orz),那style是oo的话,就不会是 fun 吗(反之亦然)?
: 良葛葛的笔记看不太懂...
既然要区分,一定不是像来像去. 它们只是一种写程式的风格或典范.
风格是指写程式时心里都在想哪方面的事情. 写OO程式当然就是关心物件和物件.
写函数程式,则是关心函数的事情:这个函数是另一些函数构成的,而另一些函数是
再另一些函数构成的.
: 2.
: generic programming 就是有类似 STL 的东西那样吗?
: generic programming => http://flolac.iis.sinica.edu.tw/lambdawan/zh/node/31
: 上面网页说:「这样的泛型演算法便能轻易为各种资料结构具现化」
: 这啥意思...具现化不是new一个class的实体物见出来吗?
: 但泛型演算法不是应该是像 sort、append 这种function,那跟具限化的关系是...?
简单说是一份演算法的 class, 要 instantiate 时,只要给它所需的资料结构,
它就产生一份演算法的 instance.
: 3. 可否用 venn's diagram 简单描述一下这四种 programming style 的差别?
: 或是用「p=>q」的形式讲一下这四者的关系 (ex: oo => pro)
: ^^^^^^^^^
: 我乱举例的
Programming styles/paradigms 不能这样归属,因为它们不是指特定的语言.
你可以有一个拥有OO风格的语言,也可以拥有一个Fun风格的语言;然而,你还可能
有一个语言是既有OO风格,也有Fun风格,但它是procedural语言.
这要怎麽说包含关系? 不管画出怎样的 Venn's diagram, 其中一定有说得不对的地方.
看过一个很粗略的分类是:
Procedural Language
Imperative Language
C
Functional Language
LISP
Non-procedural Language
Logic Language
Prolog
Declarative Language
SQL
至於OO,定位稍微模糊. 也许里头的物件概念,是属於物件理论基础,而不是语言特色.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.112.225.17