不知道该怎么开头,不过开头的几个字都写了,就继续写下去吧。
看过很多以大话开头的书籍,觉得也不怎么样,觉得还没达到大话的层次,本人本着谦虚的精神,暂且以小话开头吧;可能读者看完,觉得连小话都谈不上,先不管这些了;如果读者确实都觉得连小话都谈不上,到时候我再改个名字好了,这样至少也对得起文章的标题。
言归正传,回到主题吧。
以前写过关于c语言的学习资料,发现它真不是容易就能写好的,里面涉及到很多很多的东西;如果是以基础为目的的,那需要描述的就更多了;如果是稍微提高一些的,那么可能可以少写一些字。不过,以c语言的本质出发,实在太复杂了,如果让c语言之父来描述,估计那本书也没能足以表达他所有的精神和思想,毕竟核心思想还是在Dennis Ritchie心里,不过他已经离我们而去了,先默哀一下。
语言都是相通的
c语言,也是一种语言,和我们中国人平时说的中文其实是类似的,只不过一个最终是给机器来理解的,一个是让人来理解的。我不知道哪种应该更复杂,但是,有一点是可以肯定的,是语言它的语法就不会太复杂,否则不要说是笨笨的机器,就是地球上应该是最高级的人类可能都不能很好地理解,如果这样,这种语言的存在价值就需要思考了。"你好",这句话表示的就是个问候语,如果非要细节地分析内部的语法,可以理解成主谓结构吧,"你"是主语,"好"当成谓语吧。"int i = 1;" 理解成定义一个整形变量i; int表示变量类型, 后面跟着变量名,再跟着赋值号=,再跟着一个赋值的数据,最后以分号结束即可。这个结构可以用如下的表达式来表达:
类型 类型名 = 初值;
上面的看起来,不是很复杂,就像理解"你从哪里来?", "我从这里来。"这样的话一样。
为什么需要编译器
写完了int i = 1;之后,机器如何理解呢?当然,没有哪个机器能一下子理解这个。因为,有公司已经把机器的cpu设计成只能理解机器语言的了,那怎么办呢?只能用一种东西将上面的语句翻译成机器指令,传给机器的cpu,机器就能理解并执行了,而,这个东西就是编译器。不过,有人可能会说,我使用了bash终端,我输入ls -l再回车,就可以帮我执行命令?哪里有编译器?
解释器是什么
上面说的那个过程真没用到编译器,而是解释器。其实解释器就做了编译器的事情,首先会解析输入的字符串ls -l, 就像编译器解析int i = 1;这个字符串一样,然后解析其中的语义,最后执行对应的操作。
解释器到底是什么
这个东西真的不用多想,它就是一个经过编译器编译ok的程序而已。
解释器运行程序会比对应编译器编译后的程序运行的慢
说的基本是对的,一般是这样,因为解释器多了一层解释的过程,然后才执行。
结束语
好了,关于解释器和编译器的比较就先到此为止,前言的内容我不想写一些废话,因为多打一句废话也是消耗能量的;
如果有写的有误的地方,敬请指出,可以留言或者发邮箱 511272827@qq.com ,不甚感激。