学习啦>论文大全>毕业论文>计算机论文>计算机理论>

计算机理论的论文范文特辑

诗琪分享

  下面是小编为你整理整合的关于基本理论的一些论文范文,欢迎阅读浏览,希望你喜欢。

  优化程序长度的一种方法

  摘要:本文分析了Microsoft公司优化程序长度的P-CODE 技术的基本工作原理、P-CODE的使用方法以及P-CODE程序的性能。提出了P-CODE编译的程序调试时应注意的主要问题。

  关键词:程序优化 代码压缩 P-CODE 编译指示器 程序调试

  1. 前言

  用户要求应用程序有更多更全的功能,使得应用程序的代码长度持续增长,但由于系统的开放性,有时也要求应用程序能在多种环境下运行,有很好的可移植性。这要限制应用程序的代码长度,减少其运行时所占的内存容量。

  Microsoft公司为了满足此需求,在其应用程序开发包中引进了一种称为P-CODE(Packed Code, 压缩码)的代码压缩技术。此技术与本地机器无关,在大多数情况下,可把执行程序的长度减少大约40%,为程序员提供了一个灵活而又容易实现的解决方案,减少了应用程序对内存容量日益增长的需求。

  2. P-CODE工作原理

  P-CODE 的基本工作原理是编译器先把执行程序编译为比80X86机器码紧凑得多的中间代码形式,然后在链接时把一个小工作引擎嵌入执行程序中,最后在运行时由此工作引擎把P-CODE解释为本地机器码实际执行。为了方便使用,P-CODE技术实现于编译过程的代码生成阶段。例如开发者在C/C++中应用P-CODE技术时,只需把它作为一个“优化”选项选中即可

  2.1. 指令格式

  在应用P-CODE技术时,链接器会自动拷贝一份长度约为9K的P-CODE工作引擎到执行程序中,程序运行时它仿真一个虚拟处理器。

  P-CODE技术能压缩执行程序代码长度的关键就在于工作引擎的指令格式。我们知道,在现代计算机的指令格式中,指令除指令码外,还包括指出源和目的操作数的地址码,真正的操作数一般放在内存和寄存器中。而一般常用的指令格式是二地址码结构,少量使用一地址码和零地址码结构。例如最简单的两个寄存器值相加汇编指令写为:ADD AX, BX; AX←(AX)+(BX)

  而P-CODE是一个独立于本地机器的虚拟指令系统,其工作引擎是一个基于堆栈的虚拟机,它的大多数指令中只有指令码,没有地址码部分,隐含操作数存储于系统堆栈中,因而远比本地机器指令紧凑。同样上述的工作,P-CODE就可简化为ADDW,它执行时从堆栈中弹出操作数,运算后的结果再压回堆栈中。如用80x86汇编指令表示,就等价于下列指令段:

  POP AX ;弹出第一个操作数到AX寄存器中

  POP BX ;弹出第二个操作数到BX寄存器中

  ADD AX, BX ;把两数相加,结果存贮于AX寄存器中

  PUSH AX ; 将AX寄存器中的结果压回堆栈中

  2.2. 操作码长度

  P-CODE引擎使用堆栈隐含寻址,使得其操作码长度平均小于2个字节,分为标准和扩展的操作码两大类。

  标准操作码占用一个字节,由255条最常用的指令组成,扩展操作码由256条不太常用的指令组成。有统计表明,在一个全部编译为P-CODE的20万行的C程序中,一字节指令使用频率为56%,占代码长度比例为37%,二字节指令使用频率为39%,占代码长度比例为52%,而三或四字节指令占用了余下很小的百分比。

  2.3. 引用

  P-CODE技术优化执行程序长度的另一个重要特性是引用。引用就是编译器优化时,去掉代码段的重复现象,共享代码段的单个实例,类似于在高级语言中使用函数或过程的方法,当然它是编译器自动进行的。编译器优化时检查它所产生的代码,寻找指令段重复的地方,在程序中只保留重复段的一次出现,将所有其它出现的地方都改为指向保留段的一条跳转指令。此技术为执行程序长度压缩了大约5-10%的额外空间。

  2.4. 本地入口点

  使用P-CODE,在程序代码中有时也会产生额外的空间开销,这就是P-CODE函数前面的本地入口点。

  当程序中局部使用P-CODE编译时,很可能会发生机器码函数调用P-CODE函数的情况。由于P-CODE指令段需由P-CODE引擎解释执行,这时就需要编译器在P-CODE函数开始处额外增加几条机器指令即本地入口点,以便机器转换控制,停止执行本地机器码而调用P-CODE引擎,由P-CODE引擎继续解释执行P-CODE函数。

  3. P-CODE使用方法

  P-CODE可用于Microsoft的Visual C++、Visual Basic等许多应用程序开发包中,它可全局地用于整个应用程序,也可通过使用“Pragmas”编译指示有选择地用于局部模块中。

  3.1. 全局使用方法

  当要求以部分速度代价来达到程序长度的显著减小时,可对应用程序全局地使用P-CODE编译。如主要用于用户界面的程序,象字处理器、电子日历、小型企业财务软件包等。

  此使用方法比较简单,只要改变应用工程的编译选项,然后重新编译即可。例如在Visual C++工程中加上编译选项开关“/Oq”,或在Visual Basic工程属性的编译页帧中,选中“编译为P-代码”选项。

  3.2. 局部使用方法

  若要在程序的速度和长度性能上达到比较平衡的满意效果,可在Visual C++源文件中有选择性地加上P-CODE编译指示,具体地指示编译器将哪一段代码编译为P-CODE,而将哪一段代码编译为本地机器码格式。

  P-CODE局部使用方法是将编译指示器“#Pragma Optimize(“q”,on)”置入想用P-CODE的模块或函数开始处,而在用P-CODE的模块或函数结束处加上编译指示器“#Pragma Optimize(“q”,off)”。

  一般来说,要想达到比较满意的使用效果,就要将主要影响程序执行速度的模块或函数编译为本地机器码,如频繁调用的函数、出现在循环内的函数等。而将相对来说对程序的执行速度起次要作用、主要影响程序长度的模块或函数编译为P-CODE,如用户接口过程中的菜单和对话框模块,因为这里程序执行速度上的牺牲相对于用户的工作速度来说,是微不足道的。还有一些很少使用的模块或函数,如出错处理函数、一般情形下不会用到的功能模块也应编译为P-CODE。

  4. P-CODE程序调试

  用P-CODE编译的程序,可使用Microsoft提供的调试工具如CodeView调试器等来进行调试。它对源代码级和P-CODE汇编指令级二者都给予支持,所有正常的CodeView调试器命令,如BREAK、STEP、WATCH等在本地机器码和P-CODE码两种方式下都会起作用,只不过在P-CODE方式下,程序在断点暂停后,寄存器窗口显示的是堆栈和P-CODE工作引擎的状态。

  因为P-CODE的引用会产生许多跳转指令,使得目标程序调试时难于阅读和跟踪,所以较好的策略是在程序开发调试阶段用编译开关“/Of_”关掉引用,当程序全部调试完毕后再打开引用优化编译开关。

  5. P-CODE性能分析

  P-CODE技术的本质是用程序执行时间的少量增加来换取其长度的明显减小。虽然P-CODE指令由工作引擎解释执行,固有地慢于CPU本地机器码的执行,但程序总体所需的执行时间还取决于一些系统因素和程序员使用P-CODE的技巧。在内存一定的环境中,大程序长度的减小也相应地减少了其执行时所需的内存容量,从而需要较少的虚拟内存交换页,且相应地提高了Cache命中率,因而减少了其运行时的系统开销,故其P-CODE版本和本地机器码版本最终在执行速度上的差异很小。另外,采用P-CODE后,程序长度减小了,系统总的吞吐率也得到了改善。

  6. 结束语

  Microsoft的P-CODE技术为程序员提供了一种以少量增加运行时间代价而较方便地压缩执行文件长度的方法。它可通过简单地重编译而在程序中全局地使用,局部使用时将编译指示置于关键过程之前,可保证最大限度地压缩代码长度而使性能损失最小化。

  动机理论在高职计算机教学中的应用

  计算机课程是高职学生的一门重要课程,要求学生掌握基本的操作技能与操作方法,并为其他学科的学习以及将来的工作奠定良好的基础。但高职学生文化课基础比较薄弱,学习积极性较差,部分学生缺乏学习动机和自信心,严重影响了计算机教学的顺利开展。因此,将动机理论应用到计算机教学中,具有重要的现实意义。

  一、高职学生缺少学习动机的原因

  1.内在因素

  高职学生学习基础普遍薄弱,缺乏自制力与刻苦钻研的精神。同时,由于对所学专业了解不多,大部分学生没有明确的学习目标,缺乏主动学习的积极性。另外,由于部分学生没有养成良好的学习习惯,所衍生的不良学习气氛不仅影响了班级整体的学习氛围,还制约了其他学生学习动机的产生。

  2.外在因素

  部分高职学生认为计算机课程与社会需求脱节,导致课程教学无法对学生产生吸引力。同时,陈旧的教学方法、枯燥的授课方式、滞后的考试形式,也严重影响了高职计算机课程的教学质量,进而形成恶性循环,直接影响学生学习动机的产生。

  二、动机理论在高职计算机教学中的应用

  1.注意策略应用

  注意是一种心理活动,若缺乏注意,将无法顺利展开心理活动。在计算机教学中,教师应积极运用注意策略,吸引学生注意,真正让学生参与到计算机教学中来。在设计注意策略时,最重要的是让学生选择、感知信息,进而产生稳定、明确的心理趋向。具体方法如下:①让学生明确认识到计算机知识的重要性,激发学生学习的积极性。教师可以通过讲解计算机广泛应用的生动案例,使学生真正知晓计算机知识和技能的重要性,并加强课堂教学与现实生活的联系,将教与学变成有价值、有意义的事情,由此激发学生的学习兴趣。②用悬念激发好奇心。在教学过程中,教师可以通过预留问题、设置悬念等方式激发学生的好奇心,让学生带着问题思考,吸引学生将注意力放到学习上。③营造宽松的学习氛围。更好地满足学生对知识的渴望,有效地吸引学生学习计算机课程。例如,在学习计算机系统知识时,可以设计学生拆卸、安装主机箱的教学活动,使学生在宽松、自由的环境中学习,提高参与性与创造性。

  2.相关策略应用

  相关策略是指将所学知识与学生的需求、动机、目的联系起来,如果学生认识到学习内容与自身实际需求密切相连,就会表现出极大的学习兴趣。因此,教师可以在教学过程中引入相关策略,具体方法如下:①共建学习目标。在相关策略的指导下,教师可以在每节课的教学结束后让学生自己制定下节课的学习内容,结合教学内容及学生的想法共建学习目标,提高教学针对性。②结合学生学习水平安排适度的学习任务。有了适宜的学习任务,学生就能及时完成并获得成功的体验,进而大幅度提高学习动机。在安排学习任务、制定学习目标时,要制定让学生努努力、使使劲就可以完成的目标。因此,教师需要了解学生已有的经验、知识、需求、兴趣等,合理安排学习任务。

  3.自信策略应用

  应用自信策略发展学生的自信心是教学成功的重要保障。如果学生认识到努力程度与收获之间存在密切联系,就会投入更多努力,学习更有韧性。在计算机教学中,教师应鼓励学生,提高学生的自信心,并将学生学习上的成功归因于努力而不是运气,结合表扬、鼓励等方式,激发学生学习的自信心与动力。

  4.满意策略应用

  满意是维持、加强学习动机,并使学习动机稳定、持久的重要因素。在该策略的指导下,教师应合理、正确地表扬学生。表扬是最容易激发学生学习动机的方式,但是也最容易被忽视。在教学过程中,教师应掌握并善于运用表扬,对学生的努力进行适度的表扬、赞赏,以激发学习积极性。同时,要完善计算机教学的评价标准,改变过去以成绩单为主的评价方法,通过多标准的评价方式,提高学生的满意感。

  三、小结

  综上所述,动机理论在高职计算机教学中应用效果显著,能有效激发、培养学生的学习动机,全面提升学生的技能水平与动手能力。在实际教学中,教师应善于利用注意策略、相关策略、自信策略、满意策略等,切实激发学生的学习动机,提升高职计算机教学质量。


计算机理论论文相关文章:

1.计算机专业论文范文

2.计算机专业论文精选范文

3.有关计算机方面的论文

4.大学计算机课程论文

5.计算机基础毕业论文范文

    4066438