软件简洁之美——C语言之父Dennis Ritchie访谈

C语言、编程语言发展史 以铜为鉴,可正衣冠;以古为鉴,可知兴替;以人为鉴,可明得失。 了解和学习一门语言、一个系统乃至方方面面的任何东西时,如果不知道其历史和现状而只是一上来就一味地闷头苦学,你就很容易“一叶障目不见泰山”。这样火急火燎的就上手苦干,私以为大错特错,所谓“学而不思则罔”。当然,上手苦干也是之后的很重要的部分。了解C语言的历史,就不得不慢慢品味如下这long long ago 的故事,这涉及到了很多公司和人物 阅读详情

Dennis M. Ritchie其人

图:C语言之父
Dennis M Ritchie(丹尼斯·里奇), C语言之父,UNIX之父。生于1941年9月9日,哈佛大学数学博士。
现在,Dennis M. Ritchie 担任朗讯科技公司贝尔实验室 (原AT&T实验室)下属的计算机科学研究中心系统软件研究部的主任一职。
1978年Brian W. Kernighan和Dennis M. Ritchie出版了名著《C程序设计语言(The C Programming Language)》,现在此书已翻译成多种语言,成为C语言方面最权威的教材之一。
C语言是使用最广泛的语言之一,可以说,C语言的诞生是现代程序语言革命的起点,是程序设计语言发展史中的一个里程碑。
除了C语言的开发,Dennis Ritchie还和Ken Thompson一起开发了UNIX操作系统,因此,他还是名副其实的UNIX之父。
从二十世纪七十年代起,他因杰出的工作得到了众多计算机组织的公认和表彰。
1974年,美国计算机协会(ACM)授予他系统及语言杰出论文奖。
1982年,电气和电子工程师协会(IEEE)授予他 Emmanuel Piore 奖。
1983年,他获得了贝尔实验室特别人员奖和
1983年,还获得美国计算机协会颁发的图灵奖(又称计算机界的诺贝尔奖)。
1989年,他获得了NEC公司的 C&C 基金奖。
1990年,电气和电子工程师协会又给他颁发了优秀奖章(Hamming Medal)
1999年,他和同为UNIX之父的Ken Thompson 获得美国国家技术奖章。等等。

大师的修炼之道
Ritchie生于1941年9月9日的纽约 Bronxville,获得学士学位并且获得哈佛大学博士学位,在哈佛,先是

学习物理,而后转向应用数学。正是在这时候,一个偶然的机会改变了他一生的选择。
大约1960年,Ritchie听取一些非课程类的计算机讲座后,开始对计算机着迷,并选择了一学期正规(介

绍性的)课程。第一部分是模拟计算机,后面是关于打孔卡片设备的,然后才是关于真正的数字式计算机

的,并为Univac I号机准备了一个程序。当时他是一个主修物理的学生,但是更加着迷于计算机处理的理

论和实际问题。因此,他的毕业论文大部分是理论方面的,例如1968年获得数学博士时的论文《递归函数

的的层次》;但是他也开始投入更大精力到实践方面,例如,作为助手,在IBM7049计算机上用了三年时

间为同一个介绍性课程做后续版本。
在Ritchie的成长历程中,有两个人对他的影响最大,一个是他父亲Alistair E. Ritchie,而另一个是他

的挚友,同为UNIX发明人的Ken Thompson。
由于父亲的指引,他进入全球知名的研发机构——贝尔实验室。Dennis的父亲在贝尔实验室有长时间的工

作经历,对晶体管电路类的东西很有研究。1967年在父亲指引下加入贝尔实验室。不久后,加入了

Multics(Multiplexed Information and Computing System)项目,正是这个项目,使得他和Ken

Thompsom 有了合作的机会。该项目由贝尔实验室、麻省理工学院和通用电器三家合作,Ritchie负责多道

处理机的BCPL语言和GE650的编译器,它们都是属于GECOS系统的,同样的,他也写了ALTRAN语言的代数编

译器,那是用于符号计算机的一种语言和系统。


关于Ken Thompson,可以从后面他对此问题的回答中得到印证。有人问过Dennis,他的偶像是谁?他的回

