人人范文网 范文大全

自主学习心得体会

发布时间:2020-03-03 18:31:59 来源:范文大全 收藏本文 下载本文 手机版

自主学习报告书

题 目: 学习课程: 姓 名: 专 业: 学 号:

福建工程学院国脉信息学院教务处 制

二○一二年四月

自主学习心得体会

编译原理

编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法,在计算机本科教学中占有十分重要的地位。

该课程理论性与实践性都很强,我们在学习是普遍感到内容非常抽象,不易理解,内容多且繁琐,难以完整、全面地掌握编译原理的有关知识,更不用说灵活运用编译原理知识从事相关设计或应用于其他领域。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对我们提供了系统而有效的训练,有利于提高软件人员的素质和能力。

在我们学习编译原理以前,都认为编译原理只能应用在写程序语言的编译器上,觉得用处不大,学习兴趣不高。而在后来的学习中,我们逐渐认识到计算机专业的学生,除了要会编写程序语言之外,还应该了解它是如何被计算机所识别,这才是真正并且透彻地学习软件。另外,编译器中每一个模块的编写,都能对我们的编程能力的提高有很大帮助。在今后若从事软件工程,这门课程也能够对编写程序有所帮助。

为了能够系统掌握这门专业课,我们把编译原理分为以下几个模块:①语言和文法;②词法分析;③语法分析;④语义分析和中间代码生成;⑤代码优化和目标代码生成。 在学习的开始,我们需要掌握什么是编译,编译分为哪些阶段,编译程序和解释程序的区别等等。在做好了这些方面的准备后,开始了系统的学习。

语言和文法部分的知识包括文法基本概念及文法的二义性。基本概念有文法定义、推导、句型、句子等等。二义性文法是通过画语法树的方法来证明。

词法分析中的重点是有穷自动机DFA的生成以及DFA和正规式与正规文法的关系。还要熟练掌握NFA转换为DFA的方法及DFA的化简。

语法分析包括自上而下和自下而上分析。自上而下分析着重掌握LL(1)文法,自下而上分析重点掌握算符优先文法和LR(0)、SLR(1)文法。

语义分析重点是其功能,中间代码生成和语法制导翻译定义与方法。

最后,优化分为局部优化和循环优化,重点理解一些关键词,如基本块、流图等,要学会自己画出程序流图。用DAG图进行局部优化是重点。

在学习文法时,对文法的组成,用法都较为明了,而在真正做题时却感到十分吃力。例如给出了一个语言,要求写出它的上下文无关文法,就感到十分棘手,所以今后在这方面要加大练习量,以熟练掌握。

而在之后的词法分析和语法分析中,我感到在看基本原理时十分困难,通常要长时间钻研才能够有所了解,而一旦掌握了基本原理,做题时就感到十分顺畅了。例如,在刚接触到LR(0)文法时,我用了大量的时间去学习它的原理,掌握之后,在列LR(0)分析表和写分析过程时,只要思路清晰,就会比较顺畅,而且不会犯错。 本书是系统介绍软件工程理论的经典教材,自1982年初版以来,随着软件工程学科的发展不断更新,影响了一代又一代软件工程人才,对学科本身也产生了积极影响。全书共四个部分,完整讨论了软件工程各个阶段的内容,是软件工程和系统工程专业本科生和研究生的优秀教材,也是软件工程师必备的参考书籍。涵盖了对所有开发过程都很基础的重要主题,包括软件工程理论与实践的最新进展。将第8版中的八篇内容重构为四个部分,使教师讲授软件工程课程更加容易。每一章都有30%~40%的更新,增加了敏捷软件开发和嵌入式系统等新章,补充了模型驱动工程、开源开发、测试驱动开发、可依赖系统体系结构、静态分析和模型检查、cots复用、服务作为软件以及敏捷规划等新内容。着重讨论了开发可靠的分布式系统的相关主题以及敏捷方法和软件复用。反映敏捷方法先进性的同时,不忘强调传统的计划驱动软件工程的作用,阐述了两者结合构建优秀软件系统的重要性。以一个新的病人记录系统案例研究贯穿始终,系统、完整地讲解软件工程的各个方面。设计为“印刷/web”相结合的方式,核心信息采用印刷版本,教辅材料及先前版本中的一些章节放在web上,为读者提供丰富翔实的信息。

