里奇c语言
① c语言是怎么制造出来的是个机密吗
C语言,是上世纪由美国贝尔实验室的两位大神,丹尼斯·里奇(Dennis MacAlistair Ritchie)和 肯尼斯·蓝·汤普森(Kenneth Lane Thompson)开发的。起因是汤普森没事做的时候,背着老板找了台空闲的小型机pdp-7,编写一个小游戏。(因为当时计算机属于稀缺资源,不能象现在这样随意使用。但这台小型机没有操作系统,由于他就着手给这台机器开发操作系统,也就是Unix操作系统的前身。后来里奇也加入了进来,为了方便写操作系统,由于当时的语言(他们采用的是B语言)功能欠缺,不能满足他们的需求,于是他们就开始对B语言进行改造。最终,修改出了C语言,流行至今。
从中可以看出,C语言并不是机密;当时C语言,Unix操作系统的源码,都是美国各大高校可以拿到的,因为当时的环境是开源。
不过搞笑的是,这个事情的初衷是为了写游戏,玩游戏,结果到了后来,游戏被忘记了;
② 丹尼斯·里奇(C语言之父)的英文介绍 要英文!要长的 不能太短!!!!好的补50分!!急用!!!!!
Dennis MacAlistair Ritchie (born September 9, 1941) is an American computer scientist notable for his influence on C and other programming languages, and on operating systems such as Multics and Unix. He received the Turing Award in 1983 and the National Medal of Technology in 1998. Ritchie was the head of Lucent Technologies System Software Research Department when he retired in 2007.
Born in Bronxville, New York, Ritchie graated from Harvard with degrees in physics and applied mathematics. In 1967, he began working at the Bell Labs' Computing Sciences Research Center.
Ritchie is best known as the creator of the C programming language and a key developer of the Unix operating system, and as co-author of the definitive book on C, The C Programming Language, commonly referred to as 'K/R' or K&R (in reference to the authors Kernighan and Ritchie).
Ritchie's invention of C and his role in the development of Unix alongside Ken Thompson, has placed him as an important pioneer of modern computing. The C language is still widely used today in application and operating system development and its influence is seen in most modern programming languages. Unix has also been influential, establishing concepts and principles that are now well-established precepts of computing. The popular Linux operating system and its tools are descendants of Ritchie's work and the Windows operating systems include Unix compatibility tools and C compilers for developers.
Ritchie has said that creating the C language 'looked like a good thing to do' and that anyone else in the same place at the same time would have done the same thing, though Bell Labs colleague Bjarne Stroustrup, developer of C++, said that "if Dennis had decided to spend that decade on esoteric math, Unix would have been stillborn."
Following the success of Unix, Ritchie continued research into operating systems and programming languages with contributions to the Plan 9 and Inferno operating systems and the Limbo programming language.
In 1983, Ritchie and Ken Thompson jointly received the Turing Award for their development of generic operating systems theory and specifically for the implementation of the UNIX operating system. Ritchie's Turing Award lecture was titled, "Reflections on Software Research."
On April 27, 1999, Thompson and Ritchie jointly received the 1998 National Medal of Technology from President Bill Clinton for co-inventing the UNIX operating system and the C programming language which together have led to enormous advances in computer hardware, software, and networking systems and stimulated growth of an entire instry, thereby enhancing American leadership in the Information Age
Dennis Ritchie is often referred to as "dmr" (his Bell Labs email address) in technical discussion groups.
③ C语言之父——丹尼斯·里奇
人们对里奇的纪念,远不及对乔布斯铺天盖地的悼念。可是,里奇值得人们那样去做。
还是有人出来说了句公道话。
“史蒂夫·乔布斯去世引发了巨大的反响,这当然合情合理。即便影响实际上更为广泛,丹尼斯却不为公众所知”,罗伯·派克说。罗伯是一名在Google工作的程序员,作为业界的传奇性人物,曾经与里奇在着名的贝尔实验室共事20年。
周三晚间,派克在Google+上发表消息称,在与病魔进行长久的抗争后,里奇于上周末在新泽西的家中溘然长逝。虽然在技术圈内引起大量反响,但在主流媒体上,里奇却没有得到同巨大影响相称的悼念。丹尼斯·里奇作为C语言之父,和贝尔实验室资深研究员肯·汤姆森一起使用C语言开发了Unix,当今世界大量依赖的操作系统,其中包括史蒂夫·乔布斯治下的苹果帝国。
“现下互联网基本都在用这两样东西:C语言和UNIX”,派克对《连线》杂志称,“浏览器是用C语言写的。UNIX的内核——基本上是因特网运作的基础——也是用C写的。Web服务器也是用C语言写的,如果不是的话,那就是用Java或者C++写的,两者都是C语言的派生;要不就是Python或者Ruby,用C语言实现的。然后我几乎敢保证,运行这些程序的网络硬件,是用C语言开发的软件驱动的。”
“几乎很难夸大丹尼斯在信息经济基础设施方面无所不在的影响力。”
他补充说,Windows曾经也是用C语言编写,而UNIX同时也支撑了苹果桌面操作系统Mac OS X,以及iPhone与iPad的操作系统iOS。“如果说乔布斯是台前之王,那里奇就是幕后之王。”MIT电气工程与计算机系教授Martin Rinard如此评价道。Rinard也是计算机科学与人工智能实验室的成员。
“乔布斯的过人之处在于其品位独特,打造人们为之着迷并引人注目的产品。而里奇却擅长于开发一些技术人员使用的基础设施,天天被人们使用却不为人知。”
从B语言到C语言
为了更好开发UNIX,丹尼斯·里奇而发明了C语言。最初的UNIX内核使用汇编语言编写,之后他们很快决定要用一种高级语言,让他们更好的驾驭操作系统中的复杂数据。1970年左右,他们尝试使用Fortran,不过没有达到预期目标。接着,在汤姆森创立的B语言基础上,里奇提出了一门新语言
不管你是从哪里听来的消息,B语言得名于汤姆森的妻子Bonnie,抑或是BCPL,一门剑桥于60年代中期开发的语言。
B语言是一种解释性语言——意味着它由一个运行于CPU之上的中间件解释执行——而C却是一门编译语言。它被翻译成机器代码,在CPU上直接执行。即便如此,C当时被认为是一门高级语言。C语言提供了里奇和汤姆森想要的灵活性,却也很快。
关于里奇一直流传的一个笑话是:C语言同时拥有了“汇编语言的强大能力以及...汇编语言的便利性”。换句话说,他承认C语言并不完美,并且十分接近硬件层次。如今C语言被认为是一门低级语言而不是高级语言。不过这个笑话并不公平。C语言提供了真正的数据结构概念,从这个角度来说已经足够高级了。
“当你在编写一个大型程序——比如UNIX——你必须管理好各种各样模块之间的交互:所有用户、文件系统、磁盘、程序执行等等。而有效的管理则需要良好的数据表示,这就是所谓的数据结构”,派克说。
“在没有数据结构组织的情况下,编写一个与UNIX一样一致和优雅的内核基本上是不可能的。需要一个机制组织好数据,而Fortran却不擅长于此。”
在那个时候,写一个操作系统并不多见,这也给了里奇和汤姆森机会,在70年代末把操作系统移植到其它平台。“从此UNIX洪水之门被打开”,派克说,“这全都多亏有了C语言。”
苹果、微软及其他
与此同时,C语言也开始传播到全世界,从贝尔实验室到全世界的大学,也到了微软,一个在80年代异军突起的软件公司。“C语言的开发是一个重大的飞跃,是个很好的折衷...C语言达到了完美的平衡,让你在较高层次高效率开发的同时,却不失去对每处细节的控制”,NVIDIA和贝尔的首席科学家兼斯坦福大学工程系教授Bill Dally说。“它为之后数十年来软件开发定下了基调。”
正如派克指出的那样,C语言内置的数据结构后来发展出面向对象范式,被现代编程语言如C++和Java大量采用。
1973年,里奇发表了关于这门语言的论文,被认为是革命开始的标志。5年后,他和同事布莱恩·克尼汉(Brian Kernighan)发布了C语言的权威着作:《C程序设计语言》。该书最早是克尼汉为C语言编写的教程,后来他拉着丹尼斯一起把书写完。
当派克还在多伦多大学读本科的时候,在一个因病返家的下午里读到了这本书。“那本参考手册相对于其他的手册而言,简直就是清晰和可读的典范。毋庸置疑是一部经典之作。”,他说,“我生病躺床上翻一翻,没想到竟让我忘记了病痛。”
和许多大学生一样,Pike那时已经开始使用C语言了。由于贝尔实验室开始分发UNIX源代码,它逐渐风靡大学校园。此外,UNIX还催生了现代开源运动。这并不是什么言过其实,里奇的影响之大怎么说都不为过。即便里奇在1983年获得的图灵奖和1998年获得的国家技术勋章也不能完全彰显他的贡献。
在克尼汉和派克眼中,里奇是一个少有的孤僻的人。“我和他一同工作了超过20个年头,但还是觉得不是很了解他这个人”,派克说。但这并不是他低调的理由。史蒂夫·乔布斯也是一个孤僻的人,只不过保持低调只使得人们对他的崇拜有增无减。
里奇所处的时代和工作环境与乔布斯千差万别,这也许是他未得到应得纪念的原因。但是,他留下的遗产总有大佬能够明白。“众所周知牛顿说过他是站在巨人的肩膀上”,克尼汉说,“我们都站在丹尼斯的肩膀上。”
④ C语言编程问题
C语言介绍
C语言基本是每个编程人员必学的一面语言,很好掌握,是理解编程的关键。很多编程语言基于其编写或者基于此语言的衍生品编写。
C语言是人机交互的一个基础语言之一,虽然是之一,单一般其实就是唯一。
偶尔用汇编
其他非C的我没见过,理论上是存在的。没有C之前大家用的,有了C之后估计就少了。
有了计算机操作基础,可以学习编程了,推荐从C语言开始学习,使用这本书进行学习《C程序设计语言》,此书是C语言的作者编写就知道是多么的权威了,同时此书有英文版本《C程序设计语言(英文版)》,建议都买了学习,毕竟作为计算机学生,英文不好是不行的,很多国外的先进的东西都是英文的。另外也有一遍习题解答,也同时买了。里面的题目都做一遍,编程水平不会差。如果想继续提高C语言的水平,可以看看其他相关图书,比如《C指针》等一堆。
参考图书:C语言的图书比较多,一般国外的都是精品,国内的基本就算了。一本书很难学好,多读些图书吧。下面也只是冰山一角。还有很多就不一一列举。基本当当四星以上的都可以买了看看。
参考视频学习网站:
1 玩转 C语言 基础课堂
2 C语言/C++学习指南 (语法篇) 入门到精通(打算开发Windows看看,Linux的参考)。
3 C语言也能开发网站(高级课程,而且比较高级,长个见识看看)。
4 计算机专业的课程体系,里面有个C语言程序设计。
参考资料:
1 http://www.cprogramming.com/里有个c-tutorial。
2 高质量C++/C编程指南 林锐 博士
学的更好点的,可以参考github上的C项目代码看看。比较出名的推荐几个:
1 https://github.com/antirez/redis
2 https://github.com/nginx/nginx
可以上网搜索GCC: The Complete Reference等内容查看学习。
上面的内容,如果都学好了,基本算入门,您可以自己学习了,师父领进门,修行靠个人了。
C语言的灵魂-指针
指针
一个变量存放一个变量的地址(A point is a variable that contains the address of a variable)
指针的指针
指针函数
函数指针
很难学,但是希望你学好!
很难学,但是希望你学好!
很难学,但是希望你学好!
如何检验学习效果?
神一样的指针:
int *p;
一个指向整型数据的指针。
int **p;
一个指针的指针,它指向的指针指向一个整型数据。**p 是 int 类型,所以 *p 是int *类型,即*p是一个指向int的指针,所以p是一个指向int的指针的指针。
int *p[10];
一个有10个指针的数组,该指针指向整型数据。p[10] 的类型是 int *,所以 用type 替换 int *,也就是 type p[10],即p中每个元素都是type类型。
int (*p)[10];
一个指向有十个整型数据数组的指针。()是为了当一个整体看待,所以用val替换(*p),上式变为int val[10],所以*p 相当于数组名(即数组的首地址),所以p是一个指向数组(该数组包含10个Int数字)的指针。
int * p(int);
就一个函数(不是函数指针),该函数有一个整型参数,返回值为一个指向整型的指针
int (*p[10])(int);
一个有十个指针的数组,该数组中的指针指向一个函数,该函数有一个整型参数并返回一个整型数。根据p[10]是一个函数指针,所以p中每个元素都是一个函数指针。
int (*p)(int);
定义了一个参数为int,返回值为int的函数指针,函数指针名是p。如果初始化了 p , 则可以通过 p( int ) 调用函数。
代码流程
整个流程要清楚
编码
编译
执行
打包
安装
另外就是看开源项目源码,是否能够完全看懂并修改。
比如Nginx,Redis等
在我们课程系列的操作系统有个GeekOS实验,也可以检验。
GeekOS是不错的检验项目,强烈推荐在校学生仔细研究学习。
这个项目我在读硕士时候做过,2周时间,只能看到项目2,一共7个,都做下来就很了不起了,可以做一个学期,慢慢做。里面有部分汇编代码,汇编也学下。
工作中的实际使用情况
基本不用!
用到的基本是着名的,比如Nginx,Redis等。
自己修改代码的情况不多
基本是C++或者Java,或其他
不过也有很多公司需要根据自身的情况调整某些开源项目代码的,所以可以看看开源代码,或者说认真学习研究一个。在这类公司也有需求。
如果你是嵌入式等行业的就例外了。
总结
好好学,值得你好好学和你的付出。
个人觉得大学生怎么花功夫在此语言上都不为过。
考研用/软考用/很多高级语言的基础/…...
只是为了工作的例外,你可以只学Java,Js等当简单的码农。
掌握了这个,理解其他的都容易些。
致敬:
C语言作者之一Dennis M.Ritchie(丹尼斯·里奇)
丹尼斯·里奇,C语言之父,UNIX之父。
丹尼斯·里奇与肯·汤普逊两人发展了C语言,同时发展了Unix操作系统。
在电脑工业史上占有重要的席位。
欢迎加入程序员的世界,添物科技为您服务。
⑤ C语言编程软件的C语言之父
在众多的国际互动论坛上,计算机爱好者们以特有的方式纪念这位编程语言的重要奠基人。许多网友的发帖中没有片言只字,仅仅留下一个分号“;”。在C语言中,分号标志着一行指令语句的结束,网友们以此来悼念“C语言之父”,美国着名计算机专家丹尼斯·里奇(Dennis Ritchie)所引领的时代悄然远去。
在日益纷繁复杂的程序设计语言王国中,C语言因其简洁、有效、通用的特性而始终占据一席之地。被誉为“C语言之父”,同时也是操作系统Unix之父的C语言发明人之一——丹尼斯·里奇10月9日以70岁之龄辞世。
生于1941年9月9日的丹尼斯·里奇曾在哈佛大学学习物理学和应用数学,1967年他进入贝尔实验室,并曾经担任朗讯技术公司系统软件研究部门的领导人。
1983年,美国计算机协会将当年的图灵奖破例颁给了作为软件工程师的肯·汤普逊与里奇,获奖原因是他们“研究发展了通用的操作系统理论,尤其是实现了Unix操作系统”。并且,美国计算机协会当年还决定新设立一个奖项——软件系统奖,以奖励那些优秀的软件开发者,首个软件系统奖当然也是非他们两人莫属。
尽管通过Unix拿奖拿到手软,但令里奇引起最大关注和反响的则是C语言的问世。1999年,里奇和汤普逊为发展C语言和Unix操作系统一起获得了美国国家技术奖章。
虽然在C语言之后,C++、Java等各式各样计算机高级语言层出不穷,但不少程序员仍旧认为,C语言简洁、高效、灵活的特性令其具有独特魅力。“现在的程序编写朝着越来越冗长庞大的方向发展,而C语言虽然属于相对‘低级’的编程语言,但它的简洁之美是无可替代的。”一位电脑程序员道出了自己格外青睐C语言的原因。
和里奇所创造的C语言一样,Unix系统也同样具有简洁、朴素、小巧的特性。但正如里奇自己所说的那样,“Unix系统是一个简单基本的操作系统,但学会欣赏简洁需要天赋。”而里奇本人,尽管在软件发展史上占有举足轻重的地位,也同样在从事的领域辛勤而低调地耕耘近40年。
⑥ c语言是谁发明的/
C语言的祖先是BCPL语言。 1967年,剑桥大学的Martin Richards 对CPL语言进行了简化,于是产生了BCPL(Basic Combined Pogramming Language)语言。 1970年,美国贝尔实验室的Ken Thompson。以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX操作系统。 在1972年,美国贝尔实验室的D.M.Ritchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。 为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。 1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchie合着 c语言程序设计
了着名的《The C Programming Language》一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准化协会(American National Standards Institute)在此基础上制定了一个C语言标准,于一九八三年发表。通常称之为ANSI C。 K&R第一版在很多语言细节上也不够精确,对于pcc这个“参照编译器”来说,它日益显得不切实际;K&R甚至没有很好表达它所要描述的语言,把后续扩展扔到了一边。最后,C在早期项目中的使用受商业和政府合同支配,它意味着一个认可的正式标准是重要的。因此(在M. D. McIlroy的催促下),ANSI于1983年夏天,在CBEMA的领导下建立了X3J11委员会,目的是产生一个C标准。X3J11在1989年末提出了一个他们的报告[ANSI 89],后来这个标准被ISO接受为ISO/IEC 9899-1990。 1990年,国际标准化组织ISO(International Organization for Standards)接受了89 ANSI C 为I SO C 的标准(ISO9899-1990)。1994年,ISO修订了C语言的标准。 1995年,ISO对C90做了一些修订,即“1995基准增补1(ISO/IEC/9899/AMD1:1995)”。1999年,ISO有对C语言标准进行修订,在基本保留原来C语言特征的基础上,针对应该的需要,增加了一些功能,尤其是对C++中的一些功能,命名为ISO/IEC9899:1999。 2001年和2004年先后进行了两次技术修正。 目前流行的C语言编译系统大多是以ANSI C为基础进行开发的,但不同版本的C编译系统所实现的语言功能和语法规则有略有差别。
⑦ C语言是谁发明的
C语言是“C语言之父”Dennis MacAlistair Ritchie(中文名:丹尼斯·里奇)创造出来的。
C语言是D.M.Ritchie在B语言的基础上创造出来的。C语言的出现经历了以下历程:
在1970年,美国贝尔实验室的 Ken Thompson,以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX操作系统。
1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了UNIX。直到今天,各种版本的UNIX内核和周边工具仍然使用C语言作为最主要的开发语言,其中还有不少继承Thompson和Ritchie之手的代码。
(7)里奇c语言扩展阅读:
丹尼斯·里奇发明出C语言之后,产生了十分强大的社会影响,具体如下:
C语言是使用最广泛的语言之一。C语言的诞生是现代程序语言革命的起点,是程序设计语言发展史中的一个里程碑。
自C语言数兆出现后,以C语言为根基的C++、Java和C#等面向对象语言相继诞生,薯磨租并在各自领域大获成功。但C语言依旧在系统编程、嵌入式编程等领域占据着统治地位。
C语言,这种最有效、最通用的编程语言,就是丹尼斯·里奇开发的,而这还是他在做另一个项目时的副产品。丹尼斯·里奇还和肯·汤普逊一起开发了Unix操作系统,因此,他还是名副其实的Unix之游槐父。