- 3.02 MB
- 2022-04-29 14:34:30 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'进入夏天,少不了一个热字当头,电扇空调陆续登场,每逢此时,总会想起那一把蒲扇。蒲扇,是记忆中的农村,夏季经常用的一件物品。 记忆中的故乡,每逢进入夏天,集市上最常见的便是蒲扇、凉席,不论男女老少,个个手持一把,忽闪忽闪个不停,嘴里叨叨着“怎么这么热”,于是三五成群,聚在大树下,或站着,或随即坐在石头上,手持那把扇子,边唠嗑边乘凉。孩子们却在周围跑跑跳跳,热得满头大汗,不时听到“强子,别跑了,快来我给你扇扇”。孩子们才不听这一套,跑个没完,直到累气喘吁吁,这才一跑一踮地围过了,这时母亲总是,好似生气的样子,边扇边训,“你看热的,跑什么?”此时这把蒲扇,是那么凉快,那么的温馨幸福,有母亲的味道! 蒲扇是中国传统工艺品,在我国已有三千年多年的历史。取材于棕榈树,制作简单,方便携带,且蒲扇的表面光滑,因而,古人常会在上面作画。古有棕扇、葵扇、蒲扇、蕉扇诸名,实即今日的蒲扇,江浙称之为芭蕉扇。六七十年代,人们最常用的就是这种,似圆非圆,轻巧又便宜的蒲扇。 蒲扇流传至今,我的记忆中,它跨越了半个世纪,也走过了我们的半个人生的轨迹,携带着特有的念想,一年年,一天天,流向长长的时间隧道,袅工程制图第2章点线面
Pa投射线SA空间点投影法是投射线通过物体,向选定的平面投射,并在该平面上得到图形的方法。上一页下一页返回目录2.1投影法的基本知识2.1.1投影法投射中心投影面投影光源—投射中心光线—投射线选定的平面—投影面在投影面上所得到的图形—投影概念
2.1.2投影法的分类根据投射线的类型(汇交或平行)不同:投影法中心投影法(投射线汇交)平行投影法(投射线平行)★上一页下一页返回目录
正投影法斜投影法正投影法:投射线与投影面相垂直的平行投影法。斜投影法:投射线与投影面相倾斜的平行投影法。上一页下一页返回目录
斜投影法正投影法工程图样(零件图和装配图)多面投影图单面投影图单面投影图辅助图样(正等轴测图)辅助图样(斜二轴测图)用途用途平行投影法的用途:上一页下一页返回目录
上一页下一页返回机械零件图——轴(工程图)
上一页下一页返回齿轮(轴测图)
工程上常用的投影图1.正投影图(多面)2.轴测图(单面)3.透视图(单面)4.标高投影图(单面)上一页下一页返回目录
工程上常用的投影图图样名称特点应用正投影图(多面)优点:能准确表达物体形状和大小,且作图方便。缺点:缺乏立体感,直观性较差,要运用正投影法对照几个投影才能想象出物体的形状。在工程上,正投影图是最常用的图样。如:(1)零件图(2)装配图轴测图(单面)优点:一个图形能同时反映物体的正面、水平面和侧面的形状,而富有立体感。缺点:不能反映物体各表面的实形,且作图较复杂。在工程上,常把轴测图用作辅助图样,说明产品的结构和使用方法;在设计和测绘中,帮助进行空间构思和想象物体形状;空间机构和管路布局。如:(1)正等测(2)斜二测透视图(单面)优点:透视投影符合人的视觉映象,看起来自然、逼真。缺点:作图复杂,度量性差。主要用于建筑工业设计等工程中,如绘制效果图或建筑物的外形。标高投影图(单面)优点:能解决物体高度方向的度量问题。主要用于地图以及土建工程图中表示土木结构或地形。上一页下一页返回目录
1.实形性CDEBAPabedc当线段或平面平行于投影面时,其投影反映实长或实形。2.1.3正投影法的基本特性上一页下一页返回目录
2.积聚性edca(b)CDEBAP当线段或平面垂直于投影面时,其投影积聚为点或线段。上一页下一页返回目录
3.类似性CDEedcBAabP当线段或平面倾斜于投影面时,其投影变短或变小。上一页下一页返回目录
正投影法的基本特性1.实形性当线段或平面平行于投影面时,其投影反映实长或实形。2.积聚性当线段或平面垂直于投影面时,其投影积聚为点或线段。3.类似性当线段或平面倾斜于投影面时,其投影变短或变小。上一页下一页返回目录
HVOXaaA点的一个投影能否确定该点的空间位置?问题的提出2.2点的投影2.2.1点的三面投影上一页下一页返回目录
1.三面投影体系的建立HVXOZYW三投影面体系由:正立投影面(V面)、水平投影面(H面)、侧立投影面(W面)三个投影面构成。三个投影面的交线OX、OY、OZ称为投影轴,三个投影轴的交点称为原点。上一页下一页返回目录
2.点的三面投影HVXZYWOA点的三面投影图是将空间点向三个投影面作正投影后,将三个投影面展开在同一个面后得到的。展开时,规定V面不动,H面向下旋转90,W面向右旋转90。aaaHaaVWXOZYWYHaaaXOZYWYHa规定(以点A为例):H面投影-水平投影-aV面投影-正面投影-aW面投影-侧面投影-a上一页下一页返回目录
3.点的投影规律HVXZYWOayaxazaaaaaaXOZYWYHaxayazayA(1)aa⊥OX轴aaY=aaz=A到W面的距离(2)aa⊥OZ轴aax=aaY=A到H面的距离(3)aax=aaz=A到V面的距离长对正高平齐宽相等上一页下一页返回目录
例1已知点A的正面与侧面投影,求点A的水平投影。ZYHXYWOaaa分析及作图过程:(1)依据“长对正”,过a做垂直OX轴的垂直辅助线。(2)根据“宽相等”,可先作出“45°等宽线”,过a作OYW的垂线与45°线相交,过交点向左作水平辅助线。(3)垂直辅助线和水平辅助线的交点即为A点的水平投影a。上一页下一页返回目录
xA4.点的投影与直角坐标的关系若把三个投影面当作空间直角坐标面,投影轴为直角坐标轴,点的投影就反映了点的坐标值,其投影与坐标值之间存在着对应关系。aaXOZYWYHaxayazayyAxAzAHVXZYWOAayaxazaaaayAxAyAzAzAA(xA,yA,zA);a(xA,yA);a(xA,zA);a(yA,zA)(xA,yA,zA)上一页下一页返回目录
例2已知点B的坐标为(25,20,30),求作点B的三面投影。XYWYHZO(2)在OX轴上截取坐标长度25,过截点作垂直线。(3)在OZ轴上截取坐标长度30,过截点作水平线,得到a。(4)在OY轴上截取坐标长度20,作出投影a、a″。a′a″a302520(1)建立投影体系。分析及作图过程:上一页下一页返回目录
XOZYWaaabbbccc5.特殊位置点的投影投影面上的点:一个投影与投影面重合,另两个投影投影轴上。投影轴上的点:两个投影与投影轴重合,另一个投影在原点上。与原点重合的点:点的三个坐标为零,三个投影都与原点重合。HVXZYWaaacccObbbACYHB上一页下一页返回目录
1.两点相对位置的确定XOZYaaabbbBA两点的相对位置是根据两点相对于投影面的距离远近(或坐标大小)来确定的。X坐标值大的点在左;Y坐标值大的点在前;Z坐标值大的点在上。XZYWYHO2.2.2两点之间的相对位置关系上下左右后前左右A点在B点()方。右上前YH上下后前aaaaabbb上一页下一页返回目录
2.重影点若两点位于某投影面的同一条投射线上,则这两点在该投影面上的投影重合,这两点称为该投影面的重影点。Dc(d)a(b)abABcdCOX重影点的可见性判别:上遮下前遮后左遮右被遮挡的投影加“()”上一页下一页返回目录
OXZYaZXOYHYW空间任何一直线可由直线上任意两点所确定,直线在某一投影面的投影可由该直线上某两点的同面投影所确定。aaabbbbbbaaAB2.3.1直线的投影2.3直线的投影上一页下一页返回目录
投影面平行线投影面垂直线正平线(∥V,对H、W倾斜)侧平线(∥W,对H、V倾斜)水平线(∥H,对V、W倾斜)正垂线(⊥V面,∥H,∥W)侧垂线(⊥W面,∥H,∥V)铅垂线(⊥H面,∥V,∥W)一般位置直线特殊位置直线与三个投影面都倾斜的直线平行于一个投影面,与其它两个投影面倾斜的直线垂直于一个投影面,与其它两个投影面平行的直线2.3.2各种位置直线的投影特性投影面倾斜线上一页下一页返回目录
OXZY1.一般位置直线投影特性ABbbabaaZXabaOYHYWabb投影特性:(1)三面投影都倾斜于投影轴。(2)投影的长度均小于实长,且不反映对投影面的倾角、、。上一页下一页返回目录
XZYO正平线—平行于正面投影面的直线XabbaOZYHYW投影特性:(1)在其平行的投影面上:ab=AB,反映、角的真实大小。(2)另两投影面上:abOX;abOZ。2.投影面平行线的投影特性abaababbAB上一页下一页返回目录
XZYO侧平线—平行于侧面投影面的直线XZOYHYWabba投影特性:(1)在其平行的投影面上:ab=AB,反映、角的真实大小。(2)另两投影面上:abOZ;abOYH。baaababbAB上一页下一页返回目录
水平线—平行于水平投影面的直线XZYOaababbXababOZYHYWAB投影特性:(1)在其平行的投影面上:ab=AB,反映、角的真实大小。(2)另两投影面上:abOX;abOYW。ba上一页下一页返回目录
投影面平行线的投影特性(1)直线在所平行的投影面上的投影,反映其实长和直线对另外两个投影面的倾角(具有实形性)。(2)直线在另外两个投影面上的投影分别平行于相应的投影轴,且小于实长(具有类似性)。上一页下一页返回目录
正垂线—垂直于正面投影面的直线OXZY投影特性:(1)在其垂直的投影面上:ab积聚成一点。(2)另两面投影上:ab=ab=AB;abOX;abOZ。ZX(a)bbaOYHYWabb(a)babaAB3.投影面垂直线的投影特性上一页下一页返回目录
侧垂线—垂直于侧面投影面的直线OXZYZXa(b)baOYHYWab投影特性:(1)在其垂直的投影面上:ab积聚成一点。(2)另两面投影上:ab=ab=AB;abOYH;abOZ。a(b)baabAB上一页下一页返回目录
OXZYZbXaba(b)OYHYWa铅垂线—垂直于水平投影面的直线ABba(b)aab投影特性:(1)在其垂直的投影面上:ab积聚成一点。(2)另两面投影上:ab=ab=AB;abOX;abOY上一页下一页返回目录
投影面垂直线的投影特性(1)直线在其所垂直的投影面上的投影积聚成一点(积聚性)。(2)直线在另外两个投影面上的投影分别垂直于相应的投影轴,且反映直线的实长(实形性)。上一页下一页返回目录
1.从属性:若点在直线上,则点的各个投影必在直线的各同面投影上。利用这一特性可以在直线上找点,或判断已知点是否在直线上。2.3.3点在直线上的投影特性CcYHYW2.定比性:属于线段上的点分割线段之比等于其投影之比。即AC:CB=ac:cb=ac:cb=ac:cb上一页下一页返回目录
例3已知点K在线段AB上,已知其水平投影,求其正面投影。=kb=ak解法一:(利用“从属性”,引入第三投影)解法二:(利用点分线段成定比)●aabbkab●k●k●aabbk●●k●XOXO上一页下一页返回目录
直线的迹点mmnnXO直线与投影面的交点称为迹点。它是属于直线上的特殊点,既是直线上的点又是投影面上的点。XAbaamNnbBMmnOVHabba上一页下一页返回目录
2.3.4一般位置线段的实长及对投影面的倾角ABbbaaCXO|zA-zB|过A作AC∥ab得直角三角形ABC,其中AC=ab,BC=Bb-Aa=zB-zA,斜边AB即为实长,AB与AC的夹角即为AB对H面的倾角α,这种方法称为直角三角形法。|zB-zA|ABXaabbAB|zB-zA|abO上一页下一页返回目录
作图要领用线段在某一投影面上的投影长作为一条直角边,再以线段的两端点相对于该投影面的坐标差作为另一条直角边,所作直角三角形的斜边即为线段的实长,斜边与投影长间的夹角即为线段与该投影面的夹角。|zA-zB|ABXaabbAB|zA-zB|abO上一页下一页返回目录
直角三角形的四个要素四个要素包括:实长、投影长、坐标差及直线对投影面的倾角。已知四要素中的任意两个,便可确定另外两个。ABab|zA-zB|斜边直角边(投影)直角边(坐标差)夹角(投影与斜边)实长水平投影△Zα正面投影△Yβ侧面投影△Xγ上一页下一页返回目录
例4已知线段的实长AB以及ab和a’,求它的正面投影a’b’。aXabAOBb0bb0bb0b’b’上一页下一页返回目录
若空间两直线互相平行,其各组同面投影必平行。反之,若两直线的各组同面投影都互相平行,则空间两直线必平行。1.平行两直线XObaabdcdcXbaadbbccABCD2.3.5两直线的相对位置O上一页下一页返回目录
对于一般位置直线,只要有两组同名投影互相平行,空间两直线就平行。AB与CD平行。abcd①abcdcabdAB与CD不平行。对于特殊位置直线,只有两组同名投影互相平行,空间直线不一定平行。cbaddbac②bdca例5判断图中两条直线是否平行。上一页下一页返回目录
2.相交两直线两相交直线在同一投影面上的投影仍相交,且交点符合点的投影规律。反之,若两直线在同一投影面上的投影相交,且交点符合点的投影规律,则该两直线相交。XBDACKbbaaccddkkOdObXaabkcdck上一页下一页返回目录
3.交叉两直线凡不满足平行和相交条件的直线为交叉两直线。XOBDACbbaaccdd211(2)21bXaabcddc11(2)2O上一页下一页返回目录
dcaboYWYHZXaacddcbb例6判断两直线的相对位置2应用定比定理1利用侧面投影如何判断呢?结论:两直线交叉mm上一页下一页返回目录
2.3.6直角投影定理AHBCacbcXbacba互相垂直(相交或交叉)的两直线其中一条为投影面平行线时,则两直线在投影面上的投影必定互相垂直。反之,若两直线在某一投影面上的投影成直角,且其中一条直线平行于该投影面时,则空间两直线一定垂直。O上一页下一页返回目录
1.垂直相交的两直线的投影BHACbcacOXabcab已知:AB∥H面,AB⊥BC,求证:∠abc=90°证明:∵AB∥H面∴AB⊥Bb又∵AB⊥BC∴AB⊥平面BbcC又∵AB∥ab∴ab⊥平面BbcC∴ab⊥bc,即:∠abc=∠ABC=90°上一页下一页返回目录
2.交叉垂直的两直线的投影BHACcbaMNnmXbabamnnmABAC,且AB∥H面,则有abac上一页下一页返回目录
bbaaOfeefX例7过点A作EF线段的垂线AB。上一页下一页返回目录
例8求点E到水平线AB的距离。XOa’b’abe’ed’dyD-yE所求距离上一页下一页返回目录
例9作三角形ABC,ABC为直角,使BC在MN上,且BCAB=23。bbcABab|yA-yB|bc=BCnmaaXmnOc上一页下一页返回目录
2.4平面的投影2.4.1平面的表示法不在同一直线上的三点直线及线外一点c●bab●●a●●c●d●d●两条平行直线abcabc●●●●●●两条相交直线任意平面图形c●●●abcab●●●c●●●●●●ababcb●●●●●●acabc上一页下一页返回目录
1.4.2各种位置平面的投影特性投影面平行面投影面垂直面正平面(∥V,⊥H;⊥W)侧平面(∥W,⊥H;⊥V)水平面(∥H,⊥V;⊥W)正垂面(⊥V面,对H、W倾斜)侧垂面(⊥W面,对H、V倾斜)铅垂面(⊥H面,对V、W倾斜)一般位置平面特殊位置平面与三个投影面都倾斜的平面平行于一个投影面,与其它两个投影面垂直的平面垂直于一个投影面,与其它两个投影面倾斜的平面投影面倾斜面上一页下一页返回目录
1.一般位置平面abbaccbac投影特性:三面投影均为小于实形的类似形。且不反映该平面对投影面的倾角、、。abcbacabcCAB上一页下一页返回目录
正平面投影特性:(1)在其平行的投影面上:abc反映ABC实形<实形性>。(2)另两个投影面上:abc、abc积聚为直线<积聚性>,并平行相应的投影轴。cabbacbcaVWHbacbcaabcCBA2.投影面平行面上一页下一页返回目录
VWHabcbacabc水平面cabbbaacc投影特性:(1)在其平行的投影面上:abc反映ABC实形<实形性>。(2)另两个投影面上:abc、abc积聚为直线<积聚性>,并平行相应的投影轴。CAB上一页下一页返回目录
cabbbacca侧平面VWHbcbacabcaCAB投影特性:(1)在其平行的投影面上:abc反映ABC实形<实形性>。(2)另两个投影面上:abc、abc积聚为直线<积聚性>,并平行相应的投影轴。上一页下一页返回目录
投影面平行面的投影特性(1)在平面所平行的投影面上,其投影反映实形<实形性>。(2)在另外两个投影面上,平面的投影积聚成直线<积聚性>,并平行于相应的投影轴。上一页下一页返回目录
正垂面αababbacccXOZYHYWVWHαabcABCacbbca投影特性:(1)在其垂直的投影面上:abc积聚为直线<积聚性>,abc与OX、OZ的夹角反映α、。(2)在另外两个投影面上:abc、abc为ABC的类似形<类似性>。3.投影面垂直面上一页下一页返回目录
铅垂面投影特性:(1)在其垂直的投影面上:abc积聚为直线<积聚性>,abc与OX、OY的夹角反映、。(2)在另外两个投影面上:abc、abc为ABC的类似形<类似性>。VWHABCacbabcbcaacaccabbbXOZYHYW上一页下一页返回目录
侧垂面abbbaaαβcccXOZYHYWVWHbcaCbcaABacbβα投影特性:(1)在其垂直的投影面上:abc积聚为直线<积聚性>,abc与OZ、OY的夹角反映α、β。(2)在另外两个投影面上:abc、abc为ABC的类似形<类似性>。上一页下一页返回目录
投影面垂直面的投影特性(1)在平面所垂直的投影面上的投影积聚成倾斜于投影轴的直线<积聚性>,并反映该平面对其它两个投影面的倾角。(2)平面的另外两个投影都是小于原图形的类似形<类似性>。上一页下一页返回目录
取属于平面的点点在平面上的几何条件是:点在平面内的某一直线上。因此取属于平面的点,要先取属于该平面的已知直线。ABCDEabcabcddee1.4.3平面上的点和直线上一页下一页返回目录
取属于平面的直线直线在平面上的几何条件:①通过平面上的两点;②通过平面上的一点且平行于平面上的一条直线。故取属于平面的直线,可经过属于该平面的两点;或经过该平面的一点,且平行于属于该平面的一直线。ABCEDabcabcddeeFff上一页下一页返回目录
例6已知ABC平面,(1)判断点K是否属于该平面。(2)已知平面上一点E的正面投影e’作出水平投影。kkabcabcddeemmXO上一页下一页返回目录
abcbacmnnm例7已知ABC平面,试过点C作属于该平面的正平线,过点A作属于该平面的水平线。XO上一页下一页返回目录
例8已知点E在ABC平面上,且点E距离H面15,距离V面10,试求点E的投影。Xabcbacmnmnrsrs1015eOe上一页下一页返回目录
本章小结1.了解投影法的分类和应用,重点掌握正投影法的基本特性(实形性、积聚性和类似性)。2.掌握点的投影规律、点的投影与其直角坐标的关系,以及两点的相对位置和重影点(可见性判别)。3.熟练掌握各种位置直线的投影特性和作图方法;掌握直线上的点的投影特性(从属性和定比性);了解两直线平行、相交和交叉的投影特性。4.熟练掌握各种位置平面的投影特性及作图方法;掌握平面上点和直线的几何条件及作图方法;了解平面内投影面平行线的作图方法。上一页返回目录
第12章代码生成学习目标掌握:基本块代码生成算法,寄存器分配算法理解:待用信息,活跃信息
12.1代码生成概述12.2一个计算机模型12.3一个简单的代码生成器
12.1代码生成概述代码生成的任务把中间代码(经过优化或未经过优化)作为输入,将其转换成特定机器的机器语言或汇编语言作为输出,这样的转换程序称为代码生成器(CodeGenerator)。目标代码生成需要考虑的基本问题:如何使生成的目标代码较短如何充分利用计算机的寄存器,减少目标代码访问存储单元的次数
目标代码生成的一些共同的问题,而不讨论某个特定机器的代码生成问题寄存器分配算法目标代码的执行效率很大程度依赖于寄存器的使用;基本块的代码生成算法寄存器分配算法仅限定在一个基本块的范围内,以四元式的中间代码作为输入,以一个称作M的模型机的汇编语言作为输出。
12.2一个计算机模型M模型机具有n个通用寄存器R1,R2,R3,…,Rn,它们既可以作为累加器,又可以作为变址器。约定:op表示运算,C表示常量;M表示内存单元(用变量名表示该变量所在的单元),Ri表示寄存器;*表示间接寻址
寻址类型指令格式意义(设op是二目算符)直接型opRi,M(Ri)op(M)=>Ri寄存器型opRi,Rj(Ri)op(Rj)=>Ri变址型opRi,c(Rj)(Ri)op((Rj)+c)=>Ri间接型opRi,*M(Ri)op((M))=>RiopRi,*Rj(Ri)op((Rj))=>RiopRi,*c(Rj)(Ri)op(((Rj)+c))=>Ri指令系统与寻址方式令X代表Ri或者M,则(X)表示直接取X的内容作为操作对象,((X))表示一层间接,即取X的内容作为地址
特殊指令除了上述的寻址方式和一般的运算指令之外,计算机模型的指令系统中还包括如下特殊指令主要有两大类:内存与寄存器交换类:包括LD与ST;比较与转移类:如CMP与JX
等于零转X单元JzX将A单元与B单元的值进行比较,把结果置入状态字CMPA,B不为零转X单元JnzX无条件转向X单元JX等于转X单元J=X把寄存器Ri的内容存回存储单元B,即(Ri)=>BSTRi,B小于转X单元JRiLDRi,B意义指令意义指令
例:条件语句ifA>BgotoX中间代码:(J>,A,B,X)目标代码:CMPA,BJ>X
12.3一个简单的代码生成器一个基于基本块的代码生成器它的输入是四元式中间代码,输出是M机器的汇编代码着重讨论在基本块内如何充分利用寄存器
12.3.1寄存器分配原则在指令的执行代价中,寄存器的代价是最小的,因此总是希望将尽可能多的运算对象放在寄存器中;由于任何一个计算机模型中的寄存器个数都是有限的,因而需要根据一些原则,对寄存器进行分配
基于基本块的寄存器分配的一般原则:当生成某变量的目标代码时,尽量让变量的值或中间结果保留在寄存器中,直到寄存器不够分配为止,这样引用变量值时可减少对内存的存取次数,提高运行速度进入基本块时所有寄存器是空闲的,当到基本块出口时,将变量的有用值存回内存,释放所有寄存器在基本块内,后边不再被引用的变量占用的寄存器应尽早释放,以提高寄存器的利用效率
12.3.2待用信息链表法引入原因:为了把在基本块内还要被引用的变量值尽可能保存在寄存器中,不再被引用的变量所占的寄存器尽早释放,在翻译四元式i:A:=BopC时,必须知道变量A,B,C在基本块内其后的引用情况,即所谓变量的待用信息。
基本定义:定值、引用、活跃在形如i:A:=B+C的代码中,出现在“:=”左边和右边的变量,分别被称为对变量的定值和引用,i被称为变量的定值点或引用点。若变量的值在i之后的代码序列中被引用,则称变量在i点是活跃的。待用信息在基本块中,变量A在四元式i中被定值,在i后面的四元式j中引用A值,且从i到j之间没有其他对A的定值点,称j是i中对变量A的待用信息(下次引用信息)。所有这样的待用信息jk(k=1,2,…)构成待用信息链。
只在基本块内考虑待用信息,一个变量在基本块的后继中是否被引用,可从活跃变量信息得知(出基本块后,变量是否活跃需要进行全局的数据流分析才能确定)
在基本块B2内:R在(3)处定值,在(4)处被引用,所以(4)是(3)中R的待用信息流程B3->B2:X在(5)处被定值,在(3)处被引用,所以X在(5)处是活跃的(1)readX(2)readY(3)R:=XmodY(4)ifR=0goto(8)(5)X:=Y(6)Y:=R(7)goto(3)(8)writeY(9)haltB1B2B3B4
基本块内求待用信息的算法假设符号表中含有变量的待用信息和活跃信息栏;四元式表上也有关于结果变量、左右操作数变量的待用和活跃信息栏。把基本块中各变量在符号表的登记项中的待用信息栏置为“非待用”,活跃信息栏按变量在基本块出口是否活跃而置为“活跃”或“非活跃”(假定用户变量都是活跃的,临时变量都是非活跃的)。
从基本块出口的四元式开始由后向前依次处理各个四元式i:A:=BopC,直到处理完为止:把符号表中变量A的待用信息和活跃信息附加到四元式i上。把符号表中变量A的待用信息栏和活跃信息栏分别置为“非待用”和“非活跃”。(由于在i中对A的定值只能在i以后引用,而对i以前的四元式来说A是非活跃和非待用的。)把符号表中变量B和C的待用信息和活跃信息附加到四元式i上。把符号表中变量B和C的待用信息栏置为“i”,活跃信息栏置为“活跃”。注意:i,ii,iii,iv的次序不能颠倒,因为B和C也可能是A
求待用信息的实例有如下基本块(1)T:=A-B(2)U:=A-C(3)V:=T+U(4)D:=V+UA,B,C,D是用户变量(在基本块出口活跃)T,U,V是临时变量(在基本块出口不活跃)用“F”表示“非待用”“非活跃”,“L”表示“活跃”则该基本块的待用信息及活跃信息的计算结果如下:
(F,F)(F,F)(F,L)D:=V+U4(4,L)(F,F)(4,L)V:=T+U3(F,L)(F,L)(3,L)U:=A-C2(F,L)(2,L)(3,L)T:=A-B1右操作数左操作数结果四元式序号附加在四元式上的待用及活跃信息符号表中的待用及活跃信息(F,F)(1,L)(1,L)(1)(F,F)(4,L)V(F,F)(3,L)(4,L)U(3,L)T(F,F)D(2,L)CB(2,L)(F,F)(F,F)(F,F)(F,L)(F,L)(F,L)(F,L)A(2)(3)(4)初值变量名
12.3.3代码生成算法寄存器描述数组RVALUE为了掌握各寄存器的使用情况,用数组RVALUE记录每个寄存器的当前情况:RVALUE[Ri]={A}表示Ri的现行值是变量A的值,或说A独占Ri。RVALUE[Rj]={}表示Rj是空闲的。RVALUE[Ri]={B,C}表示Ri的现行值是变量B和C的值,或说B,C共占Ri。在复写(B:=C)时存在多个变量共占一个寄存器。
变量地址描述数组AVALUE生成目标代码要用到变量的地址,它可能是某寄存器Ri,也可能是内存单元(仍用变量名表示)。若变量值同时在寄存器Ri和内存,则取Ri为其地址。AVALUE[A]={Ri}表示变量A的值在Ri中,不在内存。AVALUE[B]={Rj,B}表示变量B的值在Rj中,又在内存。AVALUE[C]={C}表示变量C的值只在内存。
寄存器分配函数GETREG以形如i:A:=BopC的四元式为输入,返回一个寄存器R,用以存放A的结果值其算法为:如果B独占Ri,且B与A是同一标识符或B值不再引用,则选Ri为R并转(4)如果有空闲Ri,则选Ri为R并转(4)。
释放一个Ri作为R,最好占用Ri的变量值同时在主存中,或在基本块中引用的位置最远。对Ri中不是A的变量M,且其值不在内存,则做如下处理:生成目标代码STRi,M,把变量M的值送入内存修改变量地址描述:如M不是B则AVALUE[M]={M},否则AVALUE[M]={Ri,M}。修改寄存器描述:删除RVALUE{Ri}中的M。给出R,返回通过GETREG(i:A:=BopC)返回的寄存器R用于进行BopC的运算,并把结果(A值)保存在R中。
4.基本块的代码生成算法开始时所有寄存器都空闲,顺序取出四元式i:A:=BopC,按下述算法生成目标代码。到达基本块出口时,若有活跃变量占用寄存器且其值不在内存,则生成存数指令保存其值并释放寄存器。
分配寄存器R=GETREG(i:A:=BopC)利用地址描述数组AVALUE[B]和AVALUE[C],确定出B和C现行值的存放位置B’和C’。如果其现行值在寄存器中,则把寄存器取作B’和C’如果B’≠R则生成目标代码LDR,B’;opR,C’否则生成opR,C’,如果B’或C’为R,则删除AVALUE[B]或AVALUE[C]中的R。令AVALUE[A]={R},RVALUE[R]={A}。如果B和C的现行值是“非引用”和“非活跃”,且其值在某个Rk中,则删除RVALUE[Rk]中的B或C,删除AVALUE[B]和AVALUE[C]中的Rk。
例:假设只有R1和R2两个寄存器利用基本块代码生成算法生成目标代码STR1,DD在R1中R1含有DADDR1,R2V独占的R1(4)D:=V+UV在R1中U在R2中R1含有VR2含有UADDR1,R2T独占的R1(3)V:=T+UT在R1中U在R2中R1含有TR2含有ULDR2,ASUBR2,C空闲的R2(2)U:=A-CT在R1中R1含有TLDR1,ASUBR1,B空闲的R1(1)T:=A-BAVALUERVALUE目标代码选取R四元式在基本块出口出,D占用R1,且D值不在内存,因此生成STR1,D指令保存D值,然后释放R1。
本章小结以一个假想的机器指令系统为基础,介绍目标代码生成所涉及的共性问题:基本块的代码生成算法寄存器分配算法变量的待用信息和活跃信息'
您可能关注的文档
- 最新工作瓶颈的分析与技巧课件课件PPT.ppt
- 最新工作汇报类幻灯片模板课件PPT.ppt
- 最新工作汇报PPT模板--04课件PPT.ppt
- 最新工匠精神精编版课件PPT.ppt
- 最新工地形象标准课件PPT.ppt
- 最新工学地铁与轻轨设备系统PPT课件课件PPT.ppt
- 最新工程光学(第一章)课件PPT.ppt
- 最新工程保险课件PPT.ppt
- 最新工程光学第九章课件PPT.ppt
- 最新工程制图基础-第4章-组合体课件PPT.ppt
- 最新工程地质学渗透变形工程地质研究课件PPT.ppt
- 最新工程机械发动机构造与维修 教学课件 杜运普 等 3_第3章 换 气 系 统课件PPT.ppt
- 最新工程机械底盘构造教学PPT制动系课件PPT.ppt
- 最新工程机械构造与设计实验课件PPT.ppt
- 最新工程材料与机械制造 第一章 金属与合金的晶体构造及其结晶过程课件PPT.ppt
- 最新工程测量知识点课件PPT.ppt
- 最新工程流体力学题课件PPT.ppt
- 草船借箭课件PPT.ppt