答挺有意思。
他说:我不是在英雄熏陶下成长起来的。很显然,对我职业生涯影响最大的人物是Ken Thompson。UNIX大

部分是他的工作,同样也是C语言的前辈,Plan 9系统的大部分工作也是他做的。并且在这其间Ken做了第

一个计算机象棋大师。
Dennis协助Ken Thompson做UNIX操作系统,在UNIX系统基本就绪并且在教育、政府和商业中得到一定程度

的应用时,他和另一名同伴在Ken帮助下,开始将这个操作系统移植到Interdata 8/32上,通过这种方式

证明其轻便性,基于UNIX快速的传播:贝尔实验室的第7版已经成为商业化UNIX的第五版和BSD UNIX的基

础——这是UNIX快速传播的两个版本。
在UNIX发展之过程中,他向Thompson的B语言中加入数据类型和新的句法,就这样产生了一种新语言——C

,这也是他说Thompson是C语言的前辈的原因,C是便携式UNIX的基础,并且它也在其它领域得到了广泛应

用;计算机各方面的应用程序和系统发展,从手持设备到巨型机,都有对它的应用,还有美国标准和国际

标准的C语言,并且它是后来Bjarne Stroustrup 写的C++语言的基础。
他从来没有间断过在计算机及其操作系统方面的工作,他所领导的研究小组开发出了 Plan 9 和 Inferno

。
Ritchie的业余生活也非常精彩,工作之余,有自己精彩生活。
他这样描述自己的生活,干的大部分是和计算机相关的,有点纠缠不清的事情。另一方面,也时常读读书

看看报。
另一项爱好是旅行,他到过很多地方,特别喜欢旅行,但每次时间都不是很长。可能因为他是一个恋家的

人,因而有时旅行不久后感到相当疲乏。但喜欢回想旅行经历,这时就很希望能挤出时间在一个具有异国

情调的地方待得时间长一点。
曾有人问过下面的问题,对于一个人是如何涉足软件工业领域的,不同人有不同的回答。是什么使

Ritchie选择了她,又是什么使得他在此领域如此潇洒呢?
他的回答很简洁:兴趣和好奇心!他说:我开始对于物理学比较感兴趣,现在仍然是一个业余爱好者,试

图跟上物理学的一些新东西。早先上大学时,包括读研究生,我在计算机理论方面花了不少时间(如图灵

机、复杂性理论)。这其间,我对真实的电脑也非常着迷,着迷于所编即所见的经历:当你编出一个程序

,便能立即看到你的思想的实现!所有的事情以一种非常有趣的方式联系在了一起,也正是这一类的东西

促使我进入这一领域。但不知什么原因,我没有真正想过我正在这一领域做什么,即使时光倒流到1968年

,我想也是如此。

一如Dennis开发的软件,DMR先生对问题的描述非常简洁。

问:您的生活是怎样和计算机联系在一起的?
D M R:在大学的时候我开始对它感兴趣(大约1960-61年),我参加了一个非学术性的讲座,关于大学里

的Univac I(通用自动计算机I号),然后就选修了一些课程。
问:您觉得怎样才是学编程的好方法?学习语言时一种好的工具是不是必需的?
D M R:我想你最有必要做下面的事情——编一些小程序,然后编大一点的。
问:怎样才算是一种好的大学教育呢?尤其对计算科学来说。
D M R:教育知识面最好要宽一些,不要仅仅局限于编程。即使是编程,最好多学几种语言。我在大学时

花了几年时间学习物理和计算理论知识,现在我仍然对当时的选择比较满意。
问:数学和计算机科学有什么关系吗?
D M R:我觉得计算机科学就是:包括工程学在内的对数学的应用。
问:您怎样教育自己的孩子和学生?
D M R:两者我都不可能有!我没结婚,并且我是在工业系统而不是学术机构中。
问:您对中国和中国的程序员有什么认识?您想对他们说点什么吗?
D M R:我访问中国好多次,但每次都很短暂,以至于很难形成一个一般的看法。上一次我还记得,在大

