摘要: 语法树,还可以看作是一个函数调用关系树, 每一个节点都是一个函数,其子节点是这个函数的参数,参数的类型可以是函数本身,因此递归是免不了的,因此,这样来看待语法树,就有了一种最简洁的认识。 阅读全文
posted @ 2018-12-24 15:31 SKY_VIEW 阅读(995) 评论(0) 推荐(0) 编辑
摘要: 光,电,影,流动的水,只要用心去发现,物理无处不在。 阅读全文
posted @ 2018-12-15 11:02 SKY_VIEW 阅读(197) 评论(0) 推荐(0) 编辑
摘要: co 有协作的意思,是让多个 routine 合作来完成某件或者某几件事情,它主要解决的问题就是合理安排一些耗时长的工作的执行时间,让其他的工作有机会得到执行。 阅读全文
posted @ 2018-12-03 10:17 SKY_VIEW 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 总结: 实际上只有一种结构,都是 do-while 结构 阅读全文
posted @ 2018-11-29 14:42 SKY_VIEW 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 1.这是整形乘法指令,无论是 unsigned int 还算是 signed int 实际上指令都是进行相同的运算,只不过最终的结果是由程序中的类型来做相应的解读 2.imul 指令实际上不会发生 overflow,因为积会按乘数最大位数的两倍的位数来存放 3.二进制乘法,可以转换成对被乘数进行一些 阅读全文
posted @ 2018-11-28 21:15 SKY_VIEW 阅读(5079) 评论(0) 推荐(0) 编辑
摘要: 1. PC 总是指向下一条将要被执行的指令,而不是指向正在被执行的指令,这是有道理的,因为执行指令不是一个 atom 过程,而是分成了好多步骤,在执行指令的过程中 cpu 完全有可能将下一条将要执行的指令的地址加载到 PC 中。 2. jg 指令后面跟 rep;ret 两条指令,而不是直接跟 ret 阅读全文
posted @ 2018-11-28 17:36 SKY_VIEW 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 之所以不用 “推导”,或者“转化”,是因为放在句子中都会产生表意上的问题 这不是一个推导的过程,推导的话存在因果逻辑关系,映射不存在 这也不是一个转化的过程,因为正则表达式不是文法,本质不同的东西不能用转化,如果从一种文法转化成另一种文法,这时候可以用转化 语法分析的核心就是文法 阅读全文
posted @ 2018-11-26 22:43 SKY_VIEW 阅读(734) 评论(0) 推荐(0) 编辑
摘要: 这个指令相当于 sub 指令,除了它不改变 flag寄存器之外的寄存器 而 sub 因为 在二进制层面上的位操作都是相同的,也就是说, unsigned subtract 和 signed substract 是同时执行的,所以无论 unsigned compare 还是 signed compar 阅读全文
posted @ 2018-11-16 14:04 SKY_VIEW 阅读(862) 评论(0) 推荐(0) 编辑
摘要: 小数部分乘以2,之后的数,整数部分如果是1 该位就是1, 否则该位就是0 继续对剩余的小数部分使用上述过程 阅读全文
posted @ 2018-11-14 10:53 SKY_VIEW 阅读(1475) 评论(0) 推荐(0) 编辑
摘要: 如果不用 DFA, NFA,我觉得也是可以处理编译过程的,一个字符一个字符的读入,并结合上下文,来确定 token 阅读全文
posted @ 2018-11-10 13:23 SKY_VIEW 阅读(164) 评论(0) 推荐(0) 编辑
摘要: cpu可以向其他cpu发送中断,也可以向单独某一个cpu发送中断 每个 cpu 都有一个时钟中断源 阅读全文
posted @ 2018-11-07 16:23 SKY_VIEW 阅读(867) 评论(0) 推荐(0) 编辑
摘要: The most important difference is they use different memory, the kernel mode thread can access any kernel memory, while the user mode can only access t 阅读全文
posted @ 2018-11-07 16:16 SKY_VIEW 阅读(381) 评论(0) 推荐(0) 编辑
摘要: Because that means context switching(save context, restore context) 阅读全文
posted @ 2018-11-07 15:58 SKY_VIEW 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 以前一直认为操作系统是处于领导地位的软件,然后由它统一调配进程的运行,现在觉得可以换一种看法,把 kernel 看作是进程的一部分,因为本来所有的进程都共享 kernel 内存, 还有一种认识就是,整个系统只有一个程序,那就是操作系统 阅读全文
posted @ 2018-11-07 15:57 SKY_VIEW 阅读(118) 评论(0) 推荐(0) 编辑
摘要: #include #include #include int main() { regex_t rgx; char *pattern = "^[[:alnum:]]*$"; char *str = "shabi"; if (regcomp(&rgx, pattern, REG_EXTENDED | REG_NOSUB) != 0) { pe... 阅读全文
posted @ 2018-11-06 09:45 SKY_VIEW 阅读(815) 评论(0) 推荐(0) 编辑
摘要: 主干是7个phase,对应7个模块,每一个模块的输入都是上一模块的输出 阅读全文
posted @ 2018-11-05 16:55 SKY_VIEW 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 编译程序的核心组件 lexical analyzer syntax analyzer semantic analyzer intermediate code generator machine independent code optimizer code generator machine dep 阅读全文
posted @ 2018-10-31 23:14 SKY_VIEW 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 积跬步,行万里 阅读全文
posted @ 2018-10-31 14:47 SKY_VIEW 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 一般情况下,只有 code 是不够的,性质不一样,有可能是 exception, 这时候,需要根据 exception, 这需要一个单独的字段来标记,还有业务逻辑错误,还有系统本身的错误 阅读全文
posted @ 2018-10-24 14:50 SKY_VIEW 阅读(526) 评论(0) 推荐(0) 编辑
摘要: There are three kinds of quote: single quote('), double quote("), backslash(\), how shell explain these characters depends on the context. Often we re 阅读全文
posted @ 2018-10-22 13:58 SKY_VIEW 阅读(166) 评论(0) 推荐(0) 编辑