看不懂正则表达式?试试可视化工具吧!

1. 前言 正则表达式是一种用来匹配字符串的强有力工具。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串我们就认为它“匹配”了,否则该字符串就是不合法的。 日常开发中常常会使用正则表达式,例如:对数据格式进行校验(判断一个字符串是否是合法的Email格式、合法的IP格式或

Administrator 发布于 2024-05-26

离开工位老是忘记锁屏?试着让电脑自动完成这事吧!

1. 场景说明 公司要求离开工位要立刻锁定电脑屏幕防止信息泄露,但无论是使用锁屏快捷键还是设置触发角,总感觉不得劲。想想汽车现在基本都是自动锁车了,电脑它就不能自己锁屏吗?于是抽空搜罗了一些自动化的解决方案,并按照Win和Mac进行分类。 2. 配置方式 2.1 Windows Windows官方系

Administrator 发布于 2024-05-26

想提高阅读代码的效率?试试这些工具吧!

工欲善其事必先利其器,阅读代码也能通过工具来提升效率,本文将介绍3种代码阅读辅助工具。

Administrator 发布于 2024-05-26

编译器中端-中间代码优化

IR存在的意义是使得代码优化变得容易且可复用,不同的中间表达方式也是为了方便不同优化手段的执行。对代码做优化的方法有很多,如果把它们分类一下的话,可以按照下面两个维度:是否机器相关和优化范围(本地、全局和过程间)。

Administrator 发布于 2024-05-12

编译器中端-中间代码生成

编译器很难通过一次处理就得到最优的目标代码,实际的编译器大多组织为一连串的处理趟,每一趟处理的结果又作为下一趟的输入持续的运行。随着编译器不断推导有关被编译代码的知识,它必须将这些信息从一趟传递到另一趟。因此,这些能推导出有关程序全部事实的信息需要一种表示方式,称之为中间代码或中间表示(intermediate representation),简称IR。

Administrator 发布于 2024-05-12

编译器前端-语义分析

语义分析器(semantic analyzer)使用语法树和符号表中的信息来检查源程序是否和语言定义的语义一致。它同时也收集类型信息,并把这些信息存放在语法树或符号表中,以便在随后的中间代码生成过程中使用。

Administrator 发布于 2024-05-12

编译器前端-语法分析

语法分析又称解析(parsing),它在词法分析后执行。将tokens组织成语法结构,通常是一棵抽象语法树(Abstract Syntax Tree, AST),这棵树表示了源代码的语法结构。语法分析器需要根据一组预定义的语法规则来分析词法单元序列。这些规则通常以上下文无关文法(Context-Free Grammar, CFG)的形式定义,其中每个规则定义了语言中的一个结构如何由其他结构组成。

Administrator 发布于 2024-05-12

编译器前端-词法分析

词法分析又称扫描(scanning),通过读入组成源程序的字符流,将它们组织成为有意义的词素(lexeme)的序列。词素是源程序中的最小语言单位,如关键字、标识符、常数、操作符和分隔符等。对于每个词素,词法分析器将产生对应的词法单元(token)作为输出。

Administrator 发布于 2024-05-12