学的见面会上,我讲了一些当时正在从事的工作的情况和历史,学生们的态度非常热情,他们提问所表达

出的知识面也很宽博。


贝尔实验室出大师

 

C语言或UNIX,任一项发明足以让Dennis成为一代又一代程序员们的偶像。但当我们接触这位伟人之后发

现,Dennis是一位非常低调的人,形成对照的是他在软件业成就辉煌的40年。
今天,当初与他同期加入贝尔实验室的科学家中,多数人都已安享晚年或是自立门户成为老板,而Dennis

还是一如既往地在这里从事自己喜欢的研究工作,著书立说,潜心编程。在完成C语言和UNIX两座高峰后

,他还带领他的研究小组开发出了 新一代操作系统Plan 9 和 Inferno。
C语言和UNIX的发展历程,还让我们从侧面见证了业界流流传很久的话题:贝尔实验室出大师!而在谈到

贝尔实验室成功的原因时,Dennis的评价只有四个字:管理得当!
在谈到贝尔实验室时,虽然它的称呼、Logo不断变化,但Dennis评价“贝尔实验室仍然是相当不错的干事

的地方”。
贝尔实验室(Bell Labs)是全球驰名的研发机构,遍布全球16个国家,自1937年以来已经产生出11位诺

贝尔奖获得者。贝尔实验室的科学家和研究人员自1925年以来已经获得了40,000多项发明,30,000多项专

利,平均每个工作日超过4项,是全球最多产的发明源泉之一。
贝尔实验室原名“贝尔电话实验室”,1996年10月正式改名为“贝尔实验室”(Bell Labs),先后为AT

&T和朗讯科技公司的研发机构,也是后者得以成立的支柱。它主要从事通信科技的基础研究和技术发展

工作,目前还从事通信系统和设备的研制工作。
自1925年成立之初,它一直是世界上规模最大、通信科技和控制等方面最先进、优秀人才最集中和科技成

果最突出的工业研究实验室或研发机构,它的工作人员从成立时的3600人和年经费1200万美元发展到1991

年的29000人和37亿美元。在1999年,雇员人数仍为25000人,年经费36.78亿美元,依然雄居世界研发机

构的榜首,被称为“世界首要的研发机构”和研发的“象牙之塔”。
美国国家技术奖章的统计数字是贝尔实验室成就的有力补充说明,第一次的奖章是授予贝尔实验室,1999

年,Ritchie 和 Thompson因为在贝尔实验室的受人瞩目的成绩获得此项殊荣,是第六次以集体的名义和

第七次个人名义获得国家技术奖章。


问:在AT&T和Bell实验室有这样多的IT发明和著名人物,您觉得有什么秘决吗?
D M R:我觉得这得益于我们的管理,使得有足够资金资助研究,更重要的是给予充足的时间和允许某些

思想发展的时间。很幸运的另一点是,这里有一批天才人物的加入。还有一定程度的幸运在里面:1970年

代,在计算机硬件条件(如小型机)发生了巨大的变化,这样使得许多机构可以顺利地开展实验,而这之

前是很困难的。

问:现在的大学有部分学生中途退学,您怎样看待这现象呢?
D M R:在.com泡沫时期,我曾经为此非常担心,现在,至少现在在我们国家,好象不很普遍了。可能原

因在于,人们已经不再把计算机科学看作可以立即赚到大把美金的东东了,因此,现在其他的人对这门学

科本身更感兴趣一点。
C语言UNIX双双飞
作为一门伟大的语言,C语言的发展颇为有趣,C语言是借助UNIX操作系统的翅膀而起飞的,UNIX操作系统

也由于C而得以快速移植落地生根,两者相辅相承,成就了软件史上最精彩的一幕。
1967 年,Dennis参与的第一个项目是Multics,UNIX的诞生和Multics有一定渊源的。Multics是一个操作

系统项目,被设计运行在GE-645大型主机上,但是由于整个目标过于庞大,糅合了太多的特性,Multics

虽然发布了一些产品,但是性能都很低,最终以失败而告终。
AT&T最终撤出了投入Multics项目的资源,其中一个开发者,Ken Thompson则继续为GE-645开发软件,并

