thumbnail
由DFA构造词法分析器
表驱动型的词法分析器 其中,需要: 有适当的数据结构存放DFA; 修改算法2.1,适应实际输入: 识别整个文件,而不是一个记号; 满足最长匹配原则。 直接编码的词法分析器 在表驱动的词法分析器中,DFA是数据,用于指导驱动器(模拟DFA 的代码) 对输入序列进行分析。 直接编码的词法分析器,将 DFA 和 识别输入序列的过程合并在一起,直接用程序代…
thumbnail
正规式到词法分析器
从正规式到NFA Thompson 算法 输入: 字母表∑上的正规式r 输出: 接受L(r)的NFA N 方法: 首先分解r,然后根据步骤构造NFA: 分解正规式 自下而上构造NFA 星闭包自身回环并联一个空转 串联连接运算 并联或运算 从NFA到DFA NFA识别记号的“并行”方法 NFA上识别记号的确定化方法: 并行的方法,核心思想是将不确定的…
thumbnail
Exception和Error有什么区别?
典型回答 Exception 和 Error 都是继承了 Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。 Exception 和 Error 体现了 Java 平台设计者对不同异常情况的分类。Exception 是程序正常运行中,可以预料…
thumbnail
final、finally、 finalize有什么不同?
典型回答 final 可以用来修饰类、方法、变量,分别有不同的意义,final 修饰的 class 代表不可以继承扩展,final 的变量是不可以修改的,而 final 的方法也是不可以重写的(override)。 finally 则是 Java 保证重点代码一定要被执行的一种机制。我们可以使用 try-finally 或者 try-catch-f…
thumbnail
谈谈对Java平台的理解
理解 高玩 “一次编译、到处运行”说的是Java语言跨平台的特性,Java的跨平台特性与Java虚拟机的存在密不可分,可在不同的环境中运行。比如说Windows平台和Linux平台都有相应的JDK,安装好JDK后也就有了Java语言的运行环境。其实Java语言本身与其他的编程语言没有特别大的差异,并不是说Java语言可以跨平台,而是在不同的平台都有…
thumbnail
I miss that something……
从前摘抄与构想的语句收录 我的眼注视着遥远的阴空,我的心和烦躁的风一同彷徨悲叹。 他叫嚷:“啊!生命!啊!时光,你们弥足珍贵!但更珍贵的是最终让我与你们相识的欢乐!” 孤身一人赶赴约会,黑暗中,仿佛有人跟着我。时间如梦幻般流逝,我无法拒接我沉默的访客,我在黑暗中望着他的脸。 我面目可憎,我的语言可憎,我的文字可憎,我的心不可憎。 我看到了那被丢弃在…
thumbnail
词法分析基础
术语 在编译器中,词法分析是将源代码转换成一系列单词或记号(token)的过程。以下是相关术语的解释和举例: 模式 (Pattern): 模式是用于识别单词的规则或模板。在词法分析器中,它通常是表示单词的正则表达式。模式定义了识别单词的规则,用于词法分析器生成器(如 Lex)生成种族器。 举例:考虑一个用于识别整数的模式: pattern = [0…
thumbnail
编译器编译过程核心步骤
核心步骤 编程语言的编译或解释过程通常包括以下几个核心步骤: 词法分析(Lexical Analysis):将源代码转换为一个一个词法单元的序列,如标识符、运算符和常量等。 语法分析(Parsing):根据语法规则将词法单元序列转化为抽象语法树,以表示源代码的语法结构。 语义分析(Semantic Analysis):检查抽象语法树是否满足语义规则…
thumbnail
编译器和解释器
编辑器和解释器是什么 编译器和解释器都是计算机程序的执行引擎,用于将高级语言(例如C、Java、Python等)转换为计算机能够理解和执行的机器语言。 编译器是将整个源代码文件一次性转换为目标机器语言的工具。编译器首先将源代码文件经过多个阶段(如词法分析、语法分析、语义分析和代码生成)的处理,生成目标代码文件,然后将目标代码文件与所需的库文件链接在…
thumbnail
极创工作室swan0-1发布会
产品发布会流程 工作室负责人发言 吴家冀 吴教授宣布退休,表示对ai技术对未来工作的影响持悲观态度 表示未来找工作需要“证明自己是一个机器人” AI时代 谭教授 linux系统发展——创新 开源——闭源(MacOS) Netscape开源——火狐浏览器 互联网技术发展 LLM大模型 做开源图谱完善 1983——GNU 自由软件基金会 1985——自…