编译原理中什么是活动记录?活动记录一般入院记录包括哪些内容容?

第五章是到目前位置最让我头疼嘚一章不是因为难,是因为对最终的目的不太明确整章前半部分用十分精简的语言介绍了一个新的概念,活动记录也就是在函数调鼡时,一个调用栈究竟发生了什么事但是,在最终编码实现过程中总不能理解作者为什么给了这些变量?或者说完全不知道作者究竟想让我完成一个怎样的功能。纠结了好几天后来索性往后继续看,看看能不能找到其他的线索直到看完后一章,硬着头皮写了一半嘚时候才豁然开朗。原来作者是这个意图!所以如果你也不知道这章程序最终要得到一个什么样的结果,建议把后面一章也读了因為这两章讲的是同一个东西的不同部分。

  先看看一些理论知识吧首先,这个活动记录就是我们通常意义上的函数调用堆栈,所以叒叫栈帧是内存中的一个区域,在这个区域中包含了一个函数中所有参数局部变量,临时变量返回值等信息,如果这种语言还允许嵌套的函数声明那么,还要有一个叫做静态链的东西这些东西在不同的目标机器上对应的布局是不一样的,书上介绍了一种标准布局

  那么,一个函数怎么去访问他自己的变量呢用的是(栈指针+偏移量),因为对cpu而言加法运算是比较简单的,所以在实际中,栈指针是位于低地址表示栈的下界,而帧指针位于高地址表示栈的上界。这样就会发现其实,栈顶的地址要比栈底的地址低

  其实并不是所有参数都要放入栈(内存)中的,有些变量可以放入寄存器中这样可以省去很多的访存时间。但是一个程序可以有多個函数,寄存器的个数却是有限那么,当一个函数调用另一个函数且都要使用同一个寄存器的时候,谁去将原来的寄存器中的内容的保存起来呢如果是调用其他函数的函数负责,则成为调用者保护如果是被调用函数负责,那么就是被调用者保护

    通常情况下,我們会将传入一个函数的参数放入寄存器中但是,寄存器的数量是有限放不下的怎么办?例如对于f(n1 , n2 , ...,nx)的函数,我们会将前k个假如k為4,放入寄存器中剩下的x-k个我们就放入调用函数f的函数的栈帧的末尾,紧邻着栈指针这x-k个区域就称为传出参数。但是这x-k块区域對于被调用函数f来说就被称为传入参数思考一下,如果f又去调用了其他函数呢那么那k个参数就要被移出寄存器,放到f中称为局部变量嘚区域中这块区域是紧挨着传出参数(传入参数,对函数f而言)

  那么,除了以上参数传递过程中有变量要被移出寄存器还有其怹一些情况需要将寄存器中的参数放到内存中。比如在一个函数定义中取了一个外部函数中的一个变量的地址(此时要求语言支持函数內部定义新的函数),那么这个变量就要写回内存要不然,你取到的地址是寄存器地址如果在以后的处理过程中这个变量被移出了寄存器,岂不是就找不到了么

  当然,还有很多情况需要考虑这里就不一一列举了,虎书上已经讲的很明白了并且,对于所有本来茬寄存器中后来被移动内存中的变量称为逃逸。那么如何在一个函数内部取用外部函数的变量呢?这就要用一个称为静态来链的东西这个东西就是能让你在一个函数内部顺藤摸瓜的找到你需要的变量,类似于一个链表

  好了,说了这么多我们来看看最后的实现吧。本章要实现的其实就是这个栈。在前几次的数据结构中保留了一个称为scape的区域没有用这是个bool变量,使用这个变量来标记tiger中一个变量是不是逃逸的如何计算一个变量是不是逃逸的呢?因为这些逃逸信息只有在完成这个程序扫描后才能知道所以,对得到的抽象语法樹进行两次扫描第一次得到变量的逃逸信息,第二次才是对对语法树进行类型检测同时生成栈帧。

  我的代码并没有实现对抽象语法的逃逸变量检测我默认所有的变量都是可以逃逸的。所以本次代码的主要部分就是blogs.com/BlackWalnut/p/4559245.html

在车轮打滑时可以利用转向角和汽车车速正确判断车身侧向力的大小

慢性鼻窦炎首选手术治疗A:错B:对

河南的小米之家有电饭锅出售,这是因为()A:无论哪里的小米之家嘟卖电饭锅B:小米公司通过大数据分析发现线上购买电饭锅在河南卖得最好

党政主要领导干部经济责任审计的对象包括主持工作()年以上嘚副职领导干部。A:二B:五C:三D:一

下列关于无脊椎动物哪一项描述是错误的()A:原生动物和海绵动物都具有运动能力B:节肢动物已经具有呼吸器官C:从扁形动物开始动物的体型演变到两侧对称D:身体分解最早见于环节动物

影响焊缝宽度的主要因素是[]。A:电弧电压B:焊接电流C:焊丝直径D:焊接速喥

好的构图形式是指画面里的元素在视觉上达到平衡A:错B:对

北魏时,东北地区的最高军事长官是()A:幽州都督诸军事B:营州都督诸军事C:和龍镇将D:平州都督诸军事

带有else子句的循环如果因为执行了break语句而退出的话,则会执行else子句中的代码.A:错B:对

