收藏 分销(赏)

浅谈计算机网络系统安全.doc

上传人:xrp****65 文档编号:7048808 上传时间:2024-12-25 格式:DOC 页数:17 大小:309.50KB
下载 相关 举报
浅谈计算机网络系统安全.doc_第1页
第1页 / 共17页
浅谈计算机网络系统安全.doc_第2页
第2页 / 共17页
浅谈计算机网络系统安全.doc_第3页
第3页 / 共17页
浅谈计算机网络系统安全.doc_第4页
第4页 / 共17页
浅谈计算机网络系统安全.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、浅谈计算机网络系统安全 摘要:本文主要阐述了计算机网络系统安全维护策略,作者认为应该主要做好计算机病毒的防御和加强对黑客攻击的防御。 关键词:计算机网络;安全维护 Discusses Computer Network System Safety Wang Yonggang (Shandong Rural Credit Cooperative Federation of Communes Linyi Office Science and Technology Center,Linyi276000,China) Abstract:This article mainly elaborated the

2、 computer network system safety maintenance strategy,the author thought should mainly complete the computer virus the defense and strengthens to the hacker attack defense. Keyword:Computer network; Security maintenance 一、计算机网络安全概述 计算机网络安全是指利用网络管理控制和技术措施,保证在一个网络环境中,数据的保密性、完整性及可使用性受到保护。计算机网络安全包括两个方面,即

3、物理安全和逻辑安全。物理安全指系统设备及相关设施受到物理保护,免于破坏、丢失等。逻辑安全包括信息的安全性、保密性、完整性。参照ISO给出的计算机安全定义,认为计算机网络安全是指:“保护计算机网络系统中的硬件,软件和数据资源,不因偶然或恶意的原因遭到破坏、更改、泄露,使网络系统连续可靠性地正常运行,网络服务正常有序。” 二、计算机网络系统安全维护策略 (一)计算机病毒的防御 防御计算机病毒应该从两个方面着手,首先应该加强内部管理人员及使用人员的安全意识,使他们能养成正确上网、安全上网的好习惯。再者,应该加强技术上的防范措施,比如使用高技术防火墙、使用防病毒工具等。具体做法如下。 1.权限分级设置

4、,口令控制 很多计算机系统常用口令来控制对系统资源的访问,这是防病毒进程中,最容易和最经济的方法之一。网络管理员和终端操作员根据自己的职责权限,选择不同的口令,对应用程序数据进行合法操作,防止用户越权访问数据和使用网络资源。在选择口令应往意,必须选择超过6个字符并且由字母和数字共同组成的口令;操作员应定期变一次口令;不得写下口令或在电子邮件中传送口令。通常简单的口令就能取得很好的控制效果,因为系统本身不会把口令泄露出去。但在网络系统中,由于认证信息要通过网递,口令很容易被攻击者从网络传输线路上窃取,所以网络环境中,使用口令控制并不是很安全的方法。 2.简易安装,集中管理 在网络上,软件的安装和

5、管理方式是十分关键的,它不仅关系到网络维护管理的效率和质量,而且涉及到网络的安全性。好的杀毒软件能在几分钟内轻松地安装到组织里的每一个NT服务器上,并可下载和散布到所有的目的机器上,由网络管理员集中设置和管理,它会与操作系统及其它安全措施紧密地结合在一起,成为网络安全管理的一部分,并且自动提供最佳的网络病毒防御措施。 3实时杀毒,报警隔离 当计算机病毒对网上资源的应用程序进行攻击时,这样的病毒存在于信息共享的网络介质上,因此就要在网关上设防,在网络前端进行杀毒。基于网络的病毒特点,应该着眼于网络整体来设计防范手段。在计算机硬件和软件,LAN服务器,服务器上的网关,Internet层层设防,对每

6、种病毒都实行隔离、过滤,而且完全在后台操作。 (二)对黑客攻击的防御 对黑客的防御策略应该是对整个网络系统实施的分层次、多级别的包括检测、告警和修复等应急功能的实时系统策略,方法如下: 1.包过滤技术 包过滤是最早使用的一种防火墙技术,它的第一代模型是静态包过滤,使用包过滤技术的防火墙通常工作在OSI模型的网络层上,后来发展更新的动态包过滤增加了传输层,包过滤技术工作的地方为各种基于TCP/IP协议的数据报文进出的通道,它把这两层作为数据监控的对象,对每个数据包的头部、协议、地址、端口、类型等信息进行分析,并与预先设定好的防火墙过滤规则进行核对,一旦发现某个包的某个或多个部分与过滤规则匹配并且

