由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - [讨论] Literate Programming
相关主题
两道经典design问题求助Literate programming
问个白痴问题,DP到底算不算递归?科班和非科班的区别
topological sorting BFS和DFS都要会吗?除了类,c++和C区别在那?
[讨论] Literate Programming
相关话题的讨论汇总
话题: literate话题: lp话题: 讨论话题: literature
进入JobHunting版参与讨论
1 (共1页)
t****a
发帖数: 1212
1
这是Knuth在84年提出的编程方式。
http://en.wikipedia.org/wiki/Literate_programming#Further_readi
我是个data scientist, 坚持这种编程方式已经有3年了。我使用过的literature
programming语言中包有R, python, lisp, clojure, sql, graphviz等。现在在使用的
literature programming tool是emacs org-mode+babel。自我感觉,这种方式刚开始
很难上手,习惯了以后,大大提高了我的工作效率。
这确实是一种很少人使用的技术。
有哪位朋友愿意讨论讨论经验,心得么?
t****a
发帖数: 1212
2
我也能理解很多朋友对这种方法的质疑。毕竟它从提出开始有30年了,目前为止没有大
规模应用。可是我们知道很多学术概念到应用之间会相隔很久。比如OO的概念是60年代
就提出的。80年代C++出现之后才开始逐渐开始大规模应用。
Literature Programming (LP)的过程,就我的体会,更象是设计的过程,而且把设计
贯穿了整个编程序的始终。它强迫我在写程序之前仔细思考描述程序的逻辑,在整个项
目中的地位等。
在网上我看到了很多对LP的质疑,其中一种质疑是,程序并不是论文,不能够按照文章
的形式来组织程序逻辑。这里就问了一个很好的问题:程序究竟是以什么形式组织的?
文章又是以什么形式组织的?两者有相似之处么?
在我看来,两者都采用的是数据结构中的LIST(散列表)形式来组织。论文分为章,节,
小节,段落;程序也可以分为不同的逻辑分块,每个逻辑分块又分为各个小块,上层的
逻辑分块调用下层的逻辑小块,其中也存在交叉调用,就好像一篇论文内部的交叉引用
。从这个意义上说,LP的过程是自顶向下的设计过程。
支持我的论点的,经典的例子就是java里包的树状结构。
事实上,LP并不反对test case。我认为test就应该算作整个LP中的一个重要的章节:)
LP的优点,是它可以使用包括语言在内的各种方式来帮助/强迫程序设计师在code前进
行设计。同时生成高质量的文档,对于维护程序非常有价值。有些朋友觉得javadoc就
是个很好的LP工具,可在我看来,它不强迫先设计后写的过程,同时生成的文档又有诸
多限制(比如它只能支持文字),因此不能算作LP工具。
目前LP的局限之处是缺乏足够的工具来帮助程序员高效率的做LP。我曾尝试过一些不同
的工具,最后感觉emacs中的org-mode和org-babel配合一些自己写的emacs lisp宏对我
很合适。
LP给我单调的程序生活带来了很多乐趣。
Knuth有一本关于LP的书,我才刚刚开了个头,里面我相信会看到他的非常有价值的建
议。
非常欢迎各位朋友来讨论这个问题,我们相互提高。

【在 t****a 的大作中提到】
: 这是Knuth在84年提出的编程方式。
: http://en.wikipedia.org/wiki/Literate_programming#Further_readi
: 我是个data scientist, 坚持这种编程方式已经有3年了。我使用过的literature
: programming语言中包有R, python, lisp, clojure, sql, graphviz等。现在在使用的
: literature programming tool是emacs org-mode+babel。自我感觉,这种方式刚开始
: 很难上手,习惯了以后,大大提高了我的工作效率。
: 这确实是一种很少人使用的技术。
: 有哪位朋友愿意讨论讨论经验,心得么?

t****a
发帖数: 1212
3
希望这个板上除了有关心package大小的朋友,也有真心热爱CS并且喜欢讨论这些问题
的朋友。

【在 t****a 的大作中提到】
: 我也能理解很多朋友对这种方法的质疑。毕竟它从提出开始有30年了,目前为止没有大
: 规模应用。可是我们知道很多学术概念到应用之间会相隔很久。比如OO的概念是60年代
: 就提出的。80年代C++出现之后才开始逐渐开始大规模应用。
: Literature Programming (LP)的过程,就我的体会,更象是设计的过程,而且把设计
: 贯穿了整个编程序的始终。它强迫我在写程序之前仔细思考描述程序的逻辑,在整个项
: 目中的地位等。
: 在网上我看到了很多对LP的质疑,其中一种质疑是,程序并不是论文,不能够按照文章
: 的形式来组织程序逻辑。这里就问了一个很好的问题:程序究竟是以什么形式组织的?
: 文章又是以什么形式组织的?两者有相似之处么?
: 在我看来,两者都采用的是数据结构中的LIST(散列表)形式来组织。论文分为章,节,

l***i
发帖数: 1309
4
除了做题和BSO,学术讨论可能还是
programmming或者cs板更合适
在这儿马上就被面经和offer淹没了
1 (共1页)
进入JobHunting版参与讨论
相关主题
两道经典design问题求助Literate programming
问个白痴问题,DP到底算不算递归?科班和非科班的区别
topological sorting BFS和DFS都要会吗?除了类,c++和C区别在那?
[讨论] Literate Programming
相关话题的讨论汇总
话题: literate话题: lp话题: 讨论话题: literature