1 shell命令:如何查询内存大小 文件大小和端口有没有被占用等 awk获取行列内容 2 文件的静态链接和动态链接的过程 3 文件的编译原理 4 cs模型和bs模型等编程模型 5 C++11的新标准特性 6 epoll的内部实现 双向arry+红黑树? 7 线程的资源 存放在哪里 栈指针? 8 c ...
分类:
其他好文 时间:
2020-03-10 11:35:26
阅读次数:
46
1. 词法分析方面,掌握正则表达式,了解dfa/nfa。 2. Parsing 方面,能读懂BNF,知道AST,会写简单的递归下降parser,会用antlr之类的parser generator。 3. 优化方面,知道现代编译器的优化能力有多强,知道如何配合编译器写出高效易读的代码,避免试图out ...
分类:
其他好文 时间:
2020-03-10 09:15:03
阅读次数:
62
语法制导翻译: 定义:语法制导翻译是通过向一个文法的产生式附加一些规则或程序片段而得到的 功能:给定词法单元流,通过向一个文法产生式附加一些语义动 作,语法制导分析产生语法分析树,并实现翻译动作 相关概念: 属性:表示与某个程序构造相关的任意的量,因为用文法符号(终结符号或非终结符号)来表示程序构造 ...
分类:
其他好文 时间:
2020-03-07 16:10:18
阅读次数:
80
语法定义: 文法定义: 定义:用以描述程序设计语言语法的表示方法——“上下文无关文法”,简称“文法”,文法自然地描述了大多数程序设计语言构造地层次化语法结构 实例: 如果用变量expr来表示表达式,用变量stmt表示语句,则 相关概念: 产生式:使用箭头(→)表示"可以具有如下形式",用相关变量表示 ...
分类:
其他好文 时间:
2020-03-06 21:59:18
阅读次数:
74
词法分析: 主要功能:词法分析器从输入中读入字符,并将它们组成词法单元对象 主要步骤: 预读:使用一个变量peek来保存当前已读入的数字或字符的下一个输入字符,来对已读入的字符进行预判,如果当前已读入字符能够识别,则peek设置为空白符。当词法分析器返回一个词法单元时,变量peek要么保存了当前词法 ...
分类:
其他好文 时间:
2020-03-06 17:17:50
阅读次数:
62
C语言的编译系统: 预处理:实现文件包含#include<stdio.h>;实现宏展开#define pi 3.1415926;条件编译#if、#ifdef 汇编器:对输入进行两遍扫描。 第一遍:汇编器扫描输入,将表示存储单元的所有标识符都存入符号表,并分配地址。 第二遍:汇编器再次扫描输入,把每个 ...
分类:
编程语言 时间:
2020-03-04 12:51:31
阅读次数:
80
linux下编译hello.c 程序,使用gcc hello.c,然后./a.out就能够执行;在这个简单的命令后面隐藏了很多复杂的过程,这个过程包含了以下的步骤: 预处理: 宏定义展开,全部的#define 在这个阶段都会被展开 预编译命令的处理,包含#if #ifdef 一类的命令 展开#inc ...
分类:
系统相关 时间:
2020-03-02 10:43:32
阅读次数:
71
逆波兰表达式,它的语法规定,表达式必须以逆波兰表达式的方式给出。逆波兰表达式又叫做后缀表达式。这个知识点在数据结构和编译原理这两门课程中都有介绍,下面是一些例子: 正常的表达式 逆波兰表达式 a+b a,b,+ a+(b c) a,b,c, ,+ a+(b c)d a,d,b,c, ,,+ a=1+ ...
分类:
编程语言 时间:
2020-02-22 22:06:23
阅读次数:
78
编译原理的一些基本概念 语法描述的几个基本概念 字母表:一个有穷字符集,记为∑ 字母表中每个元素称为字符 ∑上的字(也叫字符串) 是指由∑中的字符所构成的一个有穷序列 不包含任何字符的序列称为空字,记为ε 用∑ 表示∑上的所有字的全体,包含空字ε 例如: 设 ∑={a, b},则,∑ ={ε,a,b ...
分类:
其他好文 时间:
2020-02-21 14:14:31
阅读次数:
562
javascript引擎工作原理什么是JavaScript解析引擎? 简单地说,JavaScript解析引擎就是能够“读懂”JavaScript代码,并准确地给出代码运行结果的一段程序。比方说,当你写了vara=1+1;这样一段代码,JavaScript引擎做的事情就是看懂(解析)你这段代码,并且将a的值变为2。 学过编译原理的人都知道,对于静态语言来说(如Java、C++、C),处理上述这些
分类:
编程语言 时间:
2020-02-20 16:49:41
阅读次数:
58