7、条件为阻止的时候,这个包就会被丢弃。动态包过滤功能在保持着原有静态包过滤技术和过滤规则的基础上,对已经成功与计算机连接的报文传输进行跟踪,并且判断该连接发送的数据包是否会对系统构成威胁,一旦触发其判断机制,防火墙就会自动产生新的临时过滤规则或者把已经存在的过滤规则进行修改,从而阻止该有害数据的继续传输。 2.应用代理技术 应用协议分析技术工作在OSI模型的最高层应用层上,在这一层里能接触到的所有数据都是最终形式,可以实现更高级的数据检测过程。整个代理防火墙把自身映射为一条透明线路,当外界数据进行代理防火墙的客户端时,应用协议分析模块便根据应用层协议处理这个数据,通过预置的处理规则查询这个数据是

8、否带有危害,由于这一层面对的已经不再是组合有限的报文协议,所以防火墙不仅能根据数据层提供的信息判断数据,更能像管理员分析服务器日志那样分辨危害。由于代理型防火墙基于代理技术,以牺牲速度为代价换取了比包过滤防火墙更高的安全性能,在数据交换频繁的时刻,代理防火墙就成了整个网络的瓶颈,所以代理防火墙的应用范围还远远不及包过滤防火墙。 3.状态监视技术 这是继包过滤技术和应用代理技术后发展的防火墙技术,这种防火墙通过被称为状态监视的模块,在不影响网络安全正常工作的前提下采用抽取相关数据的方法对网络通信的各个层次实行监测,并根据各种过滤规则做出安全决策。 状态监视可以对包内容进行分析,摆脱了传统防火墙仅

9、局限于几个包头部信息的检测弱点,而且这种防火墙不必开放过多端口,进一步杜绝了可能因为开放端口过多而带来的安全隐患。   摘要:本文是教授“操作系统”课的心得体会。提出了对“操作系统”课程的一些思考以及对教材改革的思路,并且指出了传统的“操作系统”课程教学环节的弊端和实践环节在“操作系统”这门课中的重要性以及实践环节的多样性,最后指出要从培养高水平的创新性人才出发,研究教材改革的方向和思路。关键词本文来自:计算机毕业网 :操作系统;教材改革;教学环节;实践环节DiscussSomeThoughtofTeachingandPractice in the Subject“Operating

10、 System”Abstract: The article discusses the feeling when I teach the subject“OperatingSystem”.There is devided between theory and practice in the subject“OperatingSystem”and the content of text book is serious out of date. The article is provided some thoughts of the subject“OperatingSystem”and some

11、 advice ofthereform of the text book. At the same time, this article points out the shortcoming of traditional teaching in the subject “OperatingSystem”and importance of practice in the subject “OperatingSystem”and diversity of practice. Finally, the article points out to research the direct and ide

12、a of the reform of text book from start point of cultivating high level innovating person with ability.Key words: OperatingSystem;thereform of the text book;teaching tache;practice tache1引言操作系统本身是计算机系统的底层核心软件, 它的设计过程体现了程序设计和软件工程的精髓。操作系统原理是计算机专业主干课程之一,是计算机科学知识构成的重要部分。除理论知识以外,实践环节也是必不可少的。在传统的“操作系统”课程教

13、学当中,存在着相当大的弊病,理论和实践脱离得相当严重,已到了“操作系统”课程教学非改革不可的地步。2传统的“操作系统”课程教学环节的弊端在传统的“操作系统”课程教学当中,“操作系统”的理论性较强,与实践脱离很严重,有的甚至没有实践环节。这使得学生在学习这些理论的时候觉得太空洞,并且是无用武之地。举例来说:进程管理是操作系统的核心章节,在这里只能用类passical语言来实现进程管理各种算法。但在实际上,学生在实践中并没有实践它,造成学生只是在理论上知道这种算法,而无法实践它。在以后的学习甚至在工作中都没有用到这种算法。这样就造成了一种恶性循环。具体来说,比如有关PV操作的例子,自习教室中共有5