软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。从它的起源,发展到现在,人们对它也有比较明确的定义:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性和客户操作性并且满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。

生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。

软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。软件工程的原则有以下四项基本原则:

1 选取适宜开发范型

该原则与系统设计有关。在系统设计中,软件需求、硬件需求以及其他因素之间是相互制约、相互影响的,经常需要权衡。因此,必须认识需求定义的易变性,采用适宜的开发范型予以控制,以保证软件产品满足用户的要求。

2采用合适的设计方法

在软件设计中,通常要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。合适的设计方法有助于这些特征的实现,以达到软件工程的目标。

3提供高质量的工程支持

“工欲善其事,必先利其器”。

在软件工程中,软件工具与环境对软件过程的支持颇为重要。软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。

4重视开发过程的管理

软件工程的管理,直接影响可用资源的有效利用,生产满足目标的软件产品,提高软件组织的生产能力等问题。因此,仅当软件过程得以有效管理时,才能实现有效的软件工程。

这一软件工程框架告诉我们,软件工程的目标是可用性、正确性和合算性;实施一个软件工程要选取适宜的开发范型,要采用合适的设计方法,要提供高质量的工程支撑,要实行开发过程的有效管理;软件工程活动主要包括需求、设计、实现、确认和支持等活动,每一活动可根据特定的软件工程,采用合适的开发范型、设计方法、支持过程以及过程管理。根据软件工程这一框架,软件工程学科的研究内容主要包括:软件开发范型、软件开发方法、软件过程、软件工具、软件开发环境、计算机辅助软件工程(CASE) 及软件经济学等。

