安徽理工大学:《算法设计与分析 Algorithm Design and Analysis》课程教学资源(PPT课件讲稿)第6章 代码最优化

6.代码最优化
6.代码最优化

背景知识 二叉树遍历算法的应用递归遍历算法 先序遍历(根左右) 根右左 中序遍历(左根右) 右左根 后序遍历(左右根) 左右根 类后序遍历解决问题 涵
背景知识 ▪ 二叉树遍历算法的应用 递归遍历算法 ▪ 先序遍历(根左右) ▪ 中序遍历(左根右) ▪ 后序遍历(左右根) ▪ 类后序遍历解决问题 根右左 右左根 左右根

代码最优化问题描述 将给定算术表达式翻译成汇编语言代码, 如何翻译得到最优编码? 汇编语言特点:面向机器的低级语言,机 器不同,汇编语言指令系统不同, 因此针对不同的机器研究算术表达式的最 优化编码问题
一、代码最优化问题描述 ▪ 将给定算术表达式翻译成汇编语言代码, 如何翻译得到最优编码? ▪ 汇编语言特点:面向机器的低级语言,机 器不同,汇编语言指令系统不同, ▪ 因此针对不同的机器研究算术表达式的最 优化编码问题

模型机A下的最优化代码 模型机A结构如下: 一个累加寄存器R 指令系统包括: >存入指令:store M;将寄存器R的值存入存储单元M > 装入指令:load M;将存储单元M的值存入寄存器R 算术运算指令:opM;R⊙MR ■其中,⊙可以是:add(+),sub(-),mul(*),div(I)
•模型机A下的最优化代码 ▪ 模型机A结构如下: ▪ 一个累加寄存器R ▪ 指令系统包括: ➢ 存入指令:store M;将寄存器R的值存入存储单元M ➢ 装入指令:load M;将存储单元M的值存入寄存器R ➢ 算术运算指令:op M;R⊙M→R 其中,⊙可以是:add (+),sub(-),mul(*),div(/)

例1(a+b)(c+d)的两段代码 2 LOAD a LOAD ADD b ADD d ■ STORE T1 STORE T1 LOAD C ■ LOAD a ADD d ■ ADD b STORE T2 DIV T1 LOAD T1 DIV T2
例1 (a+b)/(c+d)的两段代码 ▪ LOAD a ▪ ADD b ▪ STORE T1 ▪ LOAD c ▪ ADD d ▪ STORE T2 ▪ LOAD T1 ▪ DIV T2 ▪ LOAD c ▪ ADD d ▪ STORE T1 ▪ LOAD a ▪ ADD b ▪ DIV T1 1 2

定义6.1表达式E翻译成某给定机器语言或 汇编语言是最优的,当且仅当这一翻译有 最少的指令条数。 对于(a+b)(c+d)显然第二段代码更优。 影响表达式指令长度的因素?
▪ 定义6.1表达式E翻译成某给定机器语言或 汇编语言是最优的,当且仅当这一翻译有 最少的指令条数。 ▪ 对于(a+b)/(c+d)显然第二段代码更优。 ▪ 影响表达式指令长度的因素?

例2a+b*c的两段代码 2 LOAD LOAD MPY MPY ■ STORE T1 ADD ■ LOAD a ADD T1 利用了加法的交换律 利 b*c+a 吉郎
例2 a+b*c的两段代码 ▪ LOAD b ▪ MPY c ▪ STORE T1 ▪ LOAD a ▪ ADD T1 ▪ LOAD b ▪ MPY c ▪ ADD a 1 2 利用了加法的交换律 b*c+a

例3a*b+c*b的两段代码 1 2 ■ LOAD LOAD MPY b ADD STORE T1 MPY LOAD a MPY b ADD T1 利用了运算的分配律 (a+c)*b=a*b+c*b
例3 a*b+c*b的两段代码 ▪ LOAD c ▪ MPY b ▪ STORE T1 ▪ LOAD a ▪ MPY b ▪ ADD T1 ▪ LOAD a ▪ ADD c ▪ MPY b 1 2 利用了运算的分配律 (a+c)*b=a*b+c*b

例4a*(b*c)+d*c的两段代码 2 LOAD LOAD MPY MPY b STORE T1 ADD LOAD a MPY T1 MPY STORE T1 LOAD d 利用了运算的结合律和 MPY c 分配律 STORE a*(b*c)+d*c LOAD T1 =(a*b)*c+d*c ADD T2 =(a*b+d)*c
例4 a*(b*c)+d*c的两段代码 ▪ LOAD b ▪ MPY c ▪ STORE T1 ▪ LOAD a ▪ MPY T1 ▪ STORE T1 ▪ LOAD d ▪ MPY c ▪ STORE T2 ▪ LOAD T1 ▪ ADD T2 ▪ LOAD a ▪ MPY b ▪ ADD d ▪ MPY c 1 2 利用了运算的结合律和 分配律 a*(b*c)+d*c =(a*b)*c+d*c =(a*b+d)*c