14、0个座位,当教室里没有空余座位时读者只能在教室外等候,直到有人离开教室时方可进入。要求定义相应的信号量并用PV操作给出读者进行自习的同步算法。这是一个书上的例子,书上只给出了类passical语言表示的程序段,然而没有给出具体passical语言或者C语言的程序来说明整个的PV操作。如S表示自习教室刚开放的时候可用的座位数为50。当S0时说明教室中有座位可用,当S=0时说明座位已被分配完,当S0时说明有读者在教室外等候,此时S的绝对值就是等候的读者数。读者进程可表示如下: BeginSemaphoreS:=50;Cobegin Begin P(s);进入自习教室;自习;离开自习教室; V(s)

15、; EndCoendEnd这是书上给出的答案,这样也无可非议,学生只要知道先申请资源,即教室。申请到了教室就进入教室自习,自习完了就释放资源。然而,学生在实践环节中实践不了它。这样就是当时学生知道这段读者进程的意思,但过不了多久,拿到类似的问题,学生就不会做或做错了。在传统的“操作系统”课程教学中存在着严重教学误区:(1) 操作系统纯理论化。许多高校“操作系统”课程还是理论教学,没有实践环节,脱离实践非常严重。(2)“操作系统”课程內容过于陈旧。我们现在操作系统课本还是上世纪80年代或90年代的內容,经过这二十多年计算机的发展,操作系统得到了迅速的发展,操作系统也得到了更新换代,然而这在我们学

16、生的教材上没有得到体现,使得操作系统的教材从上世纪80年代延续到21世纪,可能还要继续延续下去。因此,对操作系统教材的改革已迫在眉睫。当然,对操作系统的教材更新时必须要注意以下几点:(1) 首先要做到新老兼顾的原则,也就是说在吸收新鲜的內容的同时,原来过于陈旧的內容可以删除,但是基本內容不能少,这样在增加新內容的同时原来的知识得到了巩固,新知识的添加可以包含在原章节中,这样每章的操作系统算法都可以通过这些新知识来论证。新知识包括,嵌入式操作系统以及一些最新操作系统理念,把这些新知识融入到原有知识里,更能体现出操作系统理论在现实中的价值。(2) 在配备操作系统教材的同时,应配备一本实践指导教材。

17、这是非常重要的。这样可以把操作系统每章的算法和原理与实践结合起来,做到理论和实践相结合。这样,学生通过自己动手实践更加容易理解操作系统的原理和算法。教材的选定非常重要,选定一本好的教材,对学生的学习兴趣和积极性的调动非常重要。例如,一本好的教材对学生有启发的作用,可以很好地调动学生的积极性和主动性,一本好的教材有好的实践指导书,可以帮助学生自己动手实践理解操作系统里的各种算法。一本好的教材是和现实紧密结合的,这不仅反映了操作系统当前的迅速发展的领域,而且可以使学生更加了解当前操作系统的发展状况,对学生有着一种激励作用。总之,“操作系统”课程的改革必须是围绕着学生的学习和兴趣来改革,让学生学习到

18、更多的知识,接触到最新的技术发展是我们作教师的巨大责任。因此,“操作系统”课程的改革必须围绕学生的自身特点来进行,这样“操作系统”的改革才有出路,才会让学生学到更多知识。3对“操作系统”课程中实践环节的几点思考实践环节是学生自己动手来完成课程里所要求的实践环节,以实现课程里的算法。在“操作系统”中,实践环节非常重要,学生通过实践环节来理解“操作系统”各种算法,因此实践环节在“操作系统”课程中占有十分重要的位置。 现在大多数高校“操作系统”课程没有实践环节,这样学生在学习“操作系统”这门课时就感到非常枯燥。如开头讲的那个例子:学生只知道怎么分析这道题,然后给出类Passical 进程段,然而学生

