随笔分类 -  程序员基本功——组成、编译

摘要:个人认为编译原理对于一个程序员来说很重要,可能你认为编程的时候用的都是C++、C#、Java等高级语言,至于编译原理懂与不懂并无大碍。其实不然,所谓万变不离其宗,所有高级语言的诞生都是基于最根本的编译原理的。搞懂了编译原理,对于一个程序员的能力提升有着很大的帮助。因为它会让你对编程有更加深刻的理解,有助于你写出质量更高的代码。好废话不多说,切入正题!本文主要说一下编译原理里的文法、正规式、有穷自动机和语法推导树。 文法 文法就是计算机语言的一个严格的规范,有点类似人类语言的语法。就像形容词修饰名词,副词修饰形容词跟动词类似,只不过计算机的文法的标准和规范更加的严格而已。 文法的表达式:... 阅读全文
posted @ 2012-05-09 07:52 刘水镜 阅读(16623) 评论(6) 推荐(6) 编辑
摘要:注意:1 是准并行,不是真正的并行。2 流水线提高的是部件的利用率和指令的平均执行速度,单个指令执行的速度没有提高。 流水线指令的特点:用流水线执行的指令都是相同的操作指令,而且它们可以分成如上图一样若干相同的步骤。 由上图可以清楚的看出,在未使用流水线的情况下,三条指令之间的那些蓝色空白设备都处于空闲状态,这些时间就都浪费掉了。 而采用流水线以后,所用时间由原来的9t缩短到5t,节省了进一半的时间。很大的提高了设备的利用率,缩短了整体的时间,不过此时单个指令执行的时间还是3t。因为流水线不能改变单个指令的时间。 其中Δtj为流水线... 阅读全文
posted @ 2012-04-23 07:49 刘水镜 阅读(1689) 评论(1) 推荐(2) 编辑
摘要:总所周知,计算机内部的所有数都是以二进制的形式存在的。而二进制在计算机里又有多种编码方式——原码、反码、补码等。而在这些编码方式里面用得最多的不是最简单、最直接的原码而是补码。这是为什么呢?想搞懂这个问题首先得明白什么是原码、反码以及补码,如果你对他们还不太了解,那就先看看我另一篇博客——原码、反码、补码其实很简单。如果你对他们已经很熟悉,那么我们继续往下看。A、B、C三种相似的东西,选C而不选A和B,那么C肯定具有其他两者所没有的优势。那么补码究竟有什么优势让他备受青睐呢?下面我们具体的分析一下:原码:原码的特点就是编码简单直观,与真值转换非常方便。既然原码这么好,那为什么不选他而选补码呢? 阅读全文
posted @ 2012-04-18 07:51 刘水镜 阅读(6687) 评论(18) 推荐(7) 编辑
摘要:最近在备战软考,复习到计算机组成原理的时候,看到书中关于原码、反码、补码和移码的定义如下(n是机器字长): 原码: 反码: 补码: 移码: 看完这些定义以后,我的脑袋瞬间膨胀到原来的二倍!这样变态的公式不管你记不记得住,反正我是记不住!还好以前对它们有所了解,否则看到这一堆公式恐怕我早就放弃参加软考 阅读全文
posted @ 2012-04-05 21:11 刘水镜 阅读(5227) 评论(4) 推荐(5) 编辑

点击右上角即可分享
微信分享提示