最终编写了一个太空旅行游戏。经过实际运行后,他发现游戏速度很慢而且耗费昂贵。在Dennis Ritchie

的帮助下,Thompson用PDP-7的汇编语言重写了这个游戏,并使其在DEC PDP-7上运行起来。这次经历加上

Multics项目的经验,促使Thompson开始了一个DEC PDP-7上的新操作系统项目。Thompson和Ritchie领导

一组开发者,开发了一个新的多任务操作系统,这个项目被称为UNICS(Uniplexed Information and

Computing System),因为它可以支持同时的多用户操作,也就是后来的UNIX。
最初的UNIX是用汇编语言编写的,一些应用是由叫做B语言的解释型语言和汇编语言混合编写的,在移植

的过程中遇到不少麻烦。早在对Multics项目调整过程中,就迫切需要一门高级计算机语言做工具,可供

选择的范围仅仅是PL/I、Fortran等,经过一一实验,不得不放弃,最后Ken 决定设计一种自己的语言,

将BCPL语言压缩到仅有8KB的内存中,B语言诞生了。
B语言也并非无懈可击,由于自身局限性,在设计UNIX操作系统时让设计者吃了不少苦头,为了解决程序

的可移植性问题,他们决定对它进行简单改进,形成NB语言。但NB在UNIX的移植方面依然不尽人意,此后

Dennis又对NB语言做了改进,C语言诞生。

这是个划时代的动作,C语言让UNIX能够轻易地被移植到各种不同的机器上,为UNIX的迅速普及立下汗马

功劳。
1977年Dennis发表了不依赖于具体机器系统的C语言编译文本——《可移植的C语言编译程序》,UNIX操作

系统得已推广的另一项有利举措是标准化。种种得力举措,从而使C语言成为目前世界上流行最广泛的高

级程序设计语言之一。
1978年Brian W. Kernighan和Dennis M. Ritchie出版的名著《C程序设计语言(The C Programming

Language)》,常被人们称为K&R版C教材或“白皮书”,为C语言的推广普及立下汗马功劳。
1988年,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准。随着标准化的深入,C语言发展迅速

, 成为最受欢迎的语言之一。
而Dennis 由于C语言和UNIX两项成就,成为许多编程爱好者膜拜的对象。也正因此,和Ken二人于1983年

获得有计算机界诺贝尔奖的ACM 图灵奖。
C语言最初被用于UNIX的编写,后来它被众多程序员狂热拥戴,成为使用最广泛的系统开发语言,这却是

Dennis本人也没有预料到的。
现在,C语言,作为一种通用的程序设计语言,它主要用来进行系统程序设计。具有高效、灵活、功能丰

富、表达力强和移植性好等的特点,在程序员中备受青睐。C语言广泛应用于不同的操作系统,例如UNIX

、MS-DOS、Microsoft Windows及Linux等。C语言是一种面向过程的语言,同时具有高级语言和汇编语言

的优点。在C语言的基础上发展起来的有支持多种程序设计风格的C++语言,网络上广泛使用的Java、

JavaScript,微软的C#等。
而UNIX作为一种一种多用户、多任务的通用操作系统,已发展成为当前使用普遍、影响深远的工业界主流

的操作系统,成为重要的企业级操作平台,广泛运行于PC、小型机等各种环境,用于大型信息系统的关键

业务服务,如数据库和Internet主机。
在技术方面,曾有人问Dennis, C语言设计目标有没有随着时间推移而改变?如果没变,为什么?他说:

我个人的目标这些年来一直未变,并且,我不是1989和1999年标准的主要推动者。无论1989年ANSI标准还

是ISO标准都使事情制度化了,这些条文比我最初写的文档要好;最需要加以说明的是我早先关于函数原

型做的工作,对C++语言的影响是非常重要的一个影响。
而在关于众多计算机语言优劣性能的激烈辩论中,始终处在中心位置的C语言作者Dennis却显得很平静。

西班牙的一位大学生曾经问过他类似的问题: 如果 UNIX 被选为过去和当前的操作系统,尽管过去几年出