19、并不知道如何用计算机语言来实现这个程序段。学生只能用中文来表示这个进程段。假如书上能给出用源代码来表示的整个程序,然后学生可以上机论证一下,这样对进程管理的整个过程都会了如执掌,并且有了理性的认识。通过实践环节,学生可以更好地理解操作系统的各种算法。大多数高校没有把操作系统的实践环节放在非常重要的地位,他们把纯理论的知识直接灌输给学生,而没有用实践来论证这些理论。这样,理论显得非常空洞。为了凸显实践的重要性,我们在“操作系统”的每章里都可以附加操作系统的实践。在国外的许多高校,操作系统很早就开设了实践环节,这样操作系统每个章节的算法都可以用实践来实现,加深了学生对这些算法的理解。同时也给出了许

20、多源代码供学生参考,这样有利于培养操作系统方面的拔尖人才以及为培养软件专业方面的人才奠定基础。而在国內的许多高校,操作系统并没有开设实践环节,以至于学生没有办法来实现操作系统里的算法。这样高校也就造就不出一批高层次的人才以及拔尖人才。实践环节是培养学生动手能力和理解操作系统算法的重要环节。具体的实践环节应包括以下几点:(1) 对算法源代码的分析,可以加深对此算法的理解。通过对源代码的分析和编译,学生可以对算法的整个编译过程和实现过程有一个更加直观上的理解。通过对源代码的编译和分析,可以提高学生的编程能力,而且能够使学生的思路更加开阔。因此,在操作系统课程的实践环节中增加对每个算法源代码的分析和

21、编译是必要的而且是必须的,这是培养高水平拔尖创新性人才的重要环节。(2) 操作系统课程要跟上时代的步伐。随着现代计算机的迅速发展,现代操作系统更新换代非常迅速,如何让学生接受最新的操作系统设计技术成为当前面临的重大课题。如现在嵌入式系统发展迅速,在人们生活的整个电子领域都有嵌入式系统的影子。而在操作系统的教材中却没有嵌入式操作系统的內容,这样学生就无法跟上时代的步伐。因此,在操作系统课程中增加嵌入式操作系统是必要的,而且是必须的。这可以让学生能够接受操作系统的最新技术,而且可以把操作系统的理论应用到操作系统最新发展的技术上。(3) 在实践过程中故障排除能力对培养学生独立思考能力起着非常重要的作

22、用。比如检测源代码正确性,这就需要学生有独立思考的能力和较强的动手能力。通过检测源代码的正确性,同样可以提高学生的编程能力以及培养学生的创新性思维。(4) 实践环节可以有多种形式,比如可以把学生以组为单位共同完成一个模块,几个小组完成一个大的系统。这样不仅培养了学生的动手能力,也培养学生的创新能力。操作系统是整个计算机专业的核心课程,也是后续课程的基础,实践环节不仅可以让学生真正理解操作系统的算法,而且可以培养学生的编程能力。总之,在操作系统课程中,实践环节占有非常大的份量,是培养创新性人才的重要环节。因此,需要改变当前操作系统课程教学的误区,必须改革教材以及实践环节的配套用书,让学生真正从实

23、践中理解操作系统的各种算法,同时为以后的编程打下良好的基础。4总结在整个操作系统教学过程中,理论和实践相脱离,在课堂上讲述的算法没有 本文中,我们以独立学院“操作系统”精品课程建设实践为基础,来讨论应用型精品课程建设的一些认识基础,探索计算机专业课程的教学新方法。作为计算机科学技术及其相关专业的重要基础,“操作系统原理”(也称“操作系统”)是一门承上启下的重要课程。该课程帮助学生理解操作系统的工作原理和技术,熟悉操作系统内核,能够运用操作系统深层次功能来解释和开发更好的中间件和应用程序,等。此外,无论是为新设备编写驱动程序、创建新的微内核服务器,还是提供能够高效处理发展需求的新系统,等等,都需

24、要理解基本的操作系统原理和技术。一些学校的专业学生甚至还需要掌握操作系统的分析、开发和设计技术。而另一方面,应用型、教学型高等院校(尤其是本科院校)计算机专业毕业的学生虽然很少直接从事操作系统软件的开发,但其操作系统原理的知识水平,直接或间接地影响其专业水平和系统设计与开发能力,是他们与其他非计算机专业的用户和应用者的分水岭。1 “操作系统原理”已经有完整的知识结构与内容鉴于其重要性,各个学校,尤其是研究型大学的计算机专业,都一贯重视“操作系统原理”的课程建设。例如,我们利用Google (谷歌)搜索引擎,对“操作系统精品课程”关键字进行搜索,得到“简体中文网页中,约有880, 000项符合操

