A. 计算机所有的编程语言都有哪些
ALGOL (also under FORTRAN)
Atlas Autocode
ALGOL 60
Simula (see also Simula based languages)
ALGOL 68
Burroughs Extended ALGOL
ALGOL W
Pascal
Ada
SPARK
Turbo Pascal
Object Pascal (Delphi)
Free Pascal (FPC)
Kylix (same as Delphi, but for Linux)
Euclid
Concurrent Euclid
Turing
Turing Plus
Object Oriented Turing
Mola-2
Mola-3
Oberon (Oberon-1)
Oberon-2
Component Pascal
Objective Mola-2 (also under Objective-C and Smalltalk)
CPL
BCPL
B
C
tcsh (also under sh)
Alef
Limbo
Coyote
C++
Java
Groovy
Join Java
J#
Processing
X10
C#
Windows PowerShell (also under DCL, ksh and Perl)
C--
D
ColdFusion
eC (Ecere C)
LPC
Pike
Objective-C (also under Smalltalk)
Objective Mola-2 (also under Mola-2 and Smalltalk)
PCASTL (also under Lisp)
Perl
Windows PowerShell (also under C#, DCL and ksh)
S2
PHP
PDL (also under APL)
QuakeC
MCPL
APL
A+
Glee
J (also under FL)
K (also under LISP)
NESL
PDL (also under Perl)
BASIC (also under FORTRAN II)
Amiga Basic
AMOS BASIC
BASIC Stamp
BASIC09
Basic4GL
BlitzBasic
Blitz3D
BlitzMax
BlitzPlus
Business Basic
Caché Basic
COMAL
DarkBASIC
Euphoria
PlayBASIC
PowerBASIC
Quickbasic
QBasic
Liberty BASIC
Just BASIC
Run BASIC
RealBasic
thinBasic
TI-BASIC
TrueBASIC
Visual Basic
VBScript
Visual Basic for Applications (VBA)
Visual Basic .NET
YaBasic
COBOL
DIBOL
WATBOL
MS-DOS Batch files
Winbatch
CLIST
IBM Job Control Language (JCL)
COMIT
SNOBOL
Icon
Unicon
Lua
DCL
Windows PowerShell (also under C#, ksh and Perl)
FP (Function Programming)
FL (Function Level)
J (also under APL)
FORTH
InterPress
PostScript
Joy
Factor
Cat
RPL (also under Lisp)
Fortran
FORTRAN II
BASIC (see also BASIC based languages)
FORTRAN IV
PORTRAN
FORTRAN 66
FORTRAN 77
Fortran 90
Fortran 95
F
Fortran 2003
Ratfor
WATFOR
WATFIV
FORMAC
ALGOL (see also ALGOL based languages)
HyperTalk
AppleScript
Revolution
JOSS
CAL
TELCOMP
FOCAL
MUMPS
Caché ObjectScript
Lisp
AutoLISP
Common Lisp
Emacs Lisp
K (also under APL)
Logo
Nu programming language
RPL (also under Forth)
S
R
PCASTL (also under ALGOL)
Scheme
Guile
Pico
T
SASL
Kent Recursive Calculator
Miranda
Haskell
ML
Standard ML (SML)
Alice
Caml
Objective Caml (OCaml)
F#
MCPL (also under BCPL)
PL/1
PL/M
PL/M-86
PL/C
REXX
SP/k
Prolog
PROLOG II, III, IV
CLP(R), CLP(FD)
Mercury
Erlang
Today
BuildProfessional
Sh
bash
tcsh (also under C)
ksh
Windows PowerShell (also under C#, DCL and Perl)
ed
sed
awk
perl (also under C)
SETL
ABC
Python
Boo
Eiffel
Sather
Ubercode
Simula (also under ALGOL 60)
C++ (also under C)
Smalltalk
Objective-C (hybrid of C and Smalltalk)
Objective Mola-2 (hybrid of Mola-2 and Smalltalk, following Objective-C blueprint)
Ruby
Self
JavaScript (originally LiveScript)
ActionScript
JavaScript OSA
ECMAScript
JScript
Haxe
NewtonScript
Io
Slate
BETA
Assembly
CORAL
Corn
Curl
LabVIEW
Progress
REFAL
Seed7
Tcl
TECO
TUTOR
不断增加中
B. 希伯来语翻译是什么
Hebrew。
希伯来语(עִבְרִית)是犹太民族的语言,以色列国通用语言,为世界上较为古老的语言之一。“希伯来”意为“渡河而来”,属于闪含语系闪米特语族的一个分支,没有元音字母,只有22个辅音字母,其文字从右往左书写。许多以色列文学作品和文献都是用希伯来语写出来的,主要文献保留在《死海古卷》和大量宗教法典及文献之中。
相关信息:
希伯来语共有二十二个辅音字母,没有元音字母,拼写的时候用四个辅音字母Alef、He、Vav、Yod当作元音来拼写单词,也就是说这四个辅音字母Alef、He、Vav、Yud身兼两职,既做辅音字母又做元音字母,这四个字母也同样可以互相组合成为复合元音。现代的希伯来语拼写是相当规则和准确的。
在当今以色列以完整拼写法“Ktiv male”为主,有时文中也夹杂使用加点拼写法“Ktiv menukad”字母加点表示元音,目的是使单词发音更加清晰,及纯辅音拼写法“Ktiv haser”拼写时只使用辅音不使用元音。
目的是使书写更加快捷简便,一些常用的单词如לא(/lo/,不),אמא(/ima/,妈妈)等等,因为人们都知道这些常用的单词怎样发音拼写时几乎只用纯辅音拼写法。
C. 计算机编程语言中最基础的一种语言是哪一种
c语言程序设计
C语言的发展过程
C语言是在70年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合着了着名的“THE C PROGRAMMING LANGUAGE”一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C 语言标准,于一九八三年发表。通常称之为ANSI C。
当代最优秀的程序设计语言
早期的C语言主要是用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。成为当代最优秀的程序设计语言之一。
C语言的特点
C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。
C语言版本
目前最流行的C语言有以下几种:
·Microsoft C 或称 MS C
·Borland Turbo C 或称 Turbo C
·AT&T C
这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。
你最好是买一本由谭浩强编写的"高级语言程序设计",如果你要上网学的话,在网络上也能搜索到.
回答者: - 10-13 14:33
C语言是在70年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合着了着名的“THE C PROGRAMMING LANGUAGE”一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C 语言标准,于一九八三年发表。通常称之为ANSI C。
当代最优秀的程序设计语言
早期的C语言主要是用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。成为当代最优秀的程序设计语言之一。
C语言的特点
C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。
C语言版本
目前最流行的C语言有以下几种:
·Microsoft的VisualC++
·Borland Turbo C 或称 Turbo C
·AT&T C
这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。
回答者: - 10-13 14:34
C语言是一种通用的程序设计语言,由于其功能非常强大,因此可以用来完成一些非常复杂的工作.很多操作系统都是用C语言编写的,例如:UNIX,MS-DOS,
Microsoft Windows,Linux 等.C语言具有高效,灵活,功能丰富,表达力强和移植性好等特点.
回答者: - 10-13 15:40
C语言的发展史和演变史就不多说了!
首先C语言是属于高级语言(在这之前有机器语言,汇编语言)
其次C语言的特点是面向结构
再次它执行的特点是指至顶向下逐行
执行!
D. 谁知道计算机的所有编程语言的名称
Java PowerBuilder VC/C/C++(包括VC、VC++、C、C++) Delphi C++ Bulider Net VisualBasic/Basic 汇编语言 perl、javascript、vbscript ASP JSP CGI
XML HTML PHP SQL DB2 Oracle Access Sybase Foxpro
E. ayin希伯来语是什么意思
ayin希伯来语是希伯来语第十六个字母,表示艾因;小土。
希伯来语共有二十二个辅音字母,没有元音字母,拼写的时候用四个辅音字母Alef、He、Vav、Yod当作元音来拼写单词,也就是说这四个辅音字母Alef、He、Vav、Yud身兼两职,既做辅音字母又做元音字母,这四个字母也同样可以互相组合成为复合元音。现代的希伯来语拼写是相当规则和准确的。
语法介绍
希伯来语语法是部分分析式的,使用前置词而非文法格来表达如与格、离格和宾格这样的形式。但是屈折在动词和名词的形成中扮演了决定性角色。比如,名词有一个构造状态,叫做“smikhut”,用来指示“属于”关系:这是更加曲折语言的属格的逆反。
处在smikhut的词经常用连字号hyphen合并起来。在现代讲话中,这个构造的使用有时同意思为“of”的前置词“shel”是可互换的。但是在很多情况下古老的变格形式被保留了(特别是在习惯用语和类似情况下),并且“人称”前接词被广泛的用来“变格”前置词。
F. 所有编程语言名称有多少。分别是什么
没有所谓简单,也没有所谓难,只看你对它是不是有兴趣。
有兴趣就简单,没有兴趣就难,甚至是超难。
就现在计算机专业有可能接触到的语言来说:
C语言(C++语言)是基础,谁都得学,如果你能学精,那就牛了。
汇编语言应该是非常枯燥(难)的,全是非常底层的东西,以前在CSDN看到一句话:万般皆下品,唯有汇编高。
JAVA语言的就业市场应该非常不错,它向下细分为JAVA开发和JavaScript开发。
JAVA要想学好、用好它,需要很多其他的知识,比如Linux操作系统,比如各种框架的使用,甚至是框架的原理;
JavaScript语法简单,但是实际情况就是需要用这种简单的语法,去实现复杂的界面效果,也是能让人头痛不已的。
PHP听说比JAVA好学一点,因为他的代码过后灵活,也就是说不是太严谨。
C#语言是微软主推的,因为C++实在让人头痛,于是整出来这么个东西。
其他的比如Pascal语言(Delphi),PowerBuilder,很少有人学了,用来代替C++语言,当做入门还行,学精之后用它找工作,就算了吧。
上面都是现在能查到很多资料,或者是我接触过的,再有其他的一些编程语言,我只是听说,现在让我写名字都写不出来了,他们各有各的不同应用场景,因为不了解,也就不啰嗦了。
G. 以色列语言是哪种
以色列语言是希伯来语。
希伯来语是以色列国通用语言,为世界上较为古老的语言之一。“希伯来”意为“渡河而来”,属于闪含语系闪米特语族的一个分支,没有元音字母,只有22个辅音字母,其文字从右往左书写。许多以色列文学作品和文献都是用希伯来语写出来的,主要文献保留在《死海古卷》和大量宗教法典及文献之中。
希伯来语的拼写规则
希伯来语共有二十二个辅音字母,没有元音字母,拼写的时候用四个辅音字母Alef、He、Vav、Yod当作元音来拼写单词,也就是说这四个辅音字母Alef、He、Vav、Yud身兼两职,既做辅音字母又做元音字母,这四个字母也同样可以互相组合成为复合元音。现代的希伯来语拼写是相当规则和准确的。
H. 请问以色列的通用语言是
以色列的通用语言:希伯来语。
希伯来语是犹太人民族语言,以色列通用语言,为世界上较为古老的语言之一。“希伯来”意为“渡河而来”,属于闪含语系闪米特语族的一个分支,没有元音字母,只有22个辅音字母,其文字从右往左书写。
许多希伯来文学作品和文献都是用希伯来语写出来的,主要文献保留在《死海古卷》和大量犹太教以及基督教法典及文献之中。
希伯来语共有二十二个辅音字母,没有元音字母,拼写的时候用四个辅音字母Alef、He、Vav、Yod当作元音来拼写单词,也就是说这四个辅音字母Alef、He、Vav、Yud身兼两职,既做辅音字母又做元音字母,这四个字母也同样可以互相组合成为复合元音。现代的希伯来语拼写是相当规则和准确的。
在当今以色列以完整拼写法“Ktiv male”为主,有时文中也夹杂使用加点拼写法“Ktiv menukad”字母加点表示元音。
目的是使单词发音更加清晰,及纯辅音拼写法“Ktiv haser”拼写时只使用辅音不使用元音,目的是使书写更加快捷简便,一些常用的单词如לא(/lo/,不),אמא(/ima/,妈妈)等等,因为人们都知道这些常用的单词怎样发音拼写时几乎只用纯辅音拼写法。
(1)Ktiv male(完整拼写法),用四个辅音字母Alef, He, Vav, Yud当作元音来拼写单词,为当今希伯来语最主要最常用的拼写法。
(2)Ktiv menukad(加点拼写法),字母加点表示元音,主要用于教导希伯来语初学者准确发音。
(3)Ktiv haser(纯辅音拼写法)拼写时只使用辅音不使用元音。
I. 求大神中文翻译希伯来语
希伯来语是犹太人的民族语言,是世界上最古老的语言之一。“希伯来”意为“渡河而来的人”,它属于闪含语系闪米特语族的一个分支,没有元音字母,只有22个辅音字母,其文字从右往左书写。许多文学作品和文献是用希伯来语写出来的,今日则主要保留在基督教《圣经》、《死海古卷》和大量犹太教法典及文献之中。
希伯来语称元音为tnu'ot (תְּנוּעוֹת)。这些元音的正字法表示叫做Ktiv menukad。以色列希伯来语有5个元音音位,由下列Niqqud(加点)符号表示。
希伯来语共有二十二个辅音字母,没有元音字母,拼写的时候用四个辅音字母Alef, He, Vav, Yod当作元音来拼写单词,也就是说这四个辅音字母Alef, He, Vav, Yud身兼两职,既做辅音字母又做元音字母,这四个字母也同样可以互相组合成为复合元音。现代的希伯来语拼写是相当规则和准确的。
在当今以色列以完整拼写法"Ktiv male"为主,有时文中也夹杂使用加点拼写法“Ktiv menukad”字母加点表示元音,目的是使单词发音更加清晰,及纯辅音拼写法"Ktiv haser"拼写时只使用辅音不使用元音,目的是使书写更加快捷简便,一些常用的单词如לא (/lo/,不), אמא (/ima/, 妈妈), 等等,因为人们都知道这些常用的单词怎样发音拼写时几乎只用纯辅音拼写法
(1)"Ktiv male"(完整拼写法),用四个辅音字母Alef, He, Vav, Yud当作元音来拼写单词,为当今希伯来语最主要最常用的拼写法。
(2)“Ktiv menukad”(加点拼写法),字母加点表示元音,主要用于教导希伯来语初学者准确发音
(3)"Ktiv haser"(纯辅音拼写法)拼写时只使用辅音不使用元音。
希伯来语语法是部分分析式的,使用前置词而非文法格来表达如与格、离格和宾格这样的形式。但是屈折在动词和名词的形成中扮演了决定性角色。比如,名词有一个构造状态,叫做“smikhut”,用来指示“属于”关系: 这是更加曲折语言的属格的逆反。处在smikhut的词经常用连字号hyphen合并起来。在现代讲话中,这个构造的使用有时同意思为“of”的前置词“shel”是可互换的。但是在很多情况下古老的变格形式被保留了(特别是在习惯用语和类似情况下),并且“人称”前接词被广泛的用来“变格”前置词。
希伯来文缺乏形容词,因此他们在描写的过程中就用比喻的方式,比如:你的爱情比酒更美;你的唇好像一条朱红线;我的良人在男子中,如同苹果树在树林中。
希望我能帮助你解疑释惑。
J. 一个好的程序员至少应该具备哪些条件
楼上的几位显然误会我的意思了,我并不是说不应当写文档加注释注重团队精神,看看下面的一篇文章,那位三天就写出UNIX的他需要写文档注释和团队精神吗,他用不着。哪个高手没有一点傲气和自信,他之所以敢对用户说:拿到你想要的,然后滚蛋,你已经很幸运了!是因为他有这个资本。天才本就不循规蹈矩,那样他就不叫天才了。
MIT BBS上说微软电话面试的一道题就是“Who do you think is the best coder,
and why?”。我觉得挺有意思的,也来凑个热闹。排名不分先后。
Bill Joy, 前任Sun的首席科学家,当年在Berkeley时主持开发了最早版本的BSD。他还
是vi和csh的作者。当然,Csh Programming Considered Harmful 是另一个话题乐。据
说他想看看自己能不能写个操作系统,就在三天里写了个自己的Unix, 也就是BSD的前
身。当然是传说了,但足见他的功力。另一个传说是,1980年初的时候,DARPA让BBN在
Berkley Unix里加上BBN开发的TCP/IP代码。但当时还是研究生的B伯伯怒了,拒绝把BBN
TCP/IP加入BSD,因为他觉得BBN的TCP/IP写得不好。于是B伯伯出手了,端的是一箭封
喉,很快就写出了高性能的伯克利版TCP/IP。当时 BBN和DARPA签了巨额合同开发TCP/IP
Stack,谁知他们的代码还不如一个研究生的好。于是他们开会。只见当时B伯伯穿
个T-shirt出现在会议室(当时穿T-shirt不象现在,还是相当散漫的哈)。只见BBN问:你
怎么写出来的?而B伯伯答:简单,你读协议,然后编程就行了。最令偶晕倒的是,B伯
伯硕士毕业后决定到工业界发展,于是就到了当时只有一间办公室的Sun, 然后他就把
Sparc设计出来乐。。。象这种软硬通吃的牛人,想不佩服都不行的说。据Bill Joy的同
事说,一般开会的时候B伯伯总是拿一堆杂志漫不经心地读。但往往在关键之处,B伯伯
发言,直切要害,提出漂亮的构想,让同事们彻底崩溃。对了,他还是Java Spec和JINI
的主要作者之一。
John Carmack,ID Software的founder和Lead Programmer。上个月和一个搞图形的师兄
聊天,他竟然不知道John Carmack, 也让偶大大地晕了一把。不过也许搞研究的和搞实
战的多少有些隔吧。想必喜欢第一人称射击游戏的都知道J哥哥。90年代初只要能在PC
上搞个小动画都能让人惊叹一番的时候,J哥哥就推出了石破天惊的Castle Wolfstein,
然后再接再励,doom, doomII, Quake...每次都把3-D技术推到极限。J哥哥的简历上说
自己的专长是"Exhaust 3-D technology",真是牛人之言不我欺的说。做J哥哥这样的人
是很幸福的,因为各大图形卡厂家一有了新产品就要向他“进贡"
,不然如果他的游戏不支持哪种卡,哪种卡基本就会夭折乐。当初MS的Direct3D也得听
取他的意见,修改了不少API。当然,J哥哥在结婚前十数年如一日地每天编程14小时以
上,也是偶们凡人望尘莫及的。对了,J哥哥高中肆业(?),可以说是自学成才。不过
呢,谁要用这个例子来为自己学习不好辩护,就大错特错了。那 Leonardo Da Vinci还
是自学成才呢(人是私生子,不能上学)。普通人和天才还是有区别的。对了,其实偶们
叫“达分奇”是相当不对的,因为Vinci是地名,而Da Vinci就是从Vinci来的人的意
思。换句话说,Leonardo Da Vinci就是“从Vinci来的Leonardo”的意思。叫别
人“Da Vinci”就不知所谓乐。嗯,扯远了,打住。
David Cutler,VMS和Windows NT的首席设计师,去微软前号称硅谷最牛的kernel开发
员。当初他和他的手下在微软一周内把一个具备基本功能的bootable kernel写出来,然
后说:“who can't write an OS in a week?",也是牛气冲天的说。顺便说一句,D爷
爷到NT3.5时,管理1500名开发员,自己还兼做设计和编程,不改coder本色啊。
D爷爷天生脾气火爆,和人争论时喜欢双手猛击桌子以壮声势。 日常交谈fuck不离口。
他面试秘书时必问:"what do you think of the word 'fuck'?" ,让无数美女刹羽而
归。终于有一天,一个同样火爆的女面对这个问题脱口而出:"That's my favorite
word"。于是她被录取乐,为D爷爷工作到NT3.5发布。
Don Knuth。高爷爷其实用不着偶多说。学编程的不知道他就好像学物理的不知道牛顿,
学数学的不知道欧拉,学音乐的不知道莫扎特,学Delphi的不知到 Anders Hejlsberg,
或者学Linux不知道Linus Torvalds一样,不可原谅啊。为了让文章完整,就再罗唆几句
吧。高爷爷本科时就开始给行行色色的公司写各种稀奇古怪的编译器挣外快了。他卖给别
人时收一两千美元,那些公司拿了code,加工一下卖出去就是上万上十万。不过也没见高
爷爷不爽过,学者本色的说。想想那可是60年代初啊,高爷爷写编译器写多了,顺带就搞
出了个 Attribute Grammar和LR(k),大大地造福后人啊。至于高爷爷在CalTech的编程比
赛(有Alan Kay得众多高高手参加)总是第一,写的Tex到86年就code freeze,还附带2^n
美分奖励等等都是耳熟能详的,偶就不饶舌乐。
顺便说一下,高老大爷是无可争议的写作高手。他给Concrete Mathematics 写的前言可
谓字字铿锵,堪为前言的典范。他的技术文章也是一绝,文风细致,解释精当,而且没
有学究气,不失轻快跳脱。记得几年前读Concrete Mathemathics,时不时开怀大笑,让
老妈极其郁闷,觉得我nerdy到家,不可救药。其实呢,子非鱼,安知鱼之乐,更不知那
完全是高爷爷的功劳。说到写作高手,不能不提Stephen A. Cook。他的文章当年就被我
们的写作老师极力推荐,号称典雅文风的样本。库爷爷一头银发,身材颀长,总是面带
谦和的微笑,颇有仙风道骨,正好和他的仙文相配的说。
高爷爷其实还是开源运动的先驱。虽然他没有象Richard Stallman那样八方奔走,但他
捐献了好多作品,都可以在网上看到,比如着名的Mathematical Writing,MMIXWare,
The Tex Book等,更不用说足以让他流芳百世的Tex乐。
Ken Thompson,C语言前身B语言的作者,Unix的发明人之一(另一个是Dennis M. Riche
老大,被尊为DMR),Belle(一个厉害的国际象棋程序)的作者之一, 操作系统Plan 9的主
要作者(另一个是大牛人Rob Pike,
前不久被google挖走了)。Ken爷爷也算是计算机历史上开天辟地的人物了。1969年还是
计算机史前时代,普通人都认为只有大型机才能运行通用的操作系统,小型机只有高山
仰止的份儿。至于用高级语言来写操作系统,更是笑谈。Ken爷爷自然不是池中物,于是
他和DMR怒了,在1969年到1970间用汇编在PDP-7上写出了UNIX的第一个版本。他们并不
知道,一场轰轰烈烈的UNIX传奇由此拉开了序幕。Ken爷爷在1971年又把Unix用C重写,
于是C在随后20年成就了不知多少豪杰的梦想和光荣。
Ken爷爷还有段佳话: 装了UNIX的PDP-11最早被安装在Bell Lab里供大家日常使用。很
快大家就发现Ken爷爷总能进入他们的帐户,获得最高权限。Bell
Lab里的科学家都心比天高,当然被搞得郁闷无比。于是有高手怒了,跳出来分析了UNIX
代码,找到后门,修改代码,然后重新编译了整个UNIX。就在大家都以为“这个世界清
净了”的时候,他们发现Ken爷爷还是轻而易举地拿到他们的帐户权限,百思不解后,只
好继续郁闷。谁知道这一郁闷,就郁闷了14年,直到Ken爷爷道出个中缘由。原来,代码
里的确有后门,但后门不在Unix代码里,而在编译Unix代码的C编译器里。每次C编译器
编译UNIX的代码,就自动生成后门代码。而整个Bell Lab的人,都是用Ken爷爷的C编译
器。
(6)Rob Pike, AT&T Bell Lab前Member of Technical Staff ,现在google研究操作系
统 。罗伯伯是Unix的先驱,是贝尔实验室最早和Ken Thompson以及Dennis M. Ritche开
发 Unix的猛人,UTF-8的设计人。他还在美国名嘴David
Letterman的晚间节目上露了一小脸,一脸憨厚地帮一胖子吹牛搞怪。让偶佩服不已的
是,罗伯伯还是1980年奥运会射箭的银牌得主。他还是个颇为厉害的业余天文学家,设
计的珈玛射线望远镜差点被NASA用在航天飞机上。他还是两本经典,The Unix
Programming Environment 和 The Practice of Programming 的作者之一。如果初学者
想在编程方面精益求精,实在该好好读读这两本书。它们都有中文版的说。罗伯伯还写
出了Unix下第一个基于位图的窗口系统,并且是着名的blit终端的作者。当然了,罗伯
伯还是号称锐意革新的操作系统,Plan9,的主要作者。可惜的是,Plan9并没有引起多
少人的注意。罗伯伯一怒之下,写出了振聋发聩的雄文 Systems Software Research is
Irrelevant,痛斥当下系统开发的不思进取,固步自封的弊病。虽然这篇文章是罗伯伯
含忿出手,颇有偏激之词,但确实道出了系统开发的无奈:开发周期越来越长,代价越
来越大,用户被统一到少数几个系统上,结果越来越多的活动是测量和修补,而真正的
革新越来越少。
就在罗伯伯郁闷之极的时候,google登门求贤来乐。如果说现在还有一家大众公司在不
遗余力地把系统开发推向极致的话,也就是google乐。随便看看google的成果就知道
了。具有超强容错和负载平衡能力的分布式文件系统GFS
(现在能够用100,000台廉价PC搭起一个巨型分布系统,并且高效便宜地进行管理的系统
也不多哈),大规模机器学习系统(拼写检查,广告匹配,拼音搜寻。。。哪个都很牛的
说),更不用说处理海量并行计算的各式google服务了。Rob在System Software
Research is Irrelevant里萧瑟地说现在没有人再关心系统研究的前沿成果了。想不到
他错了,应为google关心。google网络了大批功成总是试图吸取系统研究的最新成果。
想必Rob Pike在google很幸福。愿他做出更棒的系统。
Dennis M. Ritchie, 既然Ken Thompson是我的偶像,新闻组上人称DMR的Dennis M.
Ritchie自然也是,毕竟两人共同缔造了UNIX,而Dennis几乎独力把C搞大(当然,C的前
身是B,而B是Ken Thompson一手做出来的)。两人1983年分享图灵奖,是有史以来少数几
个因工程项目得奖的工程师(本来是唯一的一对儿,但Alan Kay才因为SmallTalk得奖,
所以就成了唯二的乐) 一个人一生能做出一个卓越的系统已经不易,DMR的C和UNIX长盛
不衰近30年,至今生机勃勃,DMR此生可以无憾的说。
D爷爷也算有家学渊源:他老爸在AT&T贝尔实验室工作了一辈子,并在电路设计方面卓有
成就,还出了本颇有影响的书The Design of Switching Circuits,据说在交换理论和
逻辑设计方面有独到的论述。当然,D爷爷和他老爸是不同时代的人:他老爸的研究成
形于晶体管发明之前,而D爷爷的工作离了晶体管就玩儿不转乐。:-D
不要看D爷爷搞出了C,其实他最爱的编程语言是Alef,在Plan9上运行,支持并行编程。
Alef的语法和C相似,但数据类型和执行方式都和C大大不同。说到语言,D爷爷对后来
人有非常中肯的建议:抱着学习的目的来开发你自己的语言,不要冀望于它被众人接
受。这个建议不光对语言开发有用,也适用于其它大型系统的开发。别的不说,DMR后来
领导自己的团队在1995年和1996分别推出了Plan9和Inferno操作系统,又用多少人知道
呢?其实,D爷爷当初也没想过C会风行世界。他开发C的初衷和Eric S. Raymond
在Cathedral and Bazaar里阐述的一样,就是要消除自己对现有工具的不爽之处。谁
知D爷爷无心插柳,C竟然受到众多程序员的狂热拥戴,连D爷爷自己都大惑不解。在一次
采访中D爷爷说大概那是因为C的抽象程度碰巧既满足了程序员的要求, 又容易实现。当
然C一度是Unix上的通用语言也是原因。但不管怎么说,D爷爷对编程语言出色的审美意
识奠定了C广为流传的基础。
最后八卦一下。D爷爷的业余爱好和NBA大牛Karl Malone一样:开卡车。不过D爷爷更喜
欢开NASCAR,而KM独爱巨无霸。J D爷爷自称心中不供偶像,如果一定要说一个,那就
是Ken Thompson了。现在Ken爷爷退休当飞机教练去了,而D爷爷当了贝尔实验室系统开
发部的头,整日忙于开支票。他俩合作20年,屡屡创造历史。这段令人神往的佳话,也
就长留你我心中乐。
P.S., 很多人都以为Brian W. Kernighan是C的作者。其实BWK只是写了那本经典K&R C。
据D爷爷说,他,Ken, 和Kernighan三人中,Kernighan最能写文章,他次之,而Ken写
得最少;但说到编程,Ken爷爷才是当之无愧的老大。
Edsger Wybe Dijkstra, 对,就是E.W. Dijkstra. 一提到EWD,很多人就会想起找最短
路径的Dijkstra Algorithm,就好像一提到Sir. Tony Hoare,就想起Quick Sort一样。
其实这些个算法不过是两个牛人在他们职业生涯中最琐碎的贡献。比如Dijkstra算法,
无非是戴爷爷在1956年为了展示新计算机
ARMAC的计算能力,初试身手的成果,属于他的算法处女作。据戴爷爷自述,他搞出最
短路径算法的时候连纸笔都没用。当时他和他老婆在阿姆斯特丹一家咖啡厅的阳台上晒
太阳喝咖啡,突然就把这个算法想出来乐。而且当时的算法研究还比较原始,牛人们忙
着用计算机搞数值计算,对离散算法不屑一顾。那时连一个象样的专注于离散算法的专
业期刊都没有。戴爷爷于是推迟发表这个算法。直到1959年,他才把这个算法发表
在Numerische Mathematik的创刊号上,权为捧场。:-)
EWD在多个领域牛气冲天,端的是理论和编程两手硬的高手。只不过他的很多工作比较
深刻,学校的老先生们觉得本科生接受不了,不给本科生讲而已。
戴爷爷大概因为最短路径算法一战成名,于是有人请他参加另一台计算机X1的设计工
作,并且把设计实时中断系统的任务派给了他。现在看来实时中断也许不算什么,但要
知到,X1前根本就没有实时中断的概念。实现它简直就是一场豪赌。戴爷爷起初还不情
愿,但经不住项目负责人Bram和Carel的轮番 “吹捧”:我们知道实时中断让您工作变
得非常困难,但象您这样的牛人肯定能做出来的说。结果戴爷爷被糖衣炮弹彻底击穿,
接下了这个烫手山芋。两三年后,他不仅搞出了实时中断,还围绕这个写出了自己的博
士论文,顺利戴上博士帽。
让戴爷爷真正成名立万的还是在X1上开发的Algo60,最早的高级语言之一。戴爷爷没日
没夜地工作了8个月,就搞出了Algo60,也因此获得了 1972年的图灵奖。因为Algo60,
戴爷爷发表了一篇石破天惊的文章:Recursive
Programming,于是人们才知道,原来高级语言也可以高效地实现递归,原来从此以后,
所有程序员都不可避免地和戴爷爷发明的一个词(应该说是概念)打交道:堆栈。
而且Algo60还让戴爷爷深入地思考多道程序设计的问题,最终发明了每个系统程序员
都绕不开的概念:semaphore。当然,戴爷爷总是把他发明的概念严格形式化,极具科
学家本色的说。和这些成就想比,他提出的吃饭的哲学家问题,也就没什么好说的了。
说来好笑,当时的大学(忘了哪所了)还是觉得戴爷爷没有受过正统的数学训练,也不是
专门搞数值分析的,所以最后不太情愿地给了他一个教职。这种小挫折并不能妨碍象戴
爷爷这样的牛人创造历史。他一边教数值分析(:-D) ,一边开始开发一个新的操作系
统,并培养计算机科学家。几年后,THE Multiprogramming
System横空出世。THE是第一个支持松散耦合,显式同步的进程并由此使得严格证明系统
没有死锁变得容易的操作系统。可惜戴爷爷任职的系不识货,还强行解散了他的研究小
组(1972年戴爷爷给他的系主任说他得了图灵奖,系主任的第一反应是你们搞计算机就
喜欢乱发奖)。这让戴爷爷相当郁闷,得了抑郁症。在极度郁闷之中,戴爷爷决定用写作
来治疗自己的抑郁症。于是经典就诞生乐:Notes on Structured Programming。戴爷爷
从此被尊为结构化编程的奠基人,而且他的抑郁症也被治好乐。
EWD太牛,结果他的故事也太多。先到这里吧。1973起,他的故事就在美国发生了。
Anders Hejlsberg,微软.NET的首席架构师,编程语言设计和实现的顶尖高手。他一手
做出了 Turbo Pascal, 也是Delphi, J++(尤其是WFC),C#, 和.NET的主要作者。这些作
品的名字足以为他立传。作为一个程序员,我在这样的大师面前实在无语。生子当
如Anders的说。李维的<>里已详细讲述了Anders的传奇故事,我就不用费舌了:
http: //java.mblogger.cn/iexploiter/posts/1505.aspx
Artima上有Anders谈C#的系列访谈。MSDN上有一段Anders导游的录像 。有兴趣可以去看
看牛人的丰采。