计算机科学与技术《编译原理》求解题

计算机科学与技术《编译原理》求解题,第1张

京航空航天大学541离散数学与编译原理2012年考研大纲: 《离散数学(第三版)》耿素云、屈婉玲、张立昂编39清华大学出版社 2004年; 《编译原理》陈火旺编,国防工业出版社,2000年第三版7395 离散数学部分 1. 命题逻辑与一阶逻辑 1.1. 联结词、量词、谓词 1.2. 命题逻辑范式 1.3. 合式公式、解释、等值式 1.4. 推理理论 2. 集合与关系 2.1. 集合的运算与性质 2.2. 关系的运算、性质与闭包 2.3. 等价关系与偏序关系 2.4. 函数的运算与性质 3. 代数系统 3.1. 代数系统及其同态与同构 3.2. 半群与群 3.3. 格与布尔代数 4. 图与树 4.1. 图的定义与表示 4.2. 图的连通性、欧拉图、哈密尔顿图 4.3. 二部图、平面图 4.4. 树、生成树与根树 编译原理部分 第一章:了解有关编译程序的基本概念、结构 第二章:掌握语言的定义与文法描述的基本概念、术语与文法改造方法; 第三章:掌握有限自动机、正规式的概念、算法;正规式与有限自动机、正规文法的相互转换 第四章:掌握LL(1)分析方法;算符文法;LR(K)分析方法zd 第五章:掌握属性文法的概念;S―属性文法、L―属性文法的定义、翻译模式以及计算继承属性、综合属性的方法xbf 第六章:掌握赋值语句与布尔表达式的翻译;控制语句的翻译;过程调用与类型检查。 第七章:运行存储组织;静态与动态存储管理与实现。 第八章:掌握优化概念与局部优化、数据流方程与循环优化方法。

回调函数,或简称回调(Callback 即call then back 被主函数调用运算后会返回主函数),是指通过参数将函数传递到其它代码的,某一块可执行代码的引用。

这一设计允许了底层代码调用在高层定义的子程序。

回调的用途十分广泛。例如,假设有一个函数,其功能为读取配置文件并由文件内容设置对应的选项。

若这些选项由散列值所标记,则让这个函数接受一个回调会使得程序设计更加灵活:函数的调用者可以使用所希望的散列算法,该算法由一个将选项名转变为散列值的回调函数实现;因此,回调允许函数调用者在运行时调整原始函数的行为。

回调的另一种用途在于处理信号或者类似物。例如一个POSIX程序可能在收到SIGTERM信号时不愿立即终止;为了保证一切运行良好,该程序可以将清理函数注册为SIGTERM信号对应的回调。

回调亦可以用于控制一个函数是否作为:Xlib允许自定义的谓词用于决定程序是否希望处理特定的事件。

有两种类型的回调,它们在运行时控制数据流的方式不同:阻塞回调(也称为同步回调或仅回调)和延迟回调(也称为异步回调)。

在函数返回之前调用阻塞回调(在下面的 C 示例中,它说明了阻塞回调,它是函数main),则可以在函数返回后调用延迟回调。延迟回调通常用于 I/O *** 作或事件处理的上下文中,并且在多个线程的情况下由中断或不同的线程调用。

由于其性质,阻塞回调可以在没有中断或多线程的情况下工作,这意味着阻塞回调通常不用于同步或将工作委托给另一个线程。

回调用于在窗口系统中对应用程序进行编程。在这种情况下,应用程序提供(引用)一个特定的自定义回调函数供 *** 作系统调用,然后 *** 作系统调用此特定于应用程序的函数以响应鼠标单击或按键等事件。

这里的一个主要问题是权限和安全性的管理:虽然该函数是从 *** 作系统调用的,但它不应以与系统相同的权限运行。这个问题的解决方案是使用保护环。

回调函数在实际中有许多作用。

假设有这样一种情况:我们要编写一个库,它提供了某些排序算法的实现(如冒泡排序、快速排序、shell排序、shake排序等等),为了能让库更加通用,不想在函数中嵌入排序逻辑,而让使用者来实现相应的逻辑。

回调可用于通知机制。例如,有时要在A程序中设置一个计时器,每到一定时间,A程序会得到相应的通知,但通知机制的实现者对A程序一无所知。

那么,就需一个具有特定原型的函数指针进行回调,通知A程序事件已经发生。实际上,API使用一个回调函数SetTimer来通知A程序。如果没有提供回调函数,它还会把一个消息发往程序的消息队列。

另一个使用回调机制的API函数是EnumWindow,它枚举屏幕上所有的顶层窗口,每个窗口都可以通过它调用另一个程序提供的函数,并传递窗口的处理程序。例如:如果被调用者返回一个值,就继续进行迭代;否则,退出。

EnumWindow并不关心被调用者在何处,也不关心被调用者用它传递的处理程序做了什么,它只关心返回值,因为基于返回值,它将继续执行或退出。

C语言的回调函数只能通过函数指针实现,在C++中则可以使用匿名函数(lambda)或仿函数(functor)作为回调函数。

出现这种不能识别的命名一般都是查询语句出现系统无法识别的字段名称,并且一般是使用sql里面的关键字。比如:order,text都是属于sql内部的保留字。

表名,别名都不能用sql的保留字,如果想要用的话就需要加上[]符号。比如写成[Order]就可以。

以上就是关于计算机科学与技术《编译原理》求解题全部的内容,包括:计算机科学与技术《编译原理》求解题、callback是什么意思、SQL语句中老出现不能识别的命令谓词等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9331769.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存