25、作系统精品课程的查询结果”(2010.10.9查询。作为比较,同样是重要的专业基础课程,“数据结构精品课程”有290, 000项;“软件工程精品课程”有594, 000项) 。又例如,我们在图书的专业网站“互动出版网”(http:/www.china-) 进行相关搜索,在该网站的“计算机书店”中,“操作系统”类图书信息有2, 251条(2010.10.9查询。作为对照,“数据结构”类图书信息有433条;“软件工程及软件方法学”类图书信息有1270条)。可见,在解决操作系统课程教学的重点难点问题方面,我们不乏优秀论文和优秀成果,也有很多优秀的教学前辈和教学典范;另一方面,从宏观上讲,我们不缺教材

26、,也不缺好的“操作系统原理”教材。在长期的专业建设和教学实践中,通过引进、消化吸收以及教改创新,许多优秀的、具有方方面面特色的国内外“操作系统原理”教材得以建设、出版和发行。但是,在精品课程的建设过程中,我们认识到,应用型院校的学科建设应该有其自身的特点和特色。传统的精英教育模式即使仍然优秀与先进,也不能完全适应普及高等教育的需要,新的高等教育形势呼唤新的教学方法和新的教学模式。这一点,在当下的众多精品课程建设中,无论是建设者,还是评判者,都很少顾及,往往还是用传统的方法,用精英模式的方法来建设和评价应用型院校的项目。在实践中,我们认为兄弟院校做到的我们要努力学习积极争取做到,更重要的是,应用

27、型“操作系统原理”精品课程建设还应该包括对本课程教育对象 (例如独立学院本专业学生的学习状况和认知特点) 的正确认识、对教学目的(例如独立学院培养“应用型”“本科”人才)的深刻理解和对新的教学方法的改革与发展,等。2正确理解教育对象,建设应用型人才培养环境孔子曾经提出过不少至今仍然具有教育意义的人本思想,他的“有教无类”观点的理论基础是其“性相近也,习相远也”的人性论。“性相近”说明人皆有成才成德的可能性,而“习相远”又说明了实施教育的重要性。正是基于“人皆可以通过教育成才成德”认识,才有了“有教无类”的教育原则。认识“有教无类”,对于教师来说,就要真心地爱学生,真心地热爱教师这个职业。由基本

28、的对岗位和对学生的“爱”为出发点,去理解学生,思考问题,寻找解决之道。亦即:要尊重学生,用科学的态度分析和认识学生中存在和出现的问题;根据学生群体的认知习惯来设计、调整、改变和发展自己的教学方法。通过师生的共同努力,建设新的、更加积极的良好学风。就像池塘养鱼。不同的鱼种有不同水深分层次生活的习性,所以,池塘养鱼一般是分层次确定投放鱼种的。在社会生活中,对于计算机专业人才的需要也是分不同层面而产生不同需求的。研究型院校主要培养学科精英,教学型院校主要培养优秀应用人才,甚至是高职高专的应用型人才,都各有各的用武之地,重要的是,应该以不同的角度去看待他们,理解和认识他们,教育和培养他们,而不是一刀切

29、。在精品课程建设过程中,我们逐渐认识到:学校学习氛围的变化主要缘于学生结构和学生对象的改变。事实上,教学对象变了,教学目标变了,教师“单一”的教学方法已经成为亟待解决的关键。3着眼于应用性教育目标,倡导教学内容的分层次设计大多数大专院校都设置有计算机科学技术及其相关专业,我们至少可以认为:根据所在院校的办学类型不同、培养目标不同、所在地及其周边地区社会需求的不同,这些计算机专业的教学内容应该有所不同,这些计算机专业对于“操作系统原理”这门课程的教学内容也应该是有所不同的。我们认为:对于大多数计算机专业的学生,尤其是非研究型院校的学生,应该把“操作系统原理”的学习定位在理解、熟悉和能够灵活运用操

