奥鹏易百

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

帮助中心知识拓展客服QQ 515224986
查看: 499|回复: 0

大工20秋《编译原理基础》辅导资料十五

[复制链接]

2976

主题

1

回帖

5954

积分

论坛元老

积分
5954
发表于 2021-3-7 15:48:46 | 显示全部楼层 |阅读模式
扫码加微信
译原理基础辅导资料十五主    题:第六章 运行时存储空间的组织与管理
学习时间:2021年1月4日--1月10日“不忘初心、牢记使命”主题理论学习:
群众路线是我们党的生命线和根本工作路线,是我们党永葆青春活力和战斗力的重要传家宝。不论过去、现在和将来,我们都要坚持一切为了群众,一切依靠群众,从群众中来,到群众中去,把党的正确主张变为群众的自觉行动,把群众路线贯彻到治国理政全部活动之中。
                      摘选自《坚持和运用好毛泽东主席思想活的灵魂》《习近平谈治国理政》内    容:
我们这周主要学习第六章运行时存储空间的组织与管理非局部名字的访问和参数传递的相关内容,希望通过下面的内容能使同学们加深对本章相关知识点的理解。
教学目标:
1.学习全局数据安排和局部数据安排
2.能够理解调用序列的工作
重点和难点:
重点:
局部存储分配策略
活动记录
局部数据的安排
程序块
全局栈式存储分配
活动树和运行栈
调用序列
栈上可变长数据
悬空引用
堆式存储
非局部名字的访问-静态作用域
动态作用域
参数传递
难点:
调用序列
一、非局部名字的访问
过程内部如何访问过程外部声明的名字
不同的作用域规则下,非局部名字的访问方式有所不同
静态作用域
无过程嵌套的静态作用域(C语言)
有过程嵌套的静态作用域(Pascal语言)
动态作用域(Lisp语言)
无过程嵌套的静态作用域
过程体中的非局部引用可以直接使用静态确定的地址
局部变量在栈顶的活动记录中,可以通过base_sp指针来访问
无须深入栈中取数据,无须访问链
过程可以作为参数来传递,也可以作为结果来返回

无过程嵌套的静态作用域
过程体中的非局部引用可以直接使用静态确定的地址
局部变量在栈顶的活动记录中,可以通过base_sp指针来访问
无须深入栈中取数据,无须访问链
过程可以作为参数来传递,也可以作为结果来返回

三、动态作用域
被调用过程的非局部名字a和它在调用过程中引用的是同样的存储单元
基于运行时的调用关系
而不是基于静态作用域来确定
新的绑定仅为被调用过程的局部名字建立,这些名字在被调用过程的活动记录中占用存储单元
这一点与静态作用域没有区别
实现动态作用域的方法
深访问
用控制链搜索运行栈,寻找包含该非局部名字的第一个活动记录
浅访问
为每个名字在静态分配的存储空间中保存它的当前值
当过程p的新活动出现时,p的局部名字n使用在静态数据区分配给n的存储单元。n的先前值可以保存在p的活动记录中,当p的活动结束时再恢复
四、值调用
实参的右值传给被调用过程
值调用可以如下实现
把形参当作所在过程的局部名看待,形参的存储单元在该过程的活动记录中。
调用过程计算实参,并把右值放入形参的存储单元中。
五、引用调用
引用调用可以如下实现
把实参的左值放入形参的存储单元。
在被调用过程的目标代码中,任何对形参的引用都是通过传给该过程的指针来间接引用实参的。
六、换名调用
用实参表达式对形参进行正文替换。
 本章练习题:
