compilers
文章平均质量分 76
zoweiccc
心态
展开
-
编译原理——词法分析(1)
在我们学习词法分析时,就会思考如何构造一个词法分析器?一个词法分析器可以通过手工构造;也可以通过以下方式自动生成一个词法分析器:向一个词法分析器生成工具描述出词素的模式,然后将这些模式编译为具有动词分析器功能的代码。如何对正则表达式进行转换?首先转换为不确定有穷自动机,然后再转换为确定有穷自动机。词法分析器的作用:1.读入源程序的输入字符、将他们组成词素,生成并输出一个词法单元序列,...原创 2018-09-11 21:41:13 · 7261 阅读 · 3 评论 -
编译原理——编译器与解释器的区别,编译器的结构与一些常见编译器的认识
在初步学习编译原理时,遇到了一些不能很直观理解的概念,以下是我结合书本和网上学习的一些见解。编译器:在一个程序可以运行之前,它首先需要被翻译成一种能够被计算机执行的形式,简单地说,一个编译器就是一个程序,他可以阅读以某一种语言(源语言)编写的程序,并把该程序翻译成为一个等价的、用另一种语言(目标语言)编写的程序,执行时不在需要编译器,直接在支持目标代码的平台上运行,这样执行效率比解释执行快很多...原创 2018-09-09 10:39:20 · 2741 阅读 · 0 评论 -
编译原理——一个编译器的各个步骤的介绍
一个编译器的结构分为分析部分(编译器的前端)和综合部分(编译器的后端)。编译器的前端:把源程序分解成为多个组成要素,并在这些要素之上加上语法结构。然后,它使用这个结构来创建该源程序的一个中间表示。如检查出源程序没有按照正确的语法构成,或者语义上不一致,它就必须提供有用的信息,使得用户可以按此进行改正,在编译器的前端,还会收集有关源程序的信息,并把信息存放在一个成为符号表的数据结构中。编译器...原创 2018-09-09 11:03:01 · 9411 阅读 · 1 评论 -
编译原理——词法分析(2)
紧接着上一篇词法分析进行学习,可以点这前往呀~https://blog.csdn.net/zoweiccc/article/details/826329041.1串和语言 字母表是一个有限的符号集合。符号的典型例子包括字母、数位和标点符号。如集合{0,1}是二进制字母表。某个字母表的串(string)是该字母表符号的有穷序列,空串是长度为0的串。语言(language)...原创 2018-09-18 17:58:54 · 544 阅读 · 0 评论 -
编译原理——词法分析(3)有穷自动机中DFA与NFA的理解
1.1词法分析器生成工具Lex虽然在学习上,我们学习的是Lex,但是最近经常使用的是词法分析器生成工具是Flex,它可以为C语言生成代码,Vern Paxson于1987年以C语言写作了Flex,他引用了Jef Poskanzer为Ratfor写作的词法分析器。如果我们想为Java生成代码,可以使用JFlex。在Flex中,它支持使用正则表达式来描述各个词法单元的模式,由此给出一个词...原创 2018-10-07 13:24:15 · 3963 阅读 · 0 评论 -
编译原理——语法分析(1)文法的形式定义与四种文法类型的区分
文法的形式定义1.处理文法的语法分析器大体上可以分为三种类型:通用的,自顶向下的和自顶向上的。2.文法:一种用于描述程序设计语言语法的表示方法——“上下文无关文法”,简称“文法”。3.一个上下文无关文法(文法)有四个元素组成:文法G可以抽象成四元组的形式:G=(VN,VT,P,S)其中VN表示非终结符集,VT表示终结符集,P表示产生式集,S表示开始符号。(1)一个终结符号集...原创 2018-10-07 17:21:02 · 19608 阅读 · 4 评论