30、作系统原理,来解释计算机运行的现象和开发更好的应用程序与新设备驱动程序等这样的层面,而把那些“考研”所需要的更深层次理论性内容放在选修或者考研复习阶段来解决。从长远看,应该对各层次院校的计算机专业所开设的“操作系统原理”课程的教学内容进行研究,在特定的范围内形成一定的相关共识。换句话说,在教材建设中要很好地把握编写内容的“度”,要完整、全面;而在具体教学过程中,要很好地把握灵活的“度”,在符合培养目标的前提下,授课要生动、能理解,要引导学生产生对课程内容的浓厚兴趣,千万不要满堂深灌而读僵读死。“操作系统原理”课程虽然有鲜明的应用性和实践性,但也有对基础课程和对理论深度的很高要求,因此,教学方法

31、需要很好地设计,需要明了教学过程中学生的学习状况,积极进行调整和引导。4注重因材施教,重视教学方法改革与创新孔子非常注重因材施教,他研究人的方法是以承认人与人的存在差别为前提的,他对每个学生的性格和特长都很了解,并且要求学生把学和思、学和行结合起来。孔子的教育观点体现了教书育人的精神。从“教书”来讲,就是要培养有能力有学问的贤才;从“育人”来讲,就是要塑造理想的人格。孔子不把“圣人”作为教育的目标,而把重点放在培养君子人格上。在论语中,孔子所描绘的君子是仪表端庄、崇德向善、慎言敏行、学以致道、善于交际、爱才惠民、安贫乐道的人。在孔子那里,君子的标准可高可低,高到德、才、智全面发展,低到能具备某

32、些优点就行了。君子既要求完美,又不尽完美。孔子培养学生的君子人格、就是在对学生的优点和不足有了全面了解的基础上进行的。正因为此,“因材施教”就成为教师应该遵循的基本原则。教师要尊重学生的个性,发挥学生的专长,通过因材施教,使广大学生成为各方面的“贤才君子”。在应用型“操作系统原理”精品课程建设过程中,我们的一个侧重点,就是探索学生能够喜欢、能够接受的教学方法。传统模式的教学方法可以简单地概括为“先说 (课堂理论教学) 后做(验证性实验)”和“光说不做”。但是,在大众化高等教育背景下,课堂教学效果普遍出现滑坡,客观上淡化了“验证性”实验的基础,因而严重影响了课程的教学质量。这一点,在“操作系统原

33、理”课的教学中尤其如此。 我们在教学实践中摸索出一套“把实验实践环节与理论教学相融合,抓实验实践教学促进学科理论知识学习”的教学方法,有效地提高了学生的学习兴趣,以此来提高大众化高等教育背景下“操作系统原理”以及其他专业课程的教学效果和质量。这个教学方法可以简单地概括为“先做后说”和“边做边做”。这里的“先做”,就是教师依据相关课程的知识体系和教学要求,精心设计前导实验,学生在实验设计的指导下,通过实验方法来了解和实践课程知识;这里的“后说”,就是在学生具备了一定的感性认识的基础上,在课堂教学环节中答疑解惑,系统地提高学科知识的理论水平。例如,“操作系统原理”课程一向都有实验教学的要求,但实验

34、内容通常是根据操作系统原理的思想,运用某种程序设计语言来实现操作系统的部分功能,或者分析诸如Linux操作系统某个版本的开放源代码,等,带有强烈的“验证性”色彩。但是,(1) 由于低年级程序设计语言教与学所存在的问题,学生普遍不能顺利地运用程序设计语言工具;(2) 对于应用型院校的学生来说,学习操作系统原理的主要目的应该不是设计新的操作系统,而是在理解的基础之上更好地运用操作系统。因此,应用型“操作系统原理”的课程建设尤其要重视建设实验、实践和应用等环节,让学生通过实验认识问题所在,通过实践理解问题的解决方法,通过体会到应用价值而喜爱本课程的教学内容。操作系统软件肯定是我们所见到的最优秀、最复

