Ryo's blog

标签 · Compiler

首页

关于

归档

loading..
GolangCompiler

Golang 编译器优化那些事

一、背景去年写了一篇 Golang Memory Model 文章。当时在文章里面贴了验证一个线程可见性问题Demo,具体代码如下: func main() { running := true go func() { println("start thread1") count := 1 for running { count++ } println("end thread1: count =", count) // 这句代码永远执行不到为什么? }() go func() { println("start thread2") for..

更多
BookCompiler

《编译原理之美》

0、为什么你要学习编译原理? 1、理解代码:编译器的前端技术 1.1 词法分析Lexical Analysis 通常,编译器的第一项工作叫做词法分析。就像阅读文章一样,文章是由一个个的中文单词组成的。程序处理也一样,只不过这里不叫单词,而是叫做词法记号,英文叫 Token。 也可以用词法分析器的生成工具来生成,比如 Lex(或其 GNU 版本,Flex)。这些生成工具是基于一些规则来工作的,这些规则用正则文法表达,符合正则文法的表达式称为正则表达式。生成工具可以读入正则表达式,生成一种叫有限自动机的算法,来完成具体的词法分析工作。 不要被正则文法(Regular Grammar)和有限自动机(Finite-state Automaton,FSA,or Finite Automaton)吓到。正则文法是一..

更多