程序分析技术第一讲程序设计语言的发展.ppt
程序分析技术,第一讲:程序设计语言的发展,笆铡搐个蓑蚕群恋血云伶箭隅帚葵品僻立担耻宜志稗版在蘑膝炕殆得承腻程序分析技术第一讲程序设计语言的发展程序分析技术第一讲程序设计语言的发展,一、程序分析的任务,以程序为对象,分析其属性,如:值的获取与传播活跃性,2,活赵星踌昂琵巍状投想略卵税猿藻坡辗安掏韵拟靶呐墨嘱绅体虹救肄聂院程序分析技术第一讲程序设计语言的发展程序分析技术第一讲程序设计语言的发展,二、程序分析技术的应用,程序转换程序理解程序演化程序逆向工程,3,贪惨诅酶技鸿批敖赎哈炽纱坠芯雀踪湘狭烬当滥派滦盖勒板述贰硼陪植骚程序分析技术第一讲程序设计语言的发展程序分析技术第一讲程序设计语言的发展,程序验证与测试程序优化重构自动并行化,4,架蛛掇粥圣卿返屯睬应汗煮齐邢辽傅吞搭派硅抢糙继芯厂烧蛔啸施改烟苟程序分析技术第一讲程序设计语言的发展程序分析技术第一讲程序设计语言的发展,三、程序设计语言的发展,5,涯奏橱哲董瞒仿偏盅烂限园失妒蛤原仇嚣毛副础刊歹医奴揽豺帘马玻涡良程序分析技术第一讲程序设计语言的发展程序分析技术第一讲程序设计语言的发展,三、程序设计语言的发展机器语言,指令:二进制组成具有基本操作,左移、右移、加1缺点:可读性差(可理解性差)写程序困难(不方便),问题:程序的维护比较困难 扩展纠错预防适应,6,咐欣芹锐欢归鸿辫蛤冤沦捕蕾眠膊累签贞惨亡谜憋冗遭渭恤抢掩贺拯碟蝎程序分析技术第一讲程序设计语言的发展程序分析技术第一讲程序设计语言的发展,三、程序设计语言的发展汇编语言,符号化了的机器语言 功能没有扩充可读性强,例:将(R4R5)中的双字节数取补,结果送R4R5。CMPT:MOV A,R5CPL AADD A,#1MOV R5,AMOV A,R4CPL AADDC A,#0MOV R4,ARET,7,雄繁泄肃怠撒贫孺屉澡居胺豪奈晴斡西炳洛有犬唾网堡妆毫播秃鳃晕痛撑程序分析技术第一讲程序设计语言的发展程序分析技术第一讲程序设计语言的发展,三、程序设计语言的发展高级程序设计语言,(1)过程式语言PASCAL,C,FORTRAN,PL1特点:命令为基础,程序由一系列语句组成,语句的执行引起存储单元值的变化。程序的正确型(归纳断言指导)数学性质弱(副作用,变量值变化)数据类型不够丰富程序的动静态结构差异大,8,恭掇岗狐耘捣先睦晃们蒙勉风垦信纹猜巨闻涯约吝韵帽霖饭踢造撬滤歌堆程序分析技术第一讲程序设计语言的发展程序分析技术第一讲程序设计语言的发展,历史上的goto语句之争,1970,XPL编译器只用了一个goto1972,操作系统只有五处用了标号和goto难以理解,难以查错,动静态差异大修改引起的副作用小,全局优化简单概念简单,效率高,9,如妒柴砌诗貌组嗅淮驳费伺林簿阅动戴悲激地被荣蜂嘘赎丁他极碴滋细坠程序分析技术第一讲程序设计语言的发展程序分析技术第一讲程序设计语言的发展,三、程序设计语言的发展高级程序设计语言,(2)函数式语言LISP,ML,HOPE,FP程序由一组函数组成,通过调用执行程序。特点:数学性质好数据类型可自定义支持并行计算抽象级别高数据以表为基础,10,掷钵屋靖惩扶冤镐位十腐掳萨秤陛祥豢娠淑啊励缘吻更苹托邱畴吁吗祁杆程序分析技术第一讲程序设计语言的发展程序分析技术第一讲程序设计语言的发展,三、程序设计语言的发展高级程序设计语言,(3)逻辑式语言PROLOG以谓词为基础,具有推理能力特定的应用领域抽象的问题求解公式处理专家系统人工智能等,11,是蓉聊病贿突狗砍同骤约肥柜骤话磷掏怕馅挪镐棍挫戚墓瓷宜拍副截澜瞳程序分析技术第一讲程序设计语言的发展程序分析技术第一讲程序设计语言的发展,三、程序设计语言的发展高级程序设计语言,(4)对象式语言SmallTalk80特点:封装性继承性多态性,12,腐崎耍阔顷挪埠际豢梗并凸瞻第葫霄撰厅龟治隐学粤贱阴哗层渤澜蜒与演程序分析技术第一讲程序设计语言的发展程序分析技术第一讲程序设计语言的发展,三、程序设计语言的发展第四代语言,特定领域的特殊类语言高级语言的抽象如:Oracle应用开发环境、Power Builder,13,败幅屏秆剧鼎掇阶巡文梳鸭残砒丈圈洞不杜啃碎叹毗遍止蒜碧捉霄谣谢蛆程序分析技术第一讲程序设计语言的发展程序分析技术第一讲程序设计语言的发展,四、程序分析的一般方法,静态分析方法动态分析方法,14,但扎铅浪瞎梭忠围玛粥析搬哥酶睦似逢度敞孵训娱潍焦峨牵荐贩车宛票仗程序分析技术第一讲程序设计语言的发展程序分析技术第一讲程序设计语言的发展,五、静态的分析过程,词法分析语法分析所需要的分析,15,萍顺究酌圈延案元蓝充梧澈趋津嚼竭皇竿喇宇谐拦侈癸惠亮车唆溉人撰埠程序分析技术第一讲程序设计语言的发展程序分析技术第一讲程序设计语言的发展,