- 博客(7)
- 资源 (1)
- 收藏
- 关注
转载 [心得]编译原理知识整理
[心得]编译原理知识整理前言不学龙书的码农不是靠谱的码农。就冲这句话,我真的把编译原理给速推了一把。干货分析把源程序分解成多个组成要素,并在这些要素之上加上语法结构。 综合根据中间表示和符号表中的信息来构造目标程序。 把声明如何完成一个计算任务的语言称为强制式语言。编译器最基本的数学模型是有穷状态机FSM和正则表达式。它们用来描述词法单位(关键字,标识符)以及被编译器用来识...
2018-09-30 16:03:07 1617
原创 小时候的计算机回忆
最早接触电脑是在初一,大概是1999年的时候。学校有上机课,当时比较落后,用的是dos系统,老师给每个同学都发一个5英寸软盘用来保存数据,后来升级换成3.5英寸软盘了。上机课大家很多时候都只会玩预装的tt打字游戏,但有些厉害的同学已经会用qbasic进行编程了。放假的时候记得有时会去爸爸工作的面厂,然后在办公室里玩桌上的电脑,电脑上装的win95,会玩里面的潜艇大战之类的游戏。有一次玩的不肯回...
2018-09-29 14:19:45 420
转载 编译原理书籍推荐
大学课程为什么要开设编译原理呢?这门课程关注的是编译器方面的产生原理和技术问题,似乎和计算机的基础领域不沾边,可是编译原理却一直作为大学本科的必修课程,同时也成为了研究生入学考试的必考内容。编译原理及技术从本质上来讲就是一个算法问题而已,当然由于这个问题十分复杂,其解决算法也相对复杂。我们学的数据结构与算法分析也是讲算法的,不过讲的基础算法,换句话说讲的是算法导论,而编译原理这门课程讲的就是比较专...
2018-09-28 13:44:20 13534 1
原创 github工作流程
Git工作流程:已有:master分支,develop分支开发流程:1.基于develop分支创建自己的分支: git checkout develop git branch -b new_branch2.在本地的分支做了一些修改后,提交到new_branch git add a.txt git commit -m “ADD:msg” ...
2018-09-10 17:24:07 438
原创 以太坊 eth/handle.go处理newblockMsg消息的主要流程
今天把以太坊 eth/handle.go处理newblockMsg消息的流程基本看完了,记录一下。以太坊 eth/handle.go处理newblockMsg消息的主要流程:Fetcher负责验证区块并插入区块,如果符合条件,还会重组主链区块。如果收到的远程peer节点发来的区块TD-区块难度(即上个区块的TD) 大于 之前保存的peer最新的TD,则证明中间还差了一些区块没有同步,...
2018-09-06 16:59:36 629
原创 关于go协程的调度和执行顺序
无论是java还是go,开启线程和协程的时候,执行的顺序都是一样的。例子1: func funcB() { println("funcB")}func funcA() { println("funcA")} func main() {funcA() go funcB() select {}} 实际的执行顺序还是...
2018-09-06 14:56:59 9122
原创 以太坊blockchain.go里的reorg方法理解
以太坊go-ethereum项目里core/blockchain.go是一个很核心的文件,其中的reorg方法负责处理侧链分叉的情况。以下是对这个方法逻辑的理解:总体思路:先收集区块,最后再看能不能拼起来。1.所有收到的区块都会存入数据库2.如果不是正常的情况(收到的区块的父hash不是本地权威(Canonical)hash链最新区块的hash),则尝试进行重组reorg区块链。 ...
2018-09-05 19:17:24 1025 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人