现了一些面向对象的语言,毫无疑问C 也将被认为是“唯一的语言”。你怎么看待 C++ 和 Java,以及 C

和 C++ 程序员之间在 UseNet 上经常发生的激烈争论呢?
他说:C++ 的很大一部分得宜于 C。因为 C 早在 C++ 出现之前就已经具有了非常好的兼容性,所以 C++

才可以采用 C 作为建构自身的基础并使用它来开发自己的编译器。C 被设计成为一种便携式汇编语言,

对于这一特性人们褒贬不一,C++ 则试图把编程方法提高到面向对象这种更抽象的层次上来。从最近形成

的标准来看,二者共同的缺点是:带有过多的装饰和附属物。同样的,它们都采用了相同的编程思想,都

试图按照真正的需求来编写代码。Java 显然是 C++ 的改进版本。它砍掉了 C 中的指针操作部分,引入

了生成独立于机器的目标文件这种编程思想(虽然这个思想并不是很新的,但是也许直到现在它才真正可

行了)。既然 Sun 和 Microsoft 公司(它的产品同样的有过多的装饰附件)已经把 Java 作为它们之间竞

争的工具,谁也难以预料事态将向何处发展。
C语言是Dennis的得意这笔,对于这一笔,他看得非常平静,当问到他对C语言的将来做一下预测时,他的

回答十分简洁:C语言正在被C++,也可能是Java所替代,也可能是更高级的脚本语言。当然,它在关于系

统一类设计中还是相当强的工具。


问:您是怎样发明C语言的?发明的过程是什么样子的。它对您的生活和研究有什么影响吗?
D M R:公正地说,发明C语言的目的是:为了写编译器和语言设计,为了更易于编写UNIX操作系统程序,

我们做的一个可以在小型计算机上使用的工具。UNIX做的比较好,并且PC开始相当普遍,由于C语言在

UNIX上的很好地应用,使得用它来写应用程序和操作系统迅速增长起来。因此,对我来说,C语言的确非

常重要。

问:您觉得C语言和C++有什么不同吗?
D M R:多年以来,C和C++,已经是两种不同的语言了;Stroustrup先生汲取了C语言语法和潜在的语义学

中的许多东西,形成了C++语言。在一些交叉领域,标准委员会尽量使两种语言兼容。
问:您觉得计算机语言和我们人类的语言有什么不同呢?
D M R:计算机语言更加正式和明确,有统一的规则,当然,它们都是经过设计的。人类语言有语法,但

相对来说不很正式,有些规则可以打破,当然,它们有不同的目的——为了同人交流而不是同机器交流。

问:您对面向对象是怎样理解的?它是不是一种好的可接受的编程思考方式?有没有学习OO必须的有用的

工具?
D M R:我看过OO的东西但我现在还不是OO迷。这种思想是非常好的,也即是通过隐藏任务的执行来定义

界面,但是它可能做得有点过火;它以很难发现工作本质的程序终结;它的所有的东西就是界面。

问:您能对IT的将来做一下预测吗?将来我们最有可能用什么语言?
D M R:我对预测不在行,但是很明显,人们正在从象C语言之类的直接编译型语言,转换到注重解释性的

语言,象某些脚本语言。


人物印象
提起Dennis Ritchie 先生,不可不提他那句在IT名言:
UNIX is basically a simple operating system, but you have to be a genius to understand the

simplicity.
这就是简洁。软件简洁之美。
另外的产生一种由然的感动。
D M R先生的专业精神令人感动,近40年如一日,在他所从事的领域辛勤耕耘,而他的多项发明,包括C语

言,UNIX,也包括现在正在进行的Plan9,无论哪一项,在软件发展史上都有着举足轻重的地位,和他的

伟大成就形成对照的是他的行事,态度低调;他的表达,象他的软件一样,简洁生动而准确。
Bjarne Stroustrup先生C++的成功,很大一部分也来自于C,是C语言的普及和深入,才有了后面的凤凰涅

槃;从另一个角度,在同另一语言大师Pascal之父Niklaus Wirth交流时,C++的名字也是源自C语言的利

