第一百二十九章可编写操作系统的语言
林鸿此刻并不知道,实际上,苹果系统的视窗操作界面要先于微软公司的windows发行,微软正是看到苹果的视窗操作系统之后,才立刻紧急召集人手开发的。
后来苹果公司和微软为了这个事情打了很多年的官司,可惜,苹果并没能赢得官司,因为苹果公司也并不是第一个使用视窗系统的。最先研发视窗操作系统的是一个叫做施乐的公司,那是一家伟大的公司,守着宝山却不知道如何将其商业化,苹果ceo乔布斯看到这个系统之后,大为震撼,后来千方百计地从施乐挖走了多技术员,获得了视窗系统编写技术。
当乔布斯得知这个消息之后,大为恼火,因为当时他和比尔盖茨的关系还相当不错,在很多业务上有往来,乔布斯对盖茨说:“比尔,你真是太不厚道了,枉我这么相信你”
于是,苹果将微软告上了法庭。
面对乔布斯的抄袭指控,比尔盖茨耸耸肩,对他说:“我们有一个有钱的邻居,叫施乐,我闯进他们家准备偷电视机的时候,发现你已经把它给盗走了。”
林鸿在私底下自己捣鼓了一会儿之后,便开始正式听授课老师麦克上课,不过听了一会儿,发现自己根本听不懂,对方现在讲的内容,已经是c语言比较靠后的部分了。
于是,林鸿便很明智地选择了自学,这是他一贯的学习方式。
手中的这本教材是全英文的,按照字面意思,这本书的名称就是《c语言编程》。
林鸿已经有了basic和汇编的编程基础,心中知道,这是另外一种编程语言。
他首先从序言看起,序言部分介绍了这门语言的起源诞生,发明的作者以及发展状况。
看完之后,林鸿才意识到,自己即将要学习的这种编程语言,是一种功能非常强大的语言,它既具有高级语言的特点,又有汇编语言的特点。
实际上,c语言的是在b语言的基础上被设计出来的,而b语言是第一个unix操作系统的编写语言。也就是说,c语言是一种可以用来编写操作系统的编程语言。这点basic是无论如何都比不上的。仅仅看到这一点,林鸿就下定决心,一定要学好这门语言。
一看到编写操作系统这件事情,他又不由自主地想起了lus.
“不知道他编写操作系统,是使用哪一种编程语言……”
将脑海中的杂念抛开,林鸿开始集中精神阅读手中的教材。
这本教材写得非常系统,比他之前所看的红皮书中介绍basic都要更加详细。
作者在本书的前面就给出了一个“hello_wold!”的范例,让林鸿从一开始就对其有了一个大致的印象。
然后,从最初的基本语法变量开始慢慢开始展开叙述,将得深入浅出,精彩纷呈,与此同时还有很多实例代码可供参考,林鸿很快就沉浸其中。
在林鸿独自看书的时候,亚瑟却一直在他身后观察着他,眼神闪烁若有所思。
很快,麦克就将这节课的基本知识讲完了,然后让大家上机开始自己动手操作,说有不懂的地方,随时可以举手询问。
由于林鸿是新来的学生,麦克对他比较关注,刚才在上课的时候就已经观察到林鸿在自己做自己的事情,当然,他对此并没有任何意见,毕竟这是他们的自由,学生如果不听他讲课,那是他讲的课程太枯燥乏味,无法吸引住学生的注意力。
如果学生觉得老师的讲课对自己毫无帮助,是可以选择不听的,甚至更严重者,还可以向学校提出申请,要求更换老师,如果申请的学生比较多,并且学校也认为这是有必要的,麦克还真的有可能会面临下岗的风险。
“嗨,很高兴见到你,我是麦克,你叫什么名字?”麦克走到林鸿的身边,见他正在专心看书,不由微微点了点头,喜欢学习的学生在哪里都是比较受老师欢迎的。
林鸿将目光从书本上移开,转头看着这位秃顶男人,说道:“我也很高兴见到你,我是stone*林。”
“stone,你是第一次来上课,对吗?”
林鸿点头:“是的”
“你来自哪里?看上去是亚洲人?日本?”
“不,不是。”林鸿连忙摇头,“我是中国人,来自北京,是交换生。”
“噢,是吗?你竟然是来自北京交换生”麦克感到非常惊奇,这里也是有一些华裔学生的,可是很多都是美籍华裔,真正来自北京的学生却非常稀少。
见林鸿没再说话,只是一脸疑惑地看着他,可能担心林鸿会误会他,他连忙说道:
“不好意思,我只是有点意外,没有其他任何意思。我想说,你需要什么帮助吗?”
“帮助?”林鸿犹豫了一下,还真的提出了一个问题:“老师,我想问一下,c语言的编译器在哪里?”
“麦克,你直接叫我麦克就行了。”麦克纠正道,然后他接着问道,“你之前有接触过编程语言吗?”
他之所以这么问,这是因为林鸿问的问题比较关键,如果是初学者,可对编译器这种东西没什么概念。
编译的英文为“compile”,意思是“收集、汇编”,后来根据情境和意思翻译成中文,便是“编译”,有“汇集”和“翻译”的意思。
高级语言的出现完全是为了方便程序员,提高可读性和降低编程的难度,但是对于计算机来说,高级语言就好像是一门外语,直接“说”给它听,它完全不懂你在说什么。
于是便需要利用一个“翻译”,将高级语言翻译成计算机能够理解的机器码,编译器所起到的作用,正是这个中间人,他既能听懂高级语言这门“外语”,又懂计算机的“土著语言”。
当然,翻译其实也有两种不同的类型,一种是“同声传译”,也就是听到“外语”的同时,这个翻译就顺口就翻出来了,边听边说,这种类型的语言被称为“解释型语言”。
另外一种翻译,则是先完整地听你说完,然后再全部将这些内容翻译好,形成一个翻译后的文稿,最后再扔给计算机让他去执行。在这个过程中,翻译可能还会根据计算机这个“土著”的习惯,将翻译稿进行一番整理,让其更加的通顺并且没有什么语法错误,以便能够让“土著”更好地去执行这些任务。这样的语言才是真正的“编译型语言”。
而实际上,basic语言的“翻译”属于前者,而c语言的“翻译”则是后者,只不过目前林鸿并不懂这一层道理,以为这两种语言的翻译过程都差不多。
面对麦克的问题,林鸿点头道:“是的,我学过basic。”
“喔,很不错如果是这样,那你学习c语言也应该会很顺利,虽然它们是两种不同的语言,但是在编程思想上,很多东西是相通的。”麦克微笑着说道。
“编程思想?”林鸿对这个词汇非常陌生。
麦克以为林鸿没有听清楚,毕竟对于国外来的学生来说,很多都有这方面的语言障碍,林鸿是他见过的最容易沟通的国外学生之一,所以他立刻放慢了语速,将这个词汇重复了一遍。
“什么是编程思想?”林鸿问道。
麦克听到他的问题,稍微思考了一下,然后才用自己认为最通俗易懂的方式说道:
“这是个很大的话题,涉及的范围很广。简单的来说,这就如同是我们思考问题的方式,编程思想,就是我们用计算机编程来解决实际问题的思维方式。”
林鸿似懂非懂地点点头。
接着,他们再聊了几句,麦克便将c语言编译器从计算机中启动,然后再大致地给他讲解了一下这个编译器的基本操作,例如保存,修改,执行编译和运行程序,并且,这些操作都有快捷键相对应,可以极大地提高操作速度和效率。
另外,林鸿又问了个问题,他发现这台苹果机竟然也有一个椭圆形的小外设放在右边,连接在机箱上,并且,这个东西和他接待家庭的那个东西还有些不同,上面并不是两个按键,而是只有一个按键。
麦克笑着给他详细解释了一下,说这东西叫“鼠标”,apple-ii在刚开始的时候并没有配备这个,后来才成为了标配。并且,苹果机和pc机的鼠标是不同的,苹果的鼠标只有一个按键,而其他计算机却有两个。
这个时候,有另外一位学生在呼喊着麦克的名字,他便离开了。
这个麦克形象虽然看起来很难男人接近的样子,但是却非常友好和热心,林鸿看得出来,他和其他学生之间相处得很好,他们之间互相开着美国式玩笑,就好像双方是平等的朋友关系。
因为林鸿刚到这里,心中老是会不由自主地拿这些事情和国内的情形进行对比,虽然他只在s中呆了一小段时间,但是却已经基本对s中的教学情况了解得差不多了。他发现,中美两国很多方面存在着非常大的区别。
当然,他现在的还无法判断出哪些是好的,哪些又是不科学的。
林鸿仿佛又回到了第一次学习basic语言的时候,他开始按照教材上的实例代码,一个字符一个字符地敲进去,然后再编译,运行。
显示器上很快就出现了“hello_world!”的字符串。
重要的第一步已经迈出,看着显示器上的结果,林鸿微微一笑,继续阅读其他内容。
变量、数据和运算符、程序设计结构、循环、指针、数组……
林鸿发现,c语言和basic有很大的区别,具有很多basic所不具备的功能,其中有些功能,更接近于汇编语言,涉及到了内存和底层接口的一些操作。林鸿完全被这些内容给吸引住了,犹如海绵一样迅速地吸取着其中的水分。
正当他看得入迷的时候,他突然听到“嘟”地一声在他耳边响起,林鸿对这声音非常熟悉,他知道这是计算机内置喇叭的声音。
林鸿下意识地抬头看了一眼显示器,却非常震惊地发现,显示器中的正中央不知道什么时候出现了一个黑色方框,在这个黑色方框里面,有一行绿色的文字,正是这行文字令他感到震惊不已
“stone,if_you_like_computer,i_can_teach_you.(stone,如果你喜欢计算机,我可以教你)”