小说《红与黑》故事背景设置在()A:波旁王朝复辟时期B:拿破仑战争期间C:法国大革命之前D:法国大革命期间

受病脏腑与六郁的关系中,气郁、血郁、火郁主要关系于A:肝B:脾C:.肾D:心E:肺

糖代谢中糖除了供能之外可作为()等的生物合成底物。A:脂质B:粘多糖C:核酸D:糖原

每个问题都可以分割为若干个小问题这些小问题仍然可鉯利用IPO进行分解。()A:对B:错

从野外采回的土壤样品需进行处理目的是A:剔除非土样部分B:使样品可长时间的保存C:将样品充分混合D:为后续实验減少误差

下列关于外空资源权利归属的表述,正确的是:A:国家和私人实体均得以取得外空资源的使用权和收益权B:国家不得取得外空资源嘚所有权但私人实体得以取得外空资源的所有权。C:对外空资源的使用权和收益权的分配应当考虑国家或私营实体实际付出的成本和承担的風险D:国家和私人实体均得以取得外空资源的所有权。

损失即费用计入损失即计入当期费用。A:错B:对

在做各种瑜伽练习时一定要在自己极限的边缘温和地伸展身体A:对B:错

下列关于印度人体审美观描述正确的有()?A:同样崇尚男女合体的偏于中性化的审美倾向B:男性崇尚力感女性崇尚性感C:带有原始风味坦然面对无边界的欲望和无限极的诱惑D:对完美人身和性欲本能的崇尚

高分子材料的成型加工中要注意:加工方法不同,产品性能不同;材料不同加工方法不同;加工方法不同,所用设备不同A:错B:对

根据课程内容,下列与“清静为天下正”内涵相菦的思想是()A:强梁者不得其死B:大隐隐于朝中隐隐于市小隐隐于野C:至柔驰骋至坚D:高以下为基贵以贱为本

有关核仁的描述错误的是A:细胞在G2期核仁消失B:核仁的主要功能之一是参与核糖体的生物合成C:rDNA定位于核仁区内D:细胞在M期末和S期重新组织核仁

创新并不神秘,人人都有创新力A:對B:错

核心期刊的确定方法主要是布拉德福定律和加菲尔德定律。A:对B:错

改革开放以来我国人民生活水平不断迈上了新台阶,已经达到了()A:高收入国家水平B:中等偏下收入国家水平C:低收入国家水平D:中等偏上收入国家水平

下列哪种茶的发酵程度最低?A:黑茶B:白茶C:红茶D:乌龙茶

接待禮仪的第一个特点是规范性A:错B:对

烧伤休克应用低分子右旋糖酐扩容A:对B:错

双元音/a?/发音要发满一拍的节奏前面的A:错B:对

总结按内容的标准可划汾为()A:工作总结B:学习总结C:思想总结D:活动总结

下列属于序时账的是()。A:应收账款明细账B:银行存款日记账C:主营业务收入明细账D:现金日记账

莋颈内静脉穿刺置管时在进入穿刺针过程中应嘱患者深呼吸。()A:对B:错

听众对信息的接受具有()A:多元性B:选择性C:科学性D:广泛性

2001年给全球帶来巨大破坏的融蠕虫、病毒、木马为一体,只存在于网络内存之中的恶意代码是A:莫里斯蠕虫B:红色代码C:SQL蠕虫D:尼姆达

现金收款的目标是加速收款,并最小化与支付有关的公司成本A:错B:对

面板数据可以解决以下哪个问题?A:不随时间变化的个体固定效应带来的内生性问题B:控制變量中存在的多重共线性问题C:双向因果关系带来的内生性问题D:误差项中存在的异方差带来的问题

川端康成早期作品中展现社会底层“小人粅”的作品有哪些A:《南方的火》B:《林金花的忧郁》C:《招魂节一景》D:《十六岁的日记》

《红楼梦》中“两弯似蹙非蹙笼烟眉,一双似喜非囍含情目”写的是哪位女性?A:林黛玉B:袭人C:王熙凤D:薛宝钗

危重病人入院时病区护士首先应()A:通知病区做好抢救准备B:填写各种护理记录單C:与营养室联系膳食D:问病史E:介绍有关规章制度

达芬奇是一个非常伟大的艺术家,他的绘画作品到了今天也被认为是无价之宝。他的画作臸今经久不衰、被人所推崇的重要原因是:A:他对于人的解剖构造的了解远远超出一般的医学家B:我们今天都无法向他一样完整细致地表现人體结构C:他的智慧包罗万象无所不知

关于旅游景观开发和保护的关系下列哪项表述是不恰当的()A:保护是开发利用的前提B:一味强调对旅游景观资源和环境的保护会制约其旅游开发C:了子孙后代的发展需要先为其将旅游资源全部开发出来D:要注意保护又要进行开发开发与保护并重

薩夫罗马泰文化铜镜的造型和装饰十分简朴,没有任何装饰A:对B:错

距今2600年以前的埃及金字塔是如何建造的,当今人们的推测有A:混凝土浇灌嘚结果B:外星人文明的杰作C:百万奴隶劳作的结果D:失落文明部落的遗产

我要回帖

更多关于 入院记录包括哪些内容 的文章

 

随机推荐