《大规模集成电路设计应用与实践.ppt》由会员分享,可在线阅读,更多相关《大规模集成电路设计应用与实践.ppt(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、信息技术教学实验中心大规模集成电路设计应用与实践 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望信息技术教学实验中心第二次课的回顾关心代码阅读全周期(四个步骤)内发生的事n源码,预编译,编译,汇编,链接,运行,修改源码了解目标文件,readelf,objdump 等工具的使用深入理解编译、链接了解程序员眼中的内存模型:堆 与 栈深入理解 HelloWorld 程序的全生命周期2信息技术教学实验中心代码阅读有哪些事3阅读静态源代阅读静态源代码,勾勒代码码,勾勒代码执
2、行流和物理执行流和物理组织图和逻辑组织图和逻辑组织图。组织图。读读对程序进行编对程序进行编译,汇编,链译,汇编,链接等操作。阅接等操作。阅读其代码低层读其代码低层形态。形态。译译运行编译得到运行编译得到二进制文件,二进制文件,观察代码运行观察代码运行态。结果与在态。结果与在“读读”阶段得阶段得到的理解进行到的理解进行对比,剖析。对比,剖析。行行对代码进行修对代码进行修改,对修改后改,对修改后的代码行为进的代码行为进行预测。行预测。改改信息技术教学实验中心4基本编程元素课程内容1函数与全局变量2循环结构3goto语句4字符及布尔型表达式5do循环与整型表达式6信息技术教学实验中心基本编程元素5信
3、息技术教学实验中心一个完整的程序见本节课实验一原型代码可以参考教材随书关盘nnetbsdsrcbinechoecho.c实验演示,理解 main 函数参数 argc 与 argv6信息技术教学实验中心头文件用于函数、变量的声明。n用#include 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。n用#include“filename.h”格式来引用非标准库的头文件(编译器将从用户工作目录开始搜索)。规则和建议n必须做头文件保护。n在头文件中,尽课程使用前向声明,而不引用其他头文件,以防止头文件引用循环嵌套。n建议头文件中只存放“声明”而不存放“定义”。7信息技术教学实验中心实例:头
4、文件8/*CopyRightYabin Hu,CUG.2010,10,29.*this is a demo for header file.*/#ifndef MY_INCLUDE_FILE_H/防止防止 my_include.h 被重复引用被重复引用#define MY_INCLUDE_FILE_H#include /引用标准库的头文件引用标准库的头文件#include“anotherheaderbyme.h”/引用非标准库的头文件引用非标准库的头文件void Function1();/全局函数声明全局函数声明class Box/类结构声明类结构声明;#endif信息技术教学实验中心函数与全
5、局变量9信息技术教学实验中心VS2008类视图10信息技术教学实验中心基本概念作用域 scope生命周期 life cycle11信息技术教学实验中心关注代码中的符号或名字全局函数与全局变量n具有外部链接(external linkage)的符号n在OO编程中,定义在任何类之外规则:在检查代码时,确保所有只用于单一文件的变量都声明为 static 的。12信息技术教学实验中心对变量名的分析关注修饰符nstatic(文件作用域,程序生命周期)nextern(全局作用域,程序生命周期)实验演示13信息技术教学实验中心对函数的分析了解函数功用的方法n通过函数名猜n阅读函数定义之前的注释n猜测参数的意
6、义n观察函数被调用的方式和返回值n阅读函数体代码n查阅外部文档14信息技术教学实验中心循环结构15信息技术教学实验中心while循环16/打开一个文件得到其文件描述符打开一个文件得到其文件描述符File*fp=fopen(“a.txt”);while(c=getc(pf)!=EOF)putc(c,active);/这个循环执行了多少次迭代这个循环执行了多少次迭代char*p;while(0=*p&*p=9)信息技术教学实验中心do-while的特殊用法17#define ABORT_PARSE do global_command=0;yyerrok;if(!symtab_context.emp
7、ty()symbol_table:set_scope(symtab_context.top();symtab_context.pop();if(interactive|forced_interactive)YYACCEPT;else YYABORT;while(0)信息技术教学实验中心for循环次数18for(int i=0;i=nargs;i+)for(int i=0;i nargs;i+)for(int i=1;i 0;i-)for(dp=readdir(dd);dp!=NULL;dp=readdir(dd)下列下列for 语句各执行多少次循环语句各执行多少次循环信息技术教学实验中心for
8、循环与效率19for(i=0;iN;i+)if(condition)DoSomething();elseDoOtherthing();if(condition)for(i=0;iN;i+)DoSomething();elsefor(i=0;iN;i+)DoOtherthing();信息技术教学实验中心break 和 continuebreak用于退出当前循环,用于循环和switch语句中。continue意味着跳过该语句与循环末尾的所有语句,直接执行下一次循环。20信息技术教学实验中心无限循环21for(;).while(1).可通过可通过break语句,语句,goto语句退出语句退出信息技术
9、教学实验中心课后作业浏览wiki上关于作用域 与 生存周期 的解释nhttp:/zh.wikipedia.org/zh/%E4%BD%9C%E7%94%A8%E5%9F%9Fnhttp:/zh.wikipedia.org/zh/%E5%8F%98%E9%87%8F_(%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1)n从课程网站上下载 lifecycle.cpp 文件n写出 a,b,c,d 四个对象的作用域和生存周期;n编译运行该程序,写出运行结果,并加以分析。22信息技术教学实验中心PERL程序设计语言花儿朵朵之程序设计语言花儿朵朵之23信息技术教学实验中心拉里 沃尔
10、24拉拉里里沃沃尔尔(Larry Wall,1949年年3月月10日日)是是程程序序员员、系系统统管管理理者者、语语言言学学家家和和作作家家,生生于于加加拿拿大大卑卑诗诗省省邓邓肯肯市市。他他最最为为人人知知的的地地方方,是是他他设设计的编程语言计的编程语言Perl。信息技术教学实验中心Perl的起源Perl的起源多少有些“意外”。因为其创始人拉里沃尔并不是有意的要编写一门编程语言,事实上,拉里沃尔也不是一位程序员,而是系统专家。当 时拉里沃尔正在负责一个项目,由于要完成某项工作,尽管拉里沃尔曾想用 awk 来完成,但其并不能满足他的需求,结果就是一门新的编程语言要诞生了。25信息技术教学实验
11、中心Perl的设计哲学-简单同Objective-C、PHP、C+等语言一样,生于80后的Perl同样有C语言的血统,同样具有强大的能力及灵活性,相比于那些高级语言 而言,Perl语言直接提供泛型变量、动态数组、Hash表等便捷的编程元素。但真正让程序员们兴奋的还是Perl的简单哲学。Perl的简单首先表现在其代码量上,相比于其他语言,面对一个稍复杂的问题,用Perl解决也许几行就足以!而编译Perl程序则更加简单,你根 本不需要一些特殊的指令。由于Perl继承了C语言的很多语法规则,所以它的结构非常容易理解(Perl是一种无类型语言),也正由于此,使得其他语言的 程序员能够很快的理解Perl。当然,Perl的编辑器是开源的免费软件,使用Perl不必担心费用。而且Perl能在绝大多数操作系统运行,可以方便地向不同操作系统迁移。在7月的编程语言排行榜这里有支足球队一文中,我们也将Perl作为后方的主力,而作为后卫球员,基本要求就是要处理球简单。26信息技术教学实验中心Thank you
限制150内