器,Wirth先生不无惋惜地表示,后来他开发的语言可惜没叫Pascal2。
他的行事低调和他的巨大成就形成鲜明的对照。和Ken亦师亦友的关系,对工作一丝不苟的执着,无不深

深地感动着我们。 

 
Dennis Ritchie—— Unix之父, C 编程语言设计者 Dennis Ritchie - Unix之父,编程语言设计者》, 作者丹尼斯·里奇 , 美国计算机科学家、实验室教授、编程语言设计者、著名UNIX系统管理员、开源运动领袖。本书对Unix历史以及UNIX生态系统进行了完整的梳理,并结合实际案例深入浅出地论述了编程语言的设计理念和原则。通过对软件工程的理论知识和工程实践的结合,作者阐述了程序开发中最基本的“优雅编码”、“可读性”、“可维护性”、“健壮性”四要素,并指出它们之间的相互关联关系,从而提高程序的质量及可靠性。 阅读详情

相关推荐

Brian Kernighan & Dennis Ritchie:The C Programming Language

Brian Kernighan & Dennis Ritchie:The C Programming Language.epub

C语言三大经典名著+微软四大名著

参考:http://blog.163.com/feitech@126/blog/static/17094743620101030114348881/     1.《C和指针》《C陷阱与缺陷》《C专家编程》三本书一起组成C语言在世界范围内公认的经典名著,历经多年仍畅销不衰。包括了从基础到尖端的几乎全部知识和注意点。被各大机构和专家推荐。2. The C Programming Lang...

windshg的专栏 1634

ArcGIS Pro MCP 开源:自然语言驱动的 AI 制图与分析

人工智能与大模型的快速发展,正推动专业软件从“手动操作”走向“自然语言控制”。模型上下文协议(MCP)作为连接 AI 与外部工具的标准接口,类似为 AI 安装的“USB 接口”,让大模型可以通过统一协议调用 GIS 软件能力。基于 ArcPy 构建的 ArcGIS Pro MCP 项目,将复杂的地图制图与空间分析封装为 112 个可被 AI 调用的工具,使文本指令直接驱动软件完成数据加载、符号化、出图乃至叠加统计等任务。对 GIS 工程师、数据分析师与测绘规划从业者而言,该开源项目显著降低专业软件使用门槛,

weixin_29054195的博客 274

C之父-Dennis M Ritchie

C之父-Dennis M Ritchie(丹尼斯·里奇)C语言是在UNIX之父Ken Thompson发明的B语言基础之上演化而来的C语言的发展颇为有趣。它的原型ALGOL 60语言。C语言是一门伟大的语言,一门伟大的承前启后的语言。C语言是借助Unix操作系统的翅膀而起飞的,Unix操作系统也由于C而得已快速移植落地生根,两者相辅相承,成就了软件史上最精彩的一幕。而对于C的诞生,大师对他的描述是

移动互联网改变生活,高效配对交易创造财富 3086

IDEA 导入 jbolt项目(实验室非公开项目)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录准备一、准备数据库二、IDEA导入jbolt项目 准备 在实验室群文件中下载jbolt.zip和mysql.sql两个文件 将其解压到自己的目录下 一、准备数据库 打开Navicat新建一个jbolt数据库(字符集为utf8) 导入mysql.sql文件 数据库导入完毕 二、IDEA导入jbolt项目 点击打开一个项目 选择jbolt文件夹 以Maven形式打开 打开pom.xml 在里面添加jetty-server依赖

weixin_44094842的博客 973

基于咸鱼最新九宫格图标验证码的语义增强模型识别

本文探讨了破解复杂验证码的技术思路,重点分析了某平台的九宫格验证码应对策略。作者提出通过图像语义抽取和增强技术来扩充数据集:先采集少量真实样本,利用形态学操作进行前增强生成变形图像,再通过叠加背景噪声进行后增强。同时强调真实数据集的重要性,建议采用真实+生成数据的混合训练方法。实验表明该方法可使模型准确率达到95%以上,但作者特别声明本文仅供技术研究,严禁用于非法用途。

码王吴彦祖的博客 601

传奇的缔造者——C语言之父访谈

