-
编译原理系列-03-lexical analysis 词法分析
词法分析
为了把程序从一种语言翻译成另一种语言,编译器必须首先把程序分解并搞清相应的结构和含义,然后再用不同的方式把它们组合起来。编译器的前端负责分析,后端负责组合。
分析的类别
分析包含3类:
词法分析:将输入分解成单独的字或记号;
语法分析:分析程序中短语的结构;
语义分析:分析程序的含义。
词法分析器接收字符流,生成一系列的名字、关键字和标点符号,并舍弃了记号之间的空白符...
2020-06-04 05:34:28 |
Java
-
编译原理系列-02-mini java
mini java
重新写一个 java 时间有限,只能先实现一个核心功能。
所以需要对 java 多一些特性的简化。
文本主要收集一些网上资料,做下简单的整理。
EBNF Grammar for Mini-Java
Goal = MainClass, { ClassDeclaration }, EOF;
MainClass = "class", Identifier, "{", ...
2020-06-04 05:34:28 |
Java
-
编译原理系列-01-概述
概述
本书描述了将编程语言转换成可执行代码的技巧、数据结构以及运算法则。现代编译器是由很多阶段组成的,每一阶段对不同的语言进行操作。依据这样的结构,本的每章中都包含有一个相应的阶段。
为了说明编译语言的过程,本书将以一个简单但很重要的Java子集Mini Java为例。希望读者自己能够完成每一章中相应的阶段,那么在学习完第一部分后,就实现一个编译器。Mini Java很容易进行扩展以支持...
2020-06-04 05:34:28 |
Java
-
编译原理系列-00-入门
序言
至于《编译原理》,相信很多人都学习过。
就和《计算机组成原理》、《汇编语言》一样学的时候云里雾里,学完之后九霄云外。
这些知识属于难学少用,所以很容易忘记。
以前也学过 2 遍左右的编译原理,知道个大概,但是终究没有深入学习。
个人重学的理由
最新在写 lombok-ex 一个类似于 lombok 的小工具。
想把 AOP 再提升一个档次,虽然磕磕绊绊也写了一些,但是对于...
2020-06-04 05:34:28 |
Java
-
jvm-sandbox-repeater-00-overview 入门介绍
基于JVM-Sandbox的录制/回放通用解决方案
jvm-sandbox-repeater是JVM-Sandbox生态体系下的重要模块,它具备了JVM-Sandbox的所有特点,插件式设计便于快速适配各种中间件,封装请求录制/回放基础协议,也提供了通用可扩展的各种丰富API。
目标人群 - 面向测试开发工程师
线上有个用户请求一直不成功,我想在测试环境Debug一下,...
2020-06-04 05:34:28 |
Jvm
-
jvm-sandbox 入门简介
JVM沙箱容器,一种JVM的非侵入式运行期AOP解决方案
在WIKI中我们将会系统的向你介绍JVM-SANDBOX(以下简称沙箱)的安装、使用和配置,并从一个简单的模块开发开始到深入沙箱内核并成为这个开源项目贡献者的一员。
文章将会从使用者、模块研发者和沙箱贡献者三个角色完整的介绍沙箱
使用者
安装沙箱
环境要求
JDK[6,11]
Linux/UNIX/MacOS;暂不支持W...
2020-06-04 05:34:28 |
Jvm
-
用户画像-01-用户画像基础
用户画像
用户画像,即用户信息标签化,是大数据精细化运营和精准营销服务的基础。
在大数据的时代下,用户的一切行为是可追溯和分析的。
用户画像是通过分析用户的基础信息、特征偏好、社会属性等各维度的数据,刻画出用户的信息全貌,从中挖掘用户价值。
它可以帮助数据“起死回生”,提供个性化推荐、精准营销、个性化服务。
画像基础
1.1 标签类型
用户画像建模其实就是对用户“打标签”,...
2020-06-03 05:34:28 |
Data
-
数据分析-24-解决问题之分析问题原因
分析问题的原因
数据分析工作中“分析问题的原因”是非常常见的分析类型,我之前也讲过很多次这个问题,可见这篇文章:如何深挖原因,推动业务。
之前的文章提到过,分析原因不仅要分析表面原因,还要分析根本原因。
但是关于表面原因和根本原因的定义一直含混不清,经常有人问我究竟什么叫表面原因,什么叫根本原因,但我也一直很难给出一个明确的答案。
最近在学习逻辑学,发现有个概念可以尝试着把这个问题说...
2020-06-03 05:34:28 |
Data