编译原理词法分析(lexical analysis)概况及正则表达式

此笔记包括词法分析的一些基础知识。

词法分析是编译六个步骤中的第一个步骤。其中,两个重要的知识点分别是正则表达式(regular expression)和
有限自动机(finite automata)。使用正则表达式可以标准地表示词法结构的串格式,而有限自动机应用于串格式的识别。

一个程序中的记号可以被分成几个种类:保留字/关键字、标志符、数字、文本或特殊符号。

正则表达式分为三个部分:基础、扩展及程序语言中的正则表达式。
第一部分,基础的正则表达式包括四个知识点:
	1. 基本定义
	2. 运算:重复、联结和选择(优先级由左至右)
	3. 括号:用于改变优先级
	4. 给正则表达式命名,便于使用
第二部分,扩展的正则表达式中包括五个知识点:
	1. +号:1个或多个;是重复的另一个版本
	2. .号:任意字符
	3. […]:选择字符,常见的有[0-9]、[a-z]、[a-zA-Z]
	4. ?号:可选
	5. ~号:不在给定集合中的任意字符
第三部分,程序语言中的正则表达式主要讨论程序语言中的各个部分该如何表示:
	1. 数
	2. 保留字和标识符
	3. 注释
	4. 语言定义要给出无二义规则
	5. 遵循最长子串原理,有时会遇到记号分隔符
	6. 处理先行
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值