35、杂和最庞大的软件之一,所以,真正领会操作系统课程所介绍的概念、原理、方法和技巧,对很多学生来说是困难的。我们需要为学生提供了一个研究操作系统内核的学习方法,使学生可以由此来体验操作系统内核及其设计技巧。可以在不修改任何代码的情况下,了解操作系统内部状态的各个方面;也可以通过编写新的代码来阅读内核的数据结构和了解操作系统运作方式,等等。根据以上思考,我们在实验内容的选择、实验步骤的设计和实验文档的组织等方面都作了精心的考虑和安排,结合精品课程建设,尝试为“操作系统原理”课程编写了实验教材操作系统原理实验(2003年科学出版社出版,2010年修订)。该实验教材依据课程教学大纲,充分理解课程的大多数

36、教材,遵循课程教学的规律和节奏,体现了 摘要:C+是应用最广的编程语言,C+的应用水平代表着一个国家的软件产业发展水平,但是C+是最难掌握的编程语言。本文认为,只有自觉地把C、C+和数据结构作为一个整体,才能解决C+学习难的问题。关键词本文来自:计算机毕业网 :C语言;C+语言;数据结构;重用程度C+是计算机软件领域中应用最广的编程语言,包括操作系统、设备驱动、编译器、系统工具、图像处理、数据库系统以及通用办公软件等在内的能够代表一个国家软件产业发展水平的基础软件都是适合C+应用的领域,因此,C+的应用水平代表着一个国家的软件产业发展水平。不仅如此,C+具有的既可以针对底层硬件设计又可以面向应

37、用软件设计的功能使它成为我们深入分析、理解和应用其它各种软件的方法,学好C+,再学用其它软件就容易多了,用侯捷的话说,“万千使用者前赴后继的动力是:一旦学成,妙用无穷”。C+也是最难掌握的编程语言。一是内容多:C+新标准出现之后,“一个覆盖面非常广阔的库现在成了标准C+的一部分,其中包括以前称为STL(标准模板库)的内容。新的string类型、一组顺序和关联容器类型(比如vector、list、map和set),以及在这些类型上进行操作的一组可扩展的泛型算法(generic algorithm),都是这个新标准的特性”1。二是语法和语义不易理解:C+程序要由C+编译器在语言层面上展开,例如,程

38、序员设计的很多函数并不在程序员程序中被调用,而是在展开之后的内部C+程序表现中被调用,这与传统的结构化程序设计完全不同,令很多人感到困惑,他们抱怨C+编译器说:“它在你的背后做事情”2,而C+很多令人疑惑的概念都和C+编译器有关。本文认为,只有从C、C+和数据结构作为一个整体出发,才能解决C+学习难的问题。1数据结构是语言研究的对象长期以来,C、C+和数据结构都是相互独立的课程:C与C+的联系仅仅限于C+与C兼容,而主要强调的还是它们在方法上的截然不同;数据结构强调不依赖任何编程语言的描述,并且更多的是用类语言即非编程语言描述,即便使用了编程语言,也仅是作为描述数据结构的工具。C+标准的出现,

39、迫使我们重新审视它们之间的关系。当我们说,数据结构不依赖任何编程语言的描述,或者说,编程语言仅仅是描述数据结构的工具,那是为了不受编程语言的语法细节的影响,以突出典型算法的设计和算法的时间复杂度分析。但是,如果重点研究的是数据结构代码的重用性,那么数据结构不仅必须用编程语言描述,而且还必须研究用什么编程语言描述才能提高数据结构代码的重用程度、使语言能够进一步发展的问题。我们要学习的C+标准库以及建立其上的重用程度更高的泛型算法都是这种研究的成果。在这里,数据结构不再是编程语言描述的对象,而是编程语言研究的对象,是编程语言的一部分。用个比喻来说,研究资本主义生产活动中的人和研究解剖学意义下的人,

40、意义是不同的。数据结构作为语言的研究对象,要求我们按照语言发展的规律去研究它。语言发展是语言重用程度不断提高:从汇编语言,C语言,到C+,Java的流行,是基础设计方法重用程度的提高;从指令语句到函数,从对象到构件,支持重用的语言机制日渐成熟。按照语言发展规律去研究,就是“从事物的发展、自己运动、变化中来观察事物” 3,即从事物的关系和它的必然发展去观察事物本身。Bruce Eckel教授在他的Thinking in C+(C+编程思想)一书中说:“由于很多人学习走了弯路,因此,我们已经开始探索C程序员转移到C+语言性能层上的方法” 4。他先用C语言实现一个袖珍C库(一个简化的顺序结构),然后