软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。 (3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。

计算机组成原理

第一眼看到这本书感觉很熟悉,在认真的看一下发现原来我有学习过,这个就是我组成原理课程的教材。简单介绍一下全书的内容:全书共分为4篇,第1篇(第

1、2章)介绍计算机的基本组成、发展及应用;第2篇(第3-5章)介绍系统总线、存储器(包括主存储器、高速缓冲存储器和辅助存储器)和输入输出系统;第3篇(第6-8章)介绍CPU的特性、结构和功能,包括计算机的算术逻辑单元、指令系统、指令流水、RISC技术及中断系统;第4篇(第

9、10章)介绍控制单元的功能和设计,包括时序系统以及采用组合逻辑和微程序设计控制单元的设计思想与实现措施。

对于这本我已经学过的教材,其实我没有太多的印象,只是知道有这本书。而这次的阅读学习让我真正的读懂了这本书,不再是为了考试。在这本书中,我比较有印象的是冯诺依曼的计算机体系。说到这个体系就要谈到其核心组件——CPU。

关于CPU,我最初的理解就是计算机的大脑。而读完这本书之后,我对CPU的理解有所改观。CPU不仅是计算机的电脑,也是计算机的心脏。CPU内部结构大概可以分为控制单元、运算单元、存储单元和时钟等几个主要部分,CPU包括了运算器和控制器,然后就是内存和I/O,这些设备通过总线连接在一起。其中运算器是计算机对数据进行加工处理的中心,它主要由算术逻辑部件(ALU:Arithmetic and Logic Unit)、寄存器组和状态寄存器组成。ALU主要完成对二进制信息的定点算术运算、逻辑运算和各种移位操作。通用寄存器组是用来保存参加运算的操作数和运算的中间结果。状态寄存器在不同的机器中有不同的规定,程序中,状态位通常作为转移指令的判断条件。而控制器是计算机的控制中心,它决定了计算机运行过程的自动化。它不仅要保证程序的正确执行,而且要能够处理异常事件。控制器一般包括指令控制逻辑、时序控制逻辑、总线控制逻辑、中断控制逻辑等几个部分。

控制器的那些逻辑中,指令控制逻辑要完成取指令、分析指令和执行指令的操作。时序控制逻辑要为每条指令按时间顺序提供应有的控制信号。总线逻辑是为多个功能部件服务的信息通路的控制电路。就CPU而言一般分为内部总线和CPU对外联系的外部总线,外部总线有时候又叫做系统总线、前端总线(FSB)等。中断是指计算机由于异常事件,或者一些随机发生需要马上处理的事件,引起CPU暂时停止现在程序的执行,转向另一服务程序去处理这一事件,处理完毕再返回原程序的过程。由机器内部产生的中断,我们把它叫做陷阱(内部中断),由外部设备引起的中断叫外部中断。

CPU还有一个重要的属性,也是衡量其好坏的一个指标——主频。主频是一般时钟脉冲,就是最基本的时序信号,是整个机器的时间基准。执行一条指令所需要的时间叫做一个指令周期,不同指令的周期有可能不同。一般为便于控制,根据指令的操作性质和控制性质不同,会把指令周期划分为几个不同的阶段,每个阶段就是一个CPU周期。早期CPU同内存在速度上的差异不大,所以CPU周期通常和存储器存取周期相同,后来,随着CPU的发展现在速度上已经比存储器快很多了,于是常常将CPU周期定义为存储器存取周期的几分之一。 还有一块内容比较有印象的就是I/O。I/O有五种方式,常见的有三种,程序查询中断和DMA,程序查询是最朴素的设计,键盘好像就是这种类型,也第一次明白了扫描码之所以叫做扫描码的原因了,另外一个比较震惊的是有些键盘中居然有单片机存在。中断是一个优化,比如打印机这类,类比同步和异步就很容易理解,虽然有点“这个羊的毛是地毯做的”的逻辑,异步应该就是通过中断实现的吧。DMA是更牛的优化,把CPU进一步解放出来,对于高速I/O设备,比如硬盘,采用这种方式,神秘的DMA,最终走下神坛。设备的选择是使用设备码,那具体是怎么实现的呢,按照设备吗查到设备并通知到?通知是不可能的,因为所谓被动都是假象,总是有主动的实质。实际上是写在硬件电路里,如果设备总线上的设备码刚好等于某个设备的设备码这个设备才会被激活,这样就保证连接到数据状态控制总线上的设备刚好是设备总线上设备吗说对应的设备了。I/O设备的接口非常简单,从程序设计的角度来看。这里对接口的定义,比平时看到的更普适一些。所谓的端口,就是寄存器。还是不知道windows支持65536个端口是什么意思。串口和并口按照传送数据的不同方式命名,只是速度的差别,就像直观上很难理解通过电话线可以传送大量数字信息一样,对串并口的吞吐量暂时也比较难想象,就像USB的速度怎么都想不到会有这么快一样。不同速度的设备使用不同的接口,这就是PCI和IDE这些东西的区别了。

看完这本我获得最大的收获应该是对计算机有了更深层次的理解,涉及到关于硬件方面的理解,不会再只是肤浅的认为计算机就是由CPU、硬盘、内存、显卡、主板构成的,虽然这个理解没有错误,但是这不应该是学过计算机的人应该有的观点。同时看完这本书,虽然我还不能很清楚的了解CPU的详细组成,但是我起码收获了电脑硬件的运行原理与运行方式。

自主学习心得体会

自主学习心得体会

自主学习心得体会

自主学习心得体会

自主学习心得体会

自主学习心得体会

自主学习书目心得体会

党章自主学习心得体会

干部自主学习心得体会

学生自主学习心得体会

自主学习心得体会
《自主学习心得体会.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档