我们谈论生活,讨论技术,借由文字,抵达心灵。
上下文无关文法是被广泛地用于表示 各种程序设计语言 的 语法规则一般 第一行第一个是 开始符号,(上面的 E),→ 意味着 可以从 E 变成 xxx| 是 或的意思,也就是 E 可以变成 T,或者 E 也可以变成 E+T,但是不能两个同时变假设最后 N → 7,之后就不能往后面推了,所以这个时候 就会把 7 称为终结符号,就是后面这一串 是终结符号后缀式、中缀式中缀式比较常见的表达式,比如 1+2、1-2、1x2、1/2 等后缀式:把运算符放到后面,12+、12-、12x、12/ 等中缀式:a?b,?特指 +-x/后缀式:ab?优先级:括号、乘除、加减优先级相同,就是从右向左算中缀式:1-2x(3+4)/5转成后缀式(3+4)---> (34+) 这是一个整体1-2x34+/51-2x34+5/1-234+5/x1234+5/x-波兰逆式 又叫做 后缀式栈:特点:先进后出,后进先出1234+5/x- 从左向右扫描,遇到数字就入栈,遇到操作数再操作,遇到符号从栈里弹出数后缀表达式可以通过 栈 求值,转换成中缀表达式语法树根据语法树,把后缀式、中缀式算出来根左右通过中序遍历,可以得
目标代码生成寄存器的分配,处于目标代码生成阶段动态语义错误比如 除数为零: int a = 1 / 0;可以过语法:因为语句结构没问题,也可以过语义:除号左边右边都整数(静态语义)但是在运行的时候就会报错,会报 除数不能为 0 的异常中间代码生成中间代码与具体的机器无关,不依赖具体的机器。最常用的一种中间代码是 与汇编语言的指令非常相似的三地址码,其实现方式是 四元式。常见的中间代码有:后缀式、三地址码、三元式、四元式、树(图)等形式中间代码可以跨平台。因为与具体的机器无关,使用中间代码有利于进行 与机器无关的优化处理 和 提高编译程序的可移植性正规式正规式是 词法分析 的一个工具正规集 由 正规式推出来的a|b:a 或者 b 的集合,可以是 a 也可以是 b,但是 a、b 不能一起出现。| 是 选择a$^*$:* 是 闭包,表示可以出现 0 次或多次。(a|b)$^*$:* 作用于左侧最近的一个整体,因为用括号括起来了,所以 a|b 是一个整体,所以这个正规式表示 多个a或者ba(a|b)$^*$:以 a 为首的字符 a、b 字符串的集合(a|b)$^*$abb:以 abb 为结尾的
错题 关于 python错误说法:用 try 捕获异常,有 except,无需执行 finally解释:finally 块是可选的,但如果写了 finally,它一定会执行,无论是否发生异常try 语句的完整结构: try --> except --> else(可选)--> finally(可选)有 except 不代表可以忽略 finally,两者互不影响正确说法:可以使用 raise 关键字来手动抛出异常raise ValueError("这是一个手动抛出的异常")raise 可以主动触发异常,常用于参数校验等场景错误说法:except Exception 可以捕获所有异常Exception 可以捕获 大多数 常见异常但 不能捕获 SystemExit、KeyboardInterrupt、GeneratorExit 等继承自 BaseException 的异常要捕获 所有 异常需用 except BaseException错误说法:可以用 switch...case 语句表示选择结构Python 3.10 之前,没有 switch...cas
编译程序 解释程序低级语言0 1 序列是 机器语言,机器指令程序,是最基本的计算机语言效率很低、可读性很差、难修改和维护容易记忆的符号代替机器语言:汇编语言称,机器语言、汇编语言 为 低级语言高级语言所以在此基础上,开发了 功能更强、抽象级别更高的语言以支持程序设计,于是就产生了面向各类应用的程序设计语言,称为 高级语言常见的高级语言:Java、C、C++、PHP、Python、Delphi、PASCAL 等这类语言与人们使用的自然语言比较接近,提高了程序设计的效率需要翻译的过程,翻译成计算机能够看懂的语言,计算机只能理解 0 1 序列翻译这个过程的,叫做:语言处理程序。语言之间的翻译形式有很多种:基本方式为 汇编、解释、编译源程序:用某种高级语言或汇编语言编写的程序:源程序,源程序不能直接在计算机上执行。如果源程序是用汇编语言编写的,则需要一个汇编程序将其翻译成目标程序后才能执行。如果源程序使用某种高级语言编写的,则需要对应的 解释程序 或 编译程序 对其进行翻译,然后在机器上运行。解释程序:一般用于解释脚本语言又叫 解释器。直接解释执行源程序,或者 将源程序先翻译成某种中间代码然后
流水线最长时间段,就是最大任务时间操作周期:最长时间段吞吐率:最长时间段的倒数加速比 = 不采用流水线 / 采用流水线连续输入 n 条指令的吞吐率:n / (执行一条指令的时间 + (n-1)x 最长时间段)存储系统内存(主存)、外存(辅存)主存 DRAM 动态随机存储器Cache SRAM 静态随机存储器 闪存,闪速存储器,介于 EPROM 和 EEPROM 之间以块为单位工作方式分类:只读存储器 ROM读写存储器 RAM按访问方式分类:可分为,按地址访问的存储器 和 按内容访问的存储器按寻址方式分类:随机存储器:可以对任何存储单元存入或读取数据,访问任何一个存储单元所需的时间都是相同的顺序存储器:访问数据所需要的时间与数据所在的存储位置相关,磁带是典型的顺序存储器直接存储器:介于随机读取和顺序存取之间的一种寻址方式。磁盘是一种直接存取存储器,它对磁道的寻址是随机的,而在一个磁道内则是顺序寻址。相联存储器:按内容访问的存储器虚拟存储器:由主存、辅存构成的局部性空间局部性缓存 Cache高速缓存用来存放当前最活跃的程序和数据,位于 CPU 和主存之间,容量一般在几千字节到几兆字节之间,
Luckyxyz