您的位置:首页 > 其它

想想如何用程序来写文章—哪些年的努力!

2014-04-08 15:43 134 查看
很多程序员都愿意用程序(或者代码片段)来表达某些文字或者自己的想法, http://www.gkb120.net这种行为,总结一下,其实就是用程序写文章。那是不是所有的文章都用程序来写呢?这个问题就比较复杂了。
程序的定义很简单,一般的程序设计语言的基本元素都是函数(在部分语言里还有子程序的概念,是同一个概念),函数的定义是有零个到多个输入,有零个(对于子程序)或者一个输出的若干有效指令,按照一定算法组合规则和语法规则而成的集合。

程序的定义是如此的简洁,所以,程序是明确的,有逻辑的。

而文章的定义我至今没有找到,因为我也不是学中文的,如果真要给出一个非常精确的定义是很困难的。首先,文体有很多种,甚至还有像诗歌一类的奇怪的文体,这对于用程序来表达文章的内容就很困难了(当然那,也不是绝对,比如perl语言就可以用来写诗),还有记叙文、议论文、说明文……用程序写小说那就更困难了……

当然,可以回归原始,从语言的角度去思考如何用有限的程序语言来书写更多的文章,当然,肯定不是全部,因为从数学的角度上说,程序符号属于文字的一个子集,也许它的组合同样是无限多的,但是肯定无法表达所有类型的文字的组合,就像数轴上有理数比无理数要少是一个道理,虽然他们都是无限多。

程序的特性可以归结为这么几类:

1、语法特性:支持的运算符、表达式、数据类型的种类等等,这些特性在文字中的表现其实是构词能力,比如C语言里有指针,可以翻译成指向一类的词,Java里有对象,可以翻译成所属关系、集合关系。

2、算法特性:这个特性有两部分,一部分是关键字的效果,通常一个正常的程序设计语言都会支持顺序执行、分支执行、循环执行这至少三种运行类型,这些是体现在关键字上,这些特性表现在文章的逻辑结构上,但对于短的文章,这种特性的表现不明显,并且,实际上大多数文章都是“顺序阅读”的;另一部分是程序本身的算法特性,比如是否支持递归,是否无限递归(比如伟大的lisp),以及解释性执行等,这些都在实际应用中不明确,所以很难说是怎么样的。

3、支持库的特性:这其实是对用程序写文章最有用的部分,任何完整的程序(除了汇编)都包含一整套扩展库,其中内置的事先写好的各种算法、系统接口等扩展功能,这些接口函数的名字都是英文,并且含义都很直接,比如kill是删除文件,malloc申请内存空间,如果要表达找个新女朋友,抛弃原来的女朋友就可以写成:

{
    Girlfriend MyGirlFriend;
    delete MyGirlFriend;
    MyGirlFriend = malloc(sizeof(Girlfriend));
}

用程序写文章是否要遵循语法规则呢?目前来看,其实没有太大必要,只要保证每句都是程序就可以,也不必一定要保证程序可执行,不可执行也OK,实际上,现在网上大多数程序表达的文字都是不可执行的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  程序
相关文章推荐