- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
漂亮的设计会给你带来长远的益处
低年级讨论班
第第第章章章
漂亮的设计会给你带来长远的益处漂亮的设计会给你带来长远的益处
数学科学学院杨嘉骐
作者简介作者简介
作者作者AdamAdam KolawaKolawa,CaltechCaltech理论物理学博士理论物理学博士,现现
任Parasoft(以软件测试技术闻名的公司) 的CEO ,
重点关注领域为物理学中的辅助计算与并行计算重点关注领域为物理学中的辅助计算与并行计算。
漂亮代码的定义漂亮代码的定义
最基本观点最基本观点::必须是可工作的必须是可工作的。
代码必须精确、高效的完成我们再设计它所预期
的任务的任务,而不能在行为上存在任何的歧义而不能在行为上存在任何的歧义。
只有那些我可以使用,以及重复使用,并且不会
对他们存在任何“他们是否可以为我提供正确答案”
怀疑的代码才可以被称为漂亮的代码。
漂亮代码的定义漂亮代码的定义
业界最重要的使命业界最重要的使命::与他人共享代码与他人共享代码,同时并不同时并不
要求别人去分析代码内部找出它的工作原理。就
像小汽车一样像小汽车一样,我们不会去研究其内部机理我们不会去研究其内部机理,但但
需要欣赏它的外观和信任它的功能。
我们必须清晰的告诉别人如何使用我们必须清晰的告诉别人如何使用、理解它们理解它们,
将它们应用到人们所面对的问题上去、并且还能
够很容易让人们验证它的用法是否正确够很容易让人们验证它的用法是否正确。
外在美外在美
本文第一部分讨论代码的外在美本文第一部分讨论代码的外在美::即那些保证代即那些保证代
码准确以及可靠并使得开发人员愿意重用它的因
素素,以及如何使重用变得简单的因素以及如何使重用变得简单的因素。
外在美外在美
CERN库
欧洲核子研究中心欧洲核子研究中心 ((CERNCERN))是世界上最大的粒子是世界上最大的粒子
物理研究实验室。它成立于 1954 年,位于日内瓦
的西北部的西北部,,目前拥有世界上最大的粒子加速器目前拥有世界上最大的粒子加速器
(LHC)和与之配套的世界最大的计算网络,
CERNCERN的研究人员的研究人员Tim BernersTim Berners-LeeLee 于于2020 世纪世纪9090
年代初在CERN 发明了万维网,以便使世界各地不
同大学和研究所的科学家能够自动共享信息同大学和研究所的科学家能够自动共享信息。。
CERN库是CERN开发的用于数学计算的程序库,
目前仍然在更新并有了目前仍然在更新并有了WindowsWindows下的版本下的版本。
外在美外在美
LAPACK与LINPACK
CERN库的线性代数部分发展成了LAPACK (Linear
Algebra Package) ,由橡树岭国家实验室、加州大
学戴维斯分校和伊利诺伊大学等联合开发,是用
Fortran 77编写的数值线性代数库。
LAPACK最新版本为lapack-3.0,LAPACK网站:
httpp://g/lappack/index.html
外在美外在美
Fortran语言
Fortran 77语言为一种实现了结构化的编程语言,
语法与C语言有相似之处。下面列举一些与C语言
差距较大的语句。
逻辑表达式逻辑表达式:N.LT.0 “.LT.”代表小于代表小于,,整个语句含整个语句含
义是若N 0则返回true.
CALLCALL调用子例程调用子例程
外在美外在美
循环
DODO 1010 II == 11, JJ - 11
WORK13( I, J ) = ZERO
1010 CONTINUECONTINUE
DO 标号(,)I = 循环初始值,循环终止值,每次循环增加量(不填为1)
循环体执行语句
标号继续执行语句(通常为CONTINUE)
外在美外在美
本文选取LAPACK库中SGBSV例程作为例子。
此例程用于计算带状矩阵此例程用于计算带状矩阵 ((矩阵中不为矩阵中不为00的值集中的值集中
在对角线附近)求解线性方程组。. 矩阵线性方程
文档评论(0)