影响表达式代码长度的因素 1.表达式本身的长度 2.表达式中运算的可交换交换律 3.表达式中运算的可分配性分配律 4.表达式中运算的可结合性-结合律 晶 >其中:+-*/,运算中,加法和乘法具有交换 分配和结合性 一
影响表达式代码长度的因素 1. 表达式本身的长度 2. 表达式中运算的可交换-----交换律 3. 表达式中运算的可分配性-----分配律 4. 表达式中运算的可结合性------结合律 ➢ 其中:+ - * /,运算中,加法和乘法具有交换、 分配和结合性
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 安徽理工大学:《算法设计与分析 Algorithm Design and Analysis》课程教学资源(PPT课件讲稿)第5章 动态规划.ppt
- 安徽理工大学:《算法设计与分析 Algorithm Design and Analysis》课程教学资源(PPT课件讲稿)第4章 贪心方法.ppt
- 安徽理工大学:《算法设计与分析 Algorithm Design and Analysis》课程教学资源(PPT课件讲稿)第3章 分治法——“分”而治之.ppt
- 安徽理工大学:《算法设计与分析 Algorithm Design and Analysis》课程教学资源(PPT课件讲稿)第2章 递归算法设计与分析.ppt
- 安徽理工大学:《算法设计与分析 Algorithm Design and Analysis》课程教学资源(PPT课件讲稿)第1章 导引与基本数据结构论(任课老师:郭娟、方欢).ppt
- 软件设计师考试同步辅导(第4版)第2章 程序设计语言基础.pdf
- 《仿真与虚拟农业》课程教学资源(教学大纲).pdf
- 《3S技术导论》课程教学资源(讲义).pdf
- 《3S技术导论》课程教学资源(实验指导).pdf
- 天津农学院:《微机原理与汇编语言程序设计》课程教学资源(实验指导书).pdf
- 《仿真与虚拟农业》课程教学资源(实验指导).pdf
- 《农业信息技术概论》课程教学资源(教学大纲).pdf
- 香港中文大学:《Topics in Theoretical Computer Science》课程教学资源(PPT课件讲稿)Lecture 7 Stable matching.Gale-Shapley algorithm.pptx
- Minimal Cover-Automata for Finite Languages.pdf
- 香港中文大学:《CMSC5719 Seminar》课程教学资源(讲义)Lecture 12 Introduction to Computational Photography.ppt
- 香港中文大学:《CMSC5719 Seminar》课程教学资源(讲义)Lecture 10 An Introduction to Bioinformatics and its application in Protein-DNA/Protein Interactions Research and Drug Discovery.pptx
- 香港中文大学:《CMSC5719 Seminar》课程教学资源(讲义)Lecture 11 Design of Microfluidics-Based Biochips.pdf
- 香港中文大学:《CMSC5719 Seminar》课程教学资源(讲义)Lecture 07-2 Research and Applications of Virtual Medicine Part II Virtual Reality Based Surgical Simulations.pdf
- 香港中文大学:《CMSC5719 Seminar》课程教学资源(讲义)Lecture 07-1 Research and Applications of Virtual Medicine Part I Introduction to Medical Visualization.pdf
- 香港中文大学:《CMSC5719 Seminar》课程教学资源(讲义)Lecture 06 3D computer vision techniques.ppt
- 安徽理工大学:《算法设计与分析 Algorithm Design and Analysis》课程教学资源(PPT课件讲稿)第6章 基本检索与周游方法.ppt
- 安徽理工大学:《算法设计与分析 Algorithm Design and Analysis》课程教学资源(PPT课件讲稿)动态规划求解(背包问题).ppt
- 安徽理工大学:《算法设计与分析 Algorithm Design and Analysis》课程教学资源(PPT课件讲稿)第7章 回溯法.ppt
- 安徽理工大学:《算法设计与分析 Algorithm Design and Analysis》课程教学资源(PPT课件讲稿)第8章 计算机算法基础(分支限界法).ppt
- Wireless Communication - Project Report 3 Project 12 – Wireless Mesh Network.pdf
- 山东大学:《医用计算机基础》课程电子教案(PPT课件)第一章 计算机的基本知识.ppt
- 山东大学:《医用计算机基础》课程电子教案(PPT课件)第四章 文字处理软件(Word).ppt
- 山东大学:《医用计算机基础》课程电子教案(PPT课件)第二章 DOS操作系统.ppt
- 山东大学:《医用计算机基础》课程电子教案(PPT课件)第三章 Windows操作系统.ppt
- 山东大学:《医用计算机基础》课程电子教案(PPT课件)第五章 Excel 2000中文版.ppt
- 山东大学:《医用计算机基础》课程电子教案(PPT课件)第七章 计算机网络的基本知识.ppt
- 山东大学:《医用计算机基础》课程电子教案(PPT课件)第六章 使用PowerPoint创建演示文稿.ppt
- 山东大学:《计算机医学实用技术》课程电子教案(教材讲义)第一部分 计算机硬件原理与组装(共六章).doc
- 山东大学:《计算机医学实用技术》课程电子教案(课件讲稿)第三部分 医学网站的建立与FRONTPAGE2002的使用(共四章,主讲:张玉华).ppt
- 山东大学:《计算机医学实用技术》课程电子教案(课件讲稿)第二部分 多媒体图像处理技术(共六章).ppt
- 山东大学:《计算机医学实用技术》课程电子教案(课件讲稿)第四部分 Excel实用技术基础.ppt
- 山东大学:《计算机医学实用技术》课程电子教案(教材讲义)第五部分 Access数据库基础(共六章).doc
- 山东大学:《人机交互技术》课程教学资源(PPT课件讲稿)第2章 认知心理学(感知和认知基础).ppt
- 山东大学:《人机交互技术》课程教学资源(PPT课件讲稿)第3章 交互设备(输入设备).ppt
- 山东大学:《人机交互技术》课程教学资源(PPT课件讲稿)第3章 交互设备(输出设备、虚拟现实系统中的交互设备).ppt