Dennis M Ritchie(丹尼斯·里奇), C语言之父,UNIX之父。C语言是使用最广泛的语言之一,可以说,C语言的诞生是现代程序语言革命的起点,是程序设计语言发展史中的一个里程碑。自C语言出现后,以C语言为根基的C++、Java和C#等面向对象语言相继诞生,并在各自领域大获成功。但今天C语言依旧在系统编程、嵌入式编程等领域占据着统治地位。C语言,这种最有效、最通用的编程语言,

duduhaha的专栏 2503

国科大学习资料--高级软件工程-复习题选择题答案

国科大学习资料–高级软件工程(罗铁坚 魏峻 刘丹)-复习题选择题答案 ’‘

无名何许人的博客 1165

丹尼斯·里奇:C语言之父,UNIX的奠基人

《计算机名人堂》第二十篇:丹尼斯·里奇

Code_流苏:在代码中寻诗意,在实践中觅真知 2530

卷积神经网络中的自注意力机制(Self-Attention Mechanism)

卷积神经网络中的机制表现为操作,其实现过程与Seq2Seq模型的自注意力机制类似。标准的卷积层是一种局部滤波操作,其输出特征上的任意位置是由对应输入特征的一个邻域构造的,只能捕捉局部特征之间的关系。而自注意力机制通过计算任意两个位置之间的关系直接捕捉远程依赖,而不用局限于相邻点,相当于构造了一个的卷积核,从而可以捕捉更多信息。在卷积网络的自注意力机制中,首先构造输入特征x的键特征fx, 查询特征gx和值特征hx;

AI天才研究院 1499

【CicadaPlayer】av_rescale_q 学习:转换PTS和Duration

