深入浅出编译原理简明教程(四):词法分析的编码实现、词法分析生成器和正则表达式
在编译器前端中,实现词法分析的方式有两种:编码实现和使用生成器实现。编码实现就是手工编程,使用特定的算法和数据结构实现一个词法分析器,这种方式实现起来比较困难,也比较复杂,你需要有更好的编程基础和严谨的设计,但是这种方式实现的分析器效率高,...
在编译器前端中,实现词法分析的方式有两种:编码实现和使用生成器实现。编码实现就是手工编程,使用特定的算法和数据结构实现一个词法分析器,这种方式实现起来比较困难,也比较复杂,你需要有更好的编程基础和严谨的设计,但是这种方式实现的分析器效率高,...
编译器的运行流程主要分为前端处理,中间表示和后端处理,而在前端处理中又可分为词法分析、语法分析、语义分析和中间代码生成。现在我们首先开始了解词法分析的运行原理、分析任务,以及其分析结果的表示形式。 1、词法分析的目标和数据结构 词法分析主要...
一、编译器的逻辑结构 编译器的结构在逻辑上主要分为两部分:前端和后端,我们需要编译的源代码称为源语言,最终目标结构为机器语言或汇编语言,称为目标语言。前端处理主要是将源代码生成中间代码,中间代码还会经过优化,最后由后端处理生成最终的机器语言...

一、为什么学编译原理?如何学习? 编译原理是计算机技术中相当基础的一门技术,同时它也是计算科学中技术含量较高的一门学科,它和算法、数据结构、编程语言等都有非常密切的联系,对这些相关技术的深入学习提供基本的理论基础,所以学好编译原理不但对该技...
一、简介 在之前的文章中我们详细讨论了CSS Grid网格布局系统,但是还是有很多细节未能提及,本文是对Grid网格布局中的一些细节的补充。主要针对网格布局中会使用到的函数和单位,比如常用的repeat函数,fr单位等,这些概念提供更灵活的...

一、引言 CSS网格布局并不难,如何灵活运用网格布局快速开发项目,是每个前端开发者都应该关心的问题。在上一篇中我们看到了Grid布局在页面设计中的使用实例,它的使用实际上非常简单,重在掌握好Grid布局中的轴线方向和对齐方式,你可以在这里找...

一、引言 CSS网格布局主要抓住两个核心:先确定轴线方向上的元素,然后确定对齐方式,这样开发起来就会顺畅很多。本教程主要围绕CSS网格布局进行实战开发,网格系统布局非常强大,你可以不用依赖第三方框架快速设计页面。如果你还不大了解CSS网格布...
一、引言 CSS网格布局(CSS Grid Layout)已逐渐在前端设计中,显露出它的强大用处。该二维布局系统类似boostrap中的栅格布局系统,相对来说CSS的网格系统更强大,更可控,可以从水平方向和垂直方向调整网格的大小、对齐方式、...

一般来说,一个完整的WEB项目都少不了使用JavaScript轮播插件。对于整个简单的轮播插件,有时会我们会要求它有更可控的样式,不同的使用场景也需要不同的样式,最理想的轮播插件就是可定制。除了原生开发,使用开源轮播插件可以加快你的开发进度...

一、引言 这次我们来实现一下响应式的Github项目页,Github项目页不是响应式,仅是自适应,可能是PC端和移动端两边的数据需求差别大,干脆服务器自适应就是了。 我们选择使用响应式设计Github项目页的理由是,以ReadMe文件描述为...