程序设计方法一般分为两大类:面向过程和面向对象的程序设计方法。其中面向过程程序语言主要是C语言,经典参考书是《C程序设计语言》,此书的第1作者是1969年完成的博士论文是做“Some Graph
Partitioning Problems Related to Program Segmentation-与程序细分有关的一些图论划分问题”的普林斯顿大学Brian
Kernighan院士,第2作者是图灵奖获得者Dennis
M. Ritchie,他俩分居这里十大程序员的第7位和第1位;面向对象的程序语言主要有C++和Java,它俩之父分别是前面十大程序员居第2和第3位的Bjarne
Stroustrup和James Gosling。Java之父:C语言是撑起一切的基石,这就是大学把C语言做为很多系的基础课的原因(国内这方面的师生应知道谭浩强写了一本发行量创世界纪录的《C程序设计》而得到政协副主席国务委员宋健和人大副委员长中科院院长卢嘉锡等在这本书上题贺词,发行量如此多那学过程序设计的大多数人都应看过这书吧--并也有很多人怀有不以为然的看法-甚至认为“他害了很多人”
-也非都是高手鸡蛋挑骨头-那就择其善者而从之 其不善者而改之吧,中国人做事或多或少都有其它目的驱使或是认识与世界有点距离偏差--而他还算是我国最好的作者之一)。其实,随着深入发现面向对象编程的不足,第三类程序设计方法-泛型程序设计也就被提出。下面附一些面向过程、面向对象和泛型程序设计及其某些关系的文章:
“面向对象、泛型程序设计与类型约束检查”或搜索百度;
“从面向过程程序设计到面向对象技术”或搜索百度;
“再谈面向对象和面向过程技术”或搜索百度;
“面向过程、面向对象与泛型程序设计的对比分析”或搜索百度;
“面向过程与面向对象程序设计的比较”或搜索百度;
“面向对象与面向过程的程序设计方法比较”或搜索百度;
“面向过程和面向对象程序设计分析”或搜索百度;
“面向对象程序分析与测试技术研究”或搜索百度;
等等…
最近也有一本很受推崇的C语言-《C语言程序设计:现代方法》(吹为哈佛大学、麻省理工斯坦福伯克利分校耶鲁加州理工等全球200多所学校采用为教材-这些重要大学都参考则还是值得看的),作者Kimberly King的导师Michael
Alexander Harrison的博士论文是“Combinatorial Problems in Boolean
Algebras and Applications to the Theory of Switching-布尔代数中的组合数学问题及其在交换理论中的应用”
还可参考一些经典的或著名的书籍,如《数据结构与算法分析:C语言描述》,作者Mark
Allen Weiss的导师是普林斯顿大学计算机系创系系主任Robert
Sedgewick-S教授并写了《图论算法:C语言实现》(算法第5部分)、也写《C++算法-图论算法》-此书的名称也可和前面一致为《图论算法:C++语言实现》(Sedgewick的导师是写了很值得看的20世纪最佳12部学术专著之一的《计算机程序设计艺术:组合数学算法(一)》等并计划要再写《计算机程序设计艺术:组合数学算法(二)》并虽因年龄体精力原因但仍没放弃完成之的图灵奖得主Donald E. Knuth,Knuth的导师是现代哈密顿图开创者和其高徒并也写了很多图论组合数学论文);获哈佛数学系学硕博士却在MGP找不到的美国计算机学会教育委员会主席Eric S. Roberts 的《C语言的科学和艺术》也可看;附:C语言规范:C89、C90、C95、C99之间的区别。C++语言国内方面,清华美女教授郑莉虽硕士学位但也当了几个计算机方面的副理事长,她的《C++语言程序设计》可以看,除了这本好象我还有她的Java和面向对象程序等方面的书有六本左右(多数世界顶尖的程序员、软件工程师等都仅是本科学历,如1998年《软件开发》评选的软件行业最有影响力的三个人是:在学术杂志发表的论文只做组合数学的比尔·盖茨、Linux内核的发明人Linus
Torvalds以及《代码大全》的作者Steve
McConnell算是硕士辍学,这些都还算是以前的学生,如教育部软件工程教指委主任、国家软件工程中心主任、软件国家工程实验室主任孙家广院士也是本硕学位并他任主编的《软件工程》一书的编委刘强等都仅是硕士学位并这书只有4篇中文参考文献-其中《Petri网原理与应用》一书可说是一类图论理论的-此书是这里1993年来信望我到北京大学计算机系做研究的中国Petri网委员会主席袁教授独著的);
除了上面的程序语言,还有Pascal语言等:
《算法+数据结构=程序》,作者是Pascal之父图灵奖获得者Niklaus
Wirth并这书的全部程序都是用Pascal语言书写的; 《数据结构与算法》,作者是图灵奖获得者John
E. Hopcroft
和他的博士Alfred V. Aho 院士及
Jeffrey D. Ullman院士合写的-并这书的全部程序也是用Pascal语言书写(每个图论人都学Bondy和Murty的《图论及其应用》第一章共9节中只说2个参考文献-最先说要参考Hopcroft等这3人的另一名著《计算机算法的设计与分析》和其后Beckenbach组编中的一篇论文。Hopcroft他仨的前书有无向图、有向图,这本书有图论算法,虽然很多不相同,但主体思想还是接近的。因这书较早所以是用当时最主要的程序语言ALGOL 60书写的--可能很多人已不使用甚至不熟悉它-但它可是C、C++、Pascal、Ada、Java等高级语言的直接“鼻祖”。这ALGOL
60语言的提出者是首个图灵奖获得者Alan J. Perlis--Perlis的导师的博士论文是图论的“四色问题”,并ALGOL
60语言的第一个编译器由Dijkstra来实现,而B和M推荐要参考Hopcroft等这3人的用ALGOL 60语言书写的这书,主要原因是为进一步深入掌握发展Dijkstra图论最短路径算法。这创造图论最短路径算法的图灵奖获得者Dijkstra可是与上面哈密顿图大师的学生Donald E. Knuth并称为我们这个时代最伟大的计算机科学家的人)。John
E. Hopcroft 的最著名博士还有Zvi
Galil院士-此人曾是纽约哥伦比亚大学院长并从2007年起担任校长的以色列特拉维夫大学可是有国际数学家大会程序委员会主席Noga
M. Alon等图论组合大师并Zvi Galil校长主持编写1995年《Combinatorial Pattern Matching-组合数学模式匹配》,还和Amazon的“首席算法官”、Google副总裁Udi
Manber等合编1993年第4届的《Combinatorial
Pattern Matching-组合数学模式匹配》、也合编1992第3届的《Combinatorial
Pattern Matching-组合数学模式匹配》等等…,此外1985年已合编《Combinatorial
Algorithms on Words-词的组合数学算法》由德国Springer出版集团出版
刚见John E. Hopcroft是北京大学信息技术高等研究院名誉院长(他是第一首席科学家-后面的首席科学家有北京大学常务校长詹启敏等),其实John
E. Hopcroft指导的大多博士论文都做图论如除了上面2个博士还如Richard Cole做图论的2个问题、Paul Dietz做交集图论算法等等…