参考 av_rescale_q()理解 大神时间基准的总结: AVPacket下的pts和dts以AVStream->time_base为单位(数值比较大),时间间隔就是AVStream->time_base。 大神:多种转换的总结 av_rescale_q用于计算Packet的PTS 如: if (pkt->pts != AV_NOPTS_VALUE) { pkt->pts = av_rescale_q(pkt->pts, m

突围 841

转:软件简洁之美___C语言之父Dennis Ritchie访谈

软件简洁之美——C语言之父Dennis Ritchie访谈Dennis M. Ritchie其人图:C语言之父Dennis M Ritchie(丹尼斯·里奇), C语言之父,UNIX之父。生于1941年9月9日,哈佛大学数学博士。现在,Dennis M. Ritchie 担任朗讯科技公司贝尔实验室 (原AT&T实验室)下属的计算机科学研究中心系统软件研究部的主任一职。1978年Brian W.

woaiawoaia的专栏 783

YOLOv8/v9 遥感图像目标检测实战指南:建筑物检测与变化监测

遥感图像在城市规划、灾害评估、农业监管等领域应用广泛,但传统目标检测方法存在效率低、精度不足、难以适配遥感图像大尺寸、多尺度目标等问题。本文以“建筑物检测与变化监测”为核心,基于DOTA、NWPU VHR-10等公开数据集,系统讲解YOLOv8/v9在遥感图像中的实战流程。从数据获取、格式转换、模型训练优化,到大图切片推理、建筑物变化监测,全程提供可复现的代码与参数配置。通过针对性优化(旋转增强、切片推理等),模型在NWPU VHR-10数据集上mAP50达0.85以上,可适配卫星影像、无人机航拍等多场景

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 519

C语言之父 Dennis M. Ritchie

Dennis M. Ritchie   Dennis M. Ritchie   或称(Dennis; D.M.Ritchie)   其人图片链接:http://www.redhat.com/mirrors/LDP/linuxfocus/common/images/DennisRitchie.gif 摘要:   Dennis M. Ritc...

dianmotang8246的博客 1118

调节桌面图标大小的方法(编程)

如果你对其他操作系统或编程语言有类似的需求,可以根据具体的情况进行相应的调整和搜索相关的库和方法。在编程中,我们可以使用各种桌面应用程序来调节桌面图标的大小。库提供的函数,我们获取了桌面图标的窗口句柄,并使用Windows消息发送方式设置图标的大小。你可以根据自己的需求修改代码中的图标大小值,并在运行代码后观察桌面图标的变化。函数并传入所需的图标大小,这里设置为48x48像素。首先,我们需要使用Python的第三现的方法。首先,我们需要使用Python的第三方库。首先,我们需要使用实现的方法。

CyberFlare的博客 438

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

C语言之父Dennis Ritchie博士逝世

2011年10月17日从新浪微博上看到14日的一条微博: 美国计算机科学家、C语言和Unix共同作者、图灵奖得主丹尼斯·里奇去世,享年70岁。里奇与肯·汤普逊共同发展了C语言——世界上使用最广泛的程序语言之一,他共同创造的Unix系统奠定了Linux和Mac OS X的基础。 2011年10月Steve jobs逝世后没几天Dennis Ritchie也走了,相比Steve jobs的逝世,D

expp的专栏 2074

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

点亮现代编程语言的男人——C语言/UNIX之父Dennis Ritchie

在程序员中,有一位人物的不被人熟知,他的贡献甚至比他自身更要出名。C语言之父,UNIX之父——Dennis MacAlistair Ritchie,一位该被所有程序员记住的男人,向Ritchie先生致敬🫡

无聊人的有趣博客 1682

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

请起立,C语言之父Dennis Ritchie过世

转自:http://club.kdnet.net/dispbbs.asp?id=7840187&boardid=1&page=1&1=1#7840187 昨日,在众多的国际互动论坛上,计算机爱好者们以特有的方式纪念这位编程语言的重要奠基人。许多网友的发帖中没有片言只字,仅仅

春风得意,马蹄仍急;少年豪情,一笑难回。 1252

c语言之父Dennis M Ritchie访谈

Dennis M Ritchie(丹尼斯·里奇), C语言之父,UNIX之父。生于1941年9月9日,哈佛大学数学博士。 现在,Dennis M. Ritchie 担任朗讯科技公司贝尔实验室 (原AT&T实验室)下属的计算机科学研究中心系统软件研究部的主任一职。 1978年Brian W. Kernighan和Dennis M. Ritchie出版了名著《C程序设计语言(The C Program

Muzi专栏 4442

我们从UNIX之父Dennis Ritchie​身上学到了什么

我们大家都熟知的UNIX之父,同时也是C语言支之父Dennis Ritchie在上周离开了大家。但是,他对计算机科学及相关领域的的影响之大,甚至可与计算机之父图灵以及最近去世的乔布斯齐名(虽然会有一些争议,但历史告诉我们的确就是这样。) UNIX,是一个强大的多用户、多任务操作系统,支持多种处理器架构。UNXI是这样发展而来的,当时UNIX开发者之一的Ken Thompson开发了...

avbcg3867的博客 186

反思:乔布斯和丹尼斯·里奇的去世 C语言之父Dennis Ritchie辞世

C语言发明人之一 Dennis Ritchie 北京时间10月13日上午消息,据国外媒体报道,美国著名计算机专家、C语言发明人之一Dennis Ritchie已于10月9日去世,享年70岁。 Dennis Ritchie生于1941年9月9日。他发明了包括C语言在内的多种

洗剑江边 1794

向C语言之父—丹尼斯·里致敬

丹尼斯·里奇被誉为“C语言之父”,“UNIX操作系统之父”。曾担任朗讯科技公司贝尔实验室下属的计算机科学研究中心系统软件研究部的主任一职。1978年与布莱恩·科尔尼干(Brian W. Kernighan)一起出版了名著《C程序设计语言(The C Programming Language)》,现在此书已翻译成多种语言,成为C语言方面最权威的教材之一。 “在互联网上,几乎所有东西都会使用C语言和Unix操作系统。”派克在接受《连线》杂志采访时说道。“浏览器是用C语言写成的;Unix内核是用C语言写

iqifenxia的博客 1555
上一篇: 公钥密码系统及RSA公钥算法
下一篇: 深入了解C语言(函数的参数传递和函数使用参数的方法)
Micro_lee
博客等级 码龄22年 381粉丝 429原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值