(一)填空题
1、______________是最简单的传递参数的文法。
答案:值调用
2、引用某个已被回收的存储单元就称为______________。
答案:悬空引用
问答题
1、简述引用调用实现方法
把实参的左值放入形参的存储单元。
在被调用过程的目标代码中,任何对形参的引用都是通过传给该过程的指针来间接引用实参的。
2、常见的存储分配方式有哪些?
栈式、堆式、静态存储分配拓展资料菜鸟程序员的第一个半年总结8月份入职到现在已经工作半年了,作为一个刚进入职场的新人感觉有必要自我总结一下。
但说是总结还不如说是归纳一下半年来发现的问题,找一找原因,帮助自己尽快的成长。
因为8月份入职的时候才知道自己被分到了PHP的项目组,因为之前没有接触过PHP,就经历了1个月入职培训。所以这半年分了两个阶段,发现的问题也是有很大不同,还是分开总结的好。
入职培训阶段
1.喜欢抢话说
在前辈讲课的时候,经常性的想插嘴,自己知道一点的东西就像说出来,希望别人认可自己。这一点感觉十分不好,尤其是关于自己其实并不真正明白的知识。一知半解,但是还想表现自己,感觉这样更会使人反感。
这一点也不是头一次发现,大学期间就是这样。工作后才感觉一定要克制这种行为,这半年感觉有一定进步,希望2017年可以完全改掉。
2.不珍惜自由时间
培训阶段时间还是很富余的,但是一开始并没有完全利用这些时间,有几天甚至上班(虽然是培训)时间看娱乐视频。好在自己及时醒悟。
时间很宝贵啊,尤其是现在这种情况,知识还是越多越好,有些自由时间还是要利用起来,学技术知识,这样才有钱途啊。学学兴趣相关也好,也正是这段时间,自己学学了Python,也学习了Markdown等等一些相关的东西。
3.不重视基础
好高骛远,不知道其他刚毕业的人是不是有这种心理,感觉自己开始时确实是这样,基础还没打牢就想着接触一些比较前沿的技术。虽然说起来可能很好听但是真到实践的时候就不行了,不可取。
现在想想,还是说基础学好比较重要。感觉学习编程还是需要深度的。学习一种语言不光要关注它能干什么,更要关注它为什么能干这些,原理是什么。拿自己的例子来说,自己学了几天PHP后就开始自学框架,ThinkPHP、Laravel、Yii换着学了好几种。虽然确实学到了很多东西,也可以做出简单的程序,但是对其中的原理还是一知半解,十分模糊。但是后来自己学了什么是MVC,为什么要用MVC之后,瞬间感觉自己对之前学过的框架都有了更高层次的认识。4.不尊重制度
这里的意思是不遵守公司的一些规范,比如说上班时间在食堂吃早餐,发邮件不按公司基本格式等等。这些东西可能看起来很小,实际上代表一个人做事的态度。这方面做的确实不好,不知道为什么,有时候自己就会有一些侥幸心理。
下决心要改,制规则定出来就是要遵守的。可能有些时候会有一些这样那样的理由,但是终究还是自己做的不够好。不要管别人怎么样,严格要求自己还是有好处的。
正式工作阶段
相对于实习阶段,正式进入工作阶段后发现的问题更多也更具体,而且后果也更严重。实践出真知啊。
1.怯场,开会说话容易发抖
说起来还真是害羞啊。有的时候开会需要当着同组的人说一些事情,不知道为什么就会特别激动、紧张,然后说话就会发抖,一抖就组织不好语言,搞得场面一度非常尴尬。
经过这段时间的自我开导已经好了很多了,现在虽然说前几句话的时候还是会有些抖,但是后面就好了。感觉有改善的原因主要有两点。一是,心态比较放松了,说错了也没啥大不了的。二是随着经验和能力的增长说话越来越有底气了。其实真正当你有话想说,有话该说的时候也就不紧张了。
2.不习惯请教问题
刚接触工作,有很多地方不熟悉,尤其是对业务十分不清晰,所以经常会遇到一个问题,耗了一个下午还是没有解决。
其实有些问题对你来说是问题,但是对于一些前辈或者有经验者是可以轻松解决的。所以,遇到自己憋了很久的问题(主要是业务问题)要尽快去问一下相关前辈,不要不好意思。
3.工作一多就手忙脚乱
接触的起一个项目是一个逻辑简单但是涉及的文件很多的小改动,大概100多个页面,160多个文件。虽然改动很小但是十分繁琐,在加上对整体的工作流程不熟希,搞得自己手忙脚乱,十分被动。
仔细分析分析,感觉一方面是自己并没有严格的按照工作规范来做,另一方面也是主要的原因是自己工作推进的方式有问题。
自己一开始是按照一步一步按照瀑布式开发的思想来做的,这样做看起来每一步都非常清晰但是当出现需求变更的时候会把局面搞得特别复杂(也可能是自己能力不够)。
后来,在听了一次敏捷开发的讲座之后就开始尝试在工作流程中融入一些敏捷开发的思想,比如将一个项目按功能再细分为多个小项目单独循环。这种方式在处理这种涉及内容多而且比较细碎的项目上对我有很大帮助。
4.不重视版本控制
在毕业之前都是一个人在写程序,做东西,从来没有重视过版本控制。这半年来发现,在工作中几乎不可能有一个人独立完成一个项目的机会,都是多个人分工完成。这样版本控制也就成了一个比较重要的环节。这方面出现的最大的问题就是自己私下把SVN上的文件删除了,导致后来的工作完全进行不下去了,几个人花了半天时间才把问题解决,浪费了大家很多时间。这个可以分为几个问题。
一是上传代码不写备注或者备注模糊,这个不出错还好如果改了需求或者发现了什么BUG想回到正确的版本会十分蛋疼。
二是删除SVN上的文件不通知其他人。这个问题首先是不能随便删除已经上传的文件,再一个是删除文件就算是可以删除也要通知相关人员以免出错。
5.不仔细理解需求
主要是因为太自以为是。稍微看一眼要求就开始改。完全不去想为什么改,要到达什么效果,这样改是不是最好的方法。
虽然现在再外包公司工作但是深入理解设计思路的心还是要有的,毕竟自己不想局限于此。做一件事就要吃透一件事,不要一知半解,之前吃过的亏已经够多了,一定要记住这一点。
6.要敢于承担责任
这点一定要检讨,不光是在工作上,各个方面都。要对自己的错误负责,改错了就是改错了,不知道就是不知道。有些东西不是躲就能躲掉的。
总结
现在总结起来,主要还是态度和认识的问题。自己态度不够端正,还以为自己是学生,要有人管着自己,引导自己。用学生的思维来工作。再就是对工作的认识不足,甚至有偏差,对于业务,技术,流程等等理解的不够全面。慢慢来吧,踏踏实实走好每一步。
2017的期望
总结完了2016的问题(感觉自己好菜啊),还是要对2017有所期望的。
1.多交朋友,拓宽自己的视野
工作以后发现自己的朋友圈子太小视野也太狭隘,2017年希望可以多交朋友,多涨见识,争取让自己的思想有所进步。
2.在加大知识面的同时,着重注意知识深度
多学习吧,趁着年轻多学点,自己已经很幸运了,可以从事自己喜欢的职业,更要努力学习了。
3.多读书
毕业之后感觉自己活的太功利了,没怎么看过专业以外的书了,2017一定要拿出一部分时间多看书。
4.多关心身边的人
最近意识到自己很少关心别人,无论是父母还是朋友,2017希望自己可以学会关心别人啊,尤其是父母,都有点老了。
---------------------
作者:Clew123
来源:CSDN
原文:https://blog.csdn.net/zjiang1994/article/details/54428867
版权声明:本文为博主原创文章,转载请附上博文链接!本内容由易百教育整理发布
网址www.openhelp100.com
QQ 515224986
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|www.openhelp100.com ( 冀ICP备19026749号-1 )

GMT+8, 2024-11-24 10:34

Powered by openhelp100 X3.5

Copyright © 2001-2024 5u.studio.

快速回复 返回顶部 返回列表