41、再转换为C+实现,由此进入C+。他认为,“C+的主要设计目标之一是使库容易使用。这意味着,在C中使用库有困难。懂得这一点就对C+设计有了初步的了解,从而对如何使用它有了更深入的认识”4。其实,这不仅对C程序员,而且对任何想学好C+的人来说,都是重要的。2数据结构领我们从C走进C+Bruce Eckel教授从软件发展的角度,揭示了C、C+和结构的联系:C需要创建结构,但是C语言结构不能像语言内部类型一样使用,这不利于软件重用程度的进一步提高,于是,“用户从设计自定义数据类型开始扩展C语言” 5,“C+对C的结构体类型作了实质性的扩充” 5。可以说,“C+的许多性能都围绕着一个根本的思想:创建新的

42、数据类型的能力”4。这里需要阐明结构和数据结构的关系:结构是变量集合体,数据结构指向量、集合、树、图、代数方程、多项式等典型离散结构,也可以说,是典型算法依赖的结构,或者说,是服务于典型算法的结构,数据结构和算法是相互依存的。从语言上讲,结构包含数据结构,从算法上讲,结构指数据结构。Bruce Eckel教授实际上提示了学习C+的一个基本原则:不要从概念出发,要从程序设计的需要出发,而且他选择了具有典型意义的需要顺序结构的重用性。很多C+教材为了避免数据结构的内容,选择了从数值结构(而且常常是简单的数值结构)向类的转换的学习方法。一个需要是否具有典型意义,要看它在多大程度上反映语言的必然发展。

43、C+的特征可以归结为四个方面:一个更好的C,支持数据抽象,支持面向对象编程,支持泛型编程。顺序结构比数值结构具有更多的需要抽象的内容,以结构串为例:因为它含有指针成员,所以必须创建构造函数、拷贝构造函数、析构函数、拷贝赋值运算符重载;因为有C文本串成员,所以必须创建转换构造函数、转换赋值运算符重载、成员转换函数;因为具有数值计算的特点,所以必须重载逻辑运算符和关系运算符;而且它具有的丰富的、需要封装的函数,其函数代码几乎就是C结构串代码,这使从C到C+的转换更“平滑”、渐进,使我们可以集中研究转换的C+内容;还有,转换后的C+类串是更好的C串;特别是,C+类串是研究C+标准中非顺序结构、面向对

44、象编程和泛型编程的基础。而数值结构因为一般不含指针成员,所以在向C+转换过程中,拷贝构造函数、析构函数、拷贝赋值运算符重载可以创建也可以不创建,没有差别,而且转换后的结果在以后的C+标准的学习中应用很少。既然C+产生于C程序设计的需要,那么就可以用C语言明确地表达这种需要和满足这个需要的可能的方法,这是人的主观能动性。结果是一组C语句可能被抽象为一条C+语句,或者说,一条C+语句可能被解读为一组C语句,这使我们可以从C的角度反向审视令人困惑的C+语法和语义,困惑被C程序员自觉能动的活动即实践解除了。“凡是把理论引向神秘主义的神秘东西,都能在人的实践中以及对这个实践的理解中得到合理的解决” 6。

45、以结构串(简化的)为例,表1和表2显示了从C描述到C+描述的部分转换内容。3学习中的辩证思维概括起来说,C、C+和数据结构是相互包含的整体。辩证法所说的相互包含或某物中包含他物,并不是指他物作为一个现成的细小的东西包含在某物中,而是作为某物的一个方面、一种趋势、一种因素包含在某物中。C包含C+,是指C包含着C+作为其必然的发展。C+包含C是因为它是更好的C,例如,C+的向量类模板std:vector就是更好的C数组,C+类串就包含着C文本串。“每一种事物都有它的特殊的否定方式,经过这样的否定,它同时就获得发展,每一种观念和概念也是如此”7。在这个意义上讲,C、C+和数据结构的学习是统一的。 Bruce Eckel教授虽然意识到他自己提出的从顺

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服