计算机程序设计语言发展史和对程序设计语言未来的看法

时间:2019-05-14 02:12:09下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《计算机程序设计语言发展史和对程序设计语言未来的看法》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《计算机程序设计语言发展史和对程序设计语言未来的看法》。

第一篇:计算机程序设计语言发展史和对程序设计语言未来的看法

计算机程序设计语言发展史和对程序设计语言未来的看法

信息科学与工程

通信一班

比拉力江·买买提

20104055049

【摘要】

本文以自然辩证的观点探讨了计算机语言的发展历程,运用自然辩证法的基本理论、基本方法,系统分析了计算机语言的发展历史、现状和未来。并对其的发展趋势和未来模式做了探索性研究和预测,同时以哲学的观点阐述其发展的因果关系,揭示其事物发展的共性问题;最后文章介绍了在计算机语言发展历程中做出杰出贡献的科学家,以其在计算机事业中的突出表现来折射出人类智慧的伟大,以其不平凡的一生来激励和指导我们在计算机语言的发展中向着正确的方向前进。

【关键字】

自然辩证法 计算机语言 计算机技术 编程语言 因特网 面向对象

一、引言

一九九三年美国的克林顿政府提出了“信息高速公路”计划,从而在这十多年间在全球范围内引发了一场信息风暴,信息技术几乎触及了现代生活的方方面面,毫不夸张的说没有了信息技术,现代文明的生活将无从谈起;作为信息技术中最重要的部分,计算机技术无疑是其发展的核心问题,而我们知道计算机只是一台机器,它只能按照计算机语言编好的程序执行,那么正确认识计算机语言的过去和未来,就是关系到计算机发展的重中之重;以自然辩证法的观点认识和分析计算机语言的发展历程,将有助于更加全面地推动计算机技术的发展,有助于更加准确地掌握计算机语言发展趋势。

二、科学认识大门的钥匙--当代自然辩证法

自然辩证法,是马克思主义对于自然界和科学技术发展的一般规律以及人类认识自然改造自然的一般方法的科学,是辩证唯物主义的自然观、科学技术观、科学技术方法论。它主要研究自然界发展的总规律,人与自然相互作用的规律,科学技术发展的一般规律,科学技术研究的方法。

马克思、恩格斯全面地、系统地概括了他们所处时代的科学技术成功,批判吸取了前人的合理成分,系统地论述了辩证唯物主义自然观、自然科学发展过程及其规律性,以及科学认识方法的辩证法,以恩格斯的光辉著作《自然辩证法》为标志,创立了自然辩证法继续发展的广阔道路。

自然辩证法是马克思主义哲学的一个重要组成部分。在辩证唯物主义哲学体系中,自然辩证法与历史唯物论相并列。它集中研究自然界和科学技术的辩证法,是唯物主义在自然界和科学技术领域中的应用,它的原理和方法主要适用于自然领域和科学技术领域。

学习和运用自然辩证法将有助于我们搞清科学和哲学的关系,从而更加清楚地认识科学的本质和发展规律,更加全面的观察思考问题,只有加深了认识,我们才能更好地发挥主观能动性,迎接新的科学技术的挑战。下面我将以自然辩证法的观点来分析计算机语言的发展历程。

三、计算机语言的发展历程和发展趋势

计算机语言的发展是一个不断演化的过程,其根本的推动力就是抽象机制更高的要求,以及对程序设计思想的更好的支持。具体的说,就是把机器能够理解的语言提升到也能够很好的模仿人类思考问题的形式。计算机语言的演化从最开始的机器语言到汇编语言到各种结构化高级语言,最后到支持面向对象技术的面向对象语言。

1、计算机语言的发展历史:二十世纪四十年代当计算机刚刚问世的时候,程序员必须手动控制计算机。当时的计算机十分昂贵,唯一想到利用程序设计语言来解决问题的人是德国工程师楚泽(konrad zuse)。几十年后,计算机的价格大幅度下跌,而计算机程序也越来越复杂。也就是说,开发时间已经远比运行时间来得宝贵。于是,新的集成、可视的开发环境越来越流行。它们减少了所付出的时间、金钱(以及脑细胞)。只要轻敲几个键,一整段代码就可以使用了。这也得益于可以重用的程序代码库。随着c, pascal,fortran,等结构化高级语言的诞生,使程序员可以离开机器层次,在更抽象的层次上表达意图。由此诞生的三种重要控制结构,以及一些基本数据类型都能够很好的开始让程序员以接近问题本质的方式去思考和描述问题。随着程序规模的不断扩大,在60年代末期出现了软件危机,在当时的程序设计模型中都无法克服错误随着代码的扩大而级数般的扩大,以至到了无法控制的地步,这个时候就出现了一种新的思考程序设计方式和程序设计模型-----面向对象程序设计,由此也诞生了一批支持此技术的程序设计语言,比如eiffel,c++,java,这些语言都以新的观点去看待问题,即问题就是由各种不同属性的对象以及对象之间的消息传递构成。面向对象语言由此必须支持新的程序设计技术,例如:数据隐藏,数据抽象,用户定义类型,继承,多态等等。

2、计算机语言的发展现状:目前通用的编程语言有两种形式:汇编语言和高级语言。

汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。

高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。

高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的vb、vc、foxpro、delphi等,这些语言的语法、命令格式都各不相同。

高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类: 解释类和编译类。

3、计算机语言的发展趋势:面向对象程序设计以及数据抽象在现代程序设计思想中占有很重要的地位,未来语言的发展将不在是一种单纯的语言标准,将会以一种完全面向对象,更易表达现实世界,更易为人编写,其使用将不再只是专业的编程人员,人们完全可以用订制真实生活中一项工作流程的简单方式来完成编程。下面是一张计算机语言发展图表,从中不难得出计算机语言发展的特性:

提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序面向对象提供简单的类机制以及动态的接口模型。对象中封装状态变量以及相应的方法,实现了模块化和信息隐藏;提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用,用于网络、分布环境下有安全机制保证。平台无关性,与平台无关的特性使程序可以方便地被移植到网络上的不同机器、不同平台。

四、面向未来的汉语程序设计语言:

从计算机诞生至今,计算机自硬件到软件都是以印欧语为母语的人发明的。所以其本身就带有印欧语的语言特征,在硬件上cpu、i/o、存储器的基础结构都体现了印欧语思维状态的“焦点视角”,精确定义,分工明确等特点。计算机语言也遵照硬件的条件,使用分析式的结构方法,严格分类、专有专用,并在其发展脉络中如同他们的语言-常用字量和历史积累词库量极度膨胀。实际上,计算机硬件的发展越来越强调整体功能,计算机语言的问题日益突出。为解决这一矛盾,自六十年代以来相继有500多种计算机语言出现,历经五代,至今仍在变化不已。汉语没有严格的语法框架,字词可以自由组合、3

突出功能的整体性语言。在计算机语言问题成为发展瓶颈的今天,汉语言进入计算机程序设计语言行列,已经成为历史的必然。

1、发展汉语程序设计语言的理由:

1)计算机语言问题解决,只能从人类语言中寻找解决方案;

2)计算机语言的现存问题是形式状态与功能需求的矛盾;

3)计算机硬件的发展已为整体性语言-汉语进入计算机程序设计语言提供了条件

2、汉语程序设计语言的技术特点:

1)汉文字的常用字高度集中,生命力极强,能灵活组合,简明准确地表达日新月异的词汇,这些优点是拼音文字无法企及的。

2)汉语言的语法简易灵活,语词单位大小和性质往往无一定规,可随上下语境和逻辑需要自由运用。汉语言的思维整体性强,功能特征突出。

3)汉语程序设计语言的发明者采用核心词库与无限寄存器相结合的方法,实现了汉语言的词素自由组合;将编译器与解释器合一,使汉语程序设计语言既能指令又能编程;以独特的虚拟机结构设计,将数据流与意识流分开,达到汉语程序设计语言与汉语描述完全一致,通用自如。

具有汉语言特性的汉语程序设计语言的出现,打破了汉语言不具备与计算机结合的条件而不能完成机器编码的神话。还为计算机科学与现代语言学研究提出了一条崭新的路径,它从计算机语言的角度,从严格的机械活动及周密的算法上,向世人证实汉语的特殊结构状态,及其特殊的功能。

五、计算机语言之父——尼盖德

尼盖德帮助因特网奠下了基础,为计算机业做出了巨大贡献。

尼盖德是奥斯陆大学的教授,因为发展了simula编程语言,为ms-dos和因特网打下了基础而享誉国际。克里斯汀·尼盖德于1926年在奥斯陆出生,1956年毕业于奥斯陆大学并取得数学硕士学位,此后致力于计算机计算与编程研究。

1961年~1967年,尼盖德在挪威计算机中心工作,参与开发了面向对象的编程语言。因为表现出色,2001年,尼盖德和同事奥尔·约安·达尔获得了2001年a.m.图灵机奖及其它多个奖项。当时为尼盖德颁奖的计算机协会认为他们的工作为java,c++等编程语言在个人电脑和家庭娱乐装置的广泛应用扫清了道路,“他们的工作使软件系统的设计和编程发生了基本改变,可循环使用的、可靠的、可升级的软件也因此得以面世。”

尼盖德因其卓越的贡献,而被誉为“计算机语言之父”,其对计算机语言发展趋势的掌握和认识,以及投身于计算机语言事业发展的精神都将激励我们向着计算机语言无比灿烂的明天前进。

六、结束语

用科学的逻辑思维方法认识事物才会清楚的了解其过去、现在和未来,计算机语言的发展同样遵循着科学技术发展的一般规律,以自然辩证法的观点来分析计算机语言,有助于我们更加深入地认识计算机语言发展的历史、现状和趋势,有了自然辩证法这把开启科学认识大门的钥匙,我们将回首过去、把握现在、放眼未来,正确地选择计算机语言发展的方向,更好的学习、利用和发展计算机语言。

参考文献:

1、《计算机语言发展史》

2、http://zhidao.baidu.com/question/5353220.html

第二篇:程序设计语言

程序设计语言

一般分为机器语言、汇编语言和高级语言。

1、机器语言

机器语言是用二进制数表示的、计算机唯一能理解和直接执行的程序语言。机器语言不直观,编写难度大,易于出错,调试、修改繁琐,但执行速度最快。机器语言是最低级的程序设计语言。

2、汇编语言

汇编语言是将机器语言“符号化”的程序设计语言。

汇编语言编写的程序,机器不能直接识别,要由汇编程序将其翻译成机器语言才能执行。

特点:比机器语言程序更易于编写、检查和修改,也保持了机器语言编程质量高、运行速度快、占用存储空间少等优点。但汇编语言的通用性和可移植性差。汇编语言也属于低级语言。

3、高级语言

常用的高级语言有BASIC、FORTRAN、PASCAL、C、C++、JAVA等。

特点:与汇编相比,①更接近自然语言,一般采用英语单词表达语句,便于理解、记忆和掌握。②易于编写、查找错误和修改③通用性强。

第三篇:如何学习程序设计语言

如何学习程序设计语言

经常有人会问,“怎样才能学会某某语言?”、“我该怎么学好某某语言?”,其实在学习某种程序设计语言之前,你需要弄明白一个问题,编程的目的是什么?我们为什么要编程?编程就是为了解决各种问题,通过一系列的指令来解决这些问题。那我们学习编程,到底需要学什么呢?因为编程的目的是为了解决问题,显而易见,我们学编程,就是要学会如何解决问题。高手和新手就是看你解决问题的能力。

我们应该如何学习?举个例子,有一天你想买个空调(我想学编程),于是就是市场上了解空调的情况,进行比较,最终确定某个品牌的空调(对目前的编程语言作些了解,根据自身的情况,最终确定一门语言来学习)。空调买来后,有专业的安装工人给你安装调试(学习前先配置好程序的调试运行环境,让你编写的程序能在电脑上跑起来,通过网上的教程或者购买的书本来了解这方面的知识)。安装工人走了之后,你想学会控制空调,这时你就遇到问题了“我怎么才能学会控制它呢?”(我该如何学习编程呢?)首先,你会找来空调的说明书(程序语言的语法手册,可以从网上查找或者买本书来看)和遥控器(电脑),边看说明书,边通过遥控器来控制空调(边看资料边在电脑上编写程序解决某个问题),随着操作的熟练你就不再看说明书了。当说明书上的说明和你实际的操作对应不起来时,你会向厂家咨询,问明原因(可以在某个技术社区或聊天工具上向熟手请教)。总之,一句话,学习时边看资料边实践(在电脑上编写、运行、调试你的程序)。

在写代码前,一定要先养成良好的习惯,先把握住程序的整体,然后再细分,一步一步去完善、去实现全部功能。无论做哪一步时,你都要明白,你的程序在为你解决什么问题?不然,你的解决问题的能力无法提高,学习的目的性也不强。不是有句话,“书到用时方恨少”,就是在你实际操作时,会遇到各种各样问题,你通自己的探索来解决各种问题时,是最有针对性的学习,因为你有这个需求“要如何解决这个问题”,所以当你满足自己的这个需求时,也是最有动力学习的时候了。学习编程,特别在程序出现问题,不按照自己的意愿去运行时,一定要有耐心,一行、一行的去阅读程序,想办法输出它的运行结果,看看是否符合自己的意愿,然后找出出现错误的这一行代码,最后针对这行代码进行分析、调试来解决这个BUG。

当你完成一个学习任务后,其实你已经进入编程的大门了,以后只要按照这个思路继续学习,你就会掌握越来越多的知识和经验,解决问题的能力也会越来越强。

如何学习程序设计

有许多网友都曾迷惑地问我:“怎么样才能学好程序设计?”,这不是一两句话能说

清楚的,于是我就写了这篇文章,给广大爱好者一个能解惑的方法,无论你是什么样的“鸟”相信都能在这篇文章里找到你想要的什么是程序设计

话就从一个著名的公式说起:程序设计=数据结构+算法

每当我写下这个公式的时候,心中总有一种新的感悟,可是就这个程序界尽人皆知的公

式却难倒了一大批想和Bill·Gates一争高下的朋友,下面我为大家解剖这个公式:

“程序设计”说白了就是大家所谓编程,先不管这个词中有什么深刻的内涵,先看看等式

右面的这两个名词。

按照官方的定义:数据结构即非数值计算的程序设计问题中的计算机的操作对象以及它

们之间的关系和操作;算法是对特定问题求解步骤的一种描述,是对指令的有序序列。官方的解释就是经典,可是我们看了却更糊涂了。别急,听我给大家解释。

程序设计就像盖房子,数据结构就像砖、瓦,而算法就是设计图纸。你若想盖房子首先

必须有原料(数据结构),但是这些原料不能自动地盖起了你想要的房子;你必须按照设计图纸(算法)上的说明一砖一瓦地去砌。这样你才能拥有你想要的房子。程序设计也一样,你使用的编译工具中有各种功能语句或基本结构,它们不会自动排列成你要的程序代码。你得按照程序规定的功能去编写,而程序的功能是实现就是算法的具体体现。所以通俗地说:你必须按照特定的规则,把特定的功能语句和基本结构按照特定的顺序排列起来,形成一个有

特定功能的程序,这就是:程序设计=数据结构+算法。数据结构是程序设计这座大厦的基础,没有基础,无论设计有多么高明,这座大厦不可能建造起来的。算法则是程序设计的思想,它的灵魂!没有灵魂的程序不能叫程序,只是一堆杂乱无章的符号而已。在程序设计中,数据结构就像物质,算法就是意识。这就像哲学上说的:意识是依赖与物质而存在的,物质是由于意识而发展。双方是相互依存、缺一不可的!

数据结构内容不多仅仅有几个系统自带的基本结构(像顺序结构、分支结构、循环结构、函数过程)数据类型(整型、实型、布尔、字符等)和用户定义的高级点的数据结构(数组、集合、文件、指针(队列、栈、树、图等)······)就这么多。可是算法却不同了,它是多中多样的!它可以让你让数据以你想要的方式排列(当然要符合语法和功能要求^_^)。再打

个比方,数据结构是人体的各种组织、器官,算法则是人的思想。你可以用你的思想去支配你身体的各个可以运动的器官随意运动。如果,你想去取一个苹果,你可以走过去,也可以跑过去,只要你想,你甚至可以爬过去。但是无论如何,你你的器官还你的器官(没有变),目的还是同一个目的(取苹果),而方式却是随心所欲!这就是算法的灵活性,不固定性。因此可以这样说:数据结构是死的,而算法是活的!现在明白许多了吧!GO ON

怎样学习程序设计

上面说了许多数据结构的在程序设计中重要性,所以努力学习好数据结构是学好程序设计的第一步,也是关键的一步。你初学起来一定会觉得难,枯燥(其实我当时也是这么想的 ^_^),什么标准文件、标准类型、标准函数、标准过程搞的你烦不胜烦。于是,就有许多初学者就厌倦了,停滞不前了,退缩了。你若是想编好程序的话就想:难道就这么一点点小困难就难倒我了吗?我还要挑战Bill·Gates呢?我一定能行,相信自己,一定会闯过这一关的!这样以来,你就具备了程序员最基本的素质——毅力。这一点是程序员必备的,否则在后面开发程序的漫长时间里,你会熬不住的。而且只有这样你才能静下心来学习。这一端时间没有什么捷径,只有多看书、多练习,把所有结构和类型的用法都找掌握牢固。不懂就要问。最好呢,有一位老师指引,这样比自己在这条路是摸黑前进强多了,而且往往还事半功倍。切记!只要跨出了第一步,以后就容易多了,万事开头难嘛!一定要坚持,当你过了这一端时间以后,你就发现程序设计根本没有你想象的那样难。当你把所有的东东都学会时,程序设计的大门已经向你敞开了一扇,而另一扇就是······

算法,这个是程序设计的重点,也是难点。许多菜鸟和老鸟的区别主要在对算法掌握的熟练程度上面。有许多朋友曾这样问我:“我数据结构上面的都学会了,也知道该怎么样用,可是我为什么还是在编程时,不知道该怎样用呢?其实,这就是缺少算法思想的一个具体表现。并不是学好了数据结构就会编程了。算法是灵活多变的,它不像数据结构那样有固定的形式。算法是不固定性就决定了它的特点,你不可能把所有的算法都学会,因为它是无穷尽的。但是你要是能把自己学的有限的算法融会贯通了,那你就了不起了。就好象你只学会了1、2、3这三个数,但是你可以组成12、23、32、123······。所以算法这条路既长有短,既难又易。

学习好算法的方法不少,在此详细的给大家举几个例子。

首先,你要养成一个良好的程序设计风格和习惯。这也分许多种。其中最重要的是养成自上向下逐步求精的程序设计思想和方法。怎样才是自上向下逐步求精的程序设计呢。举个例子。有这样一个问题:已知三角形的两边及夹角,求第三边及面积。

现在,当你看到这个问题是,你不要立即下手去编写,而是要思考一下怎样才能求解(算法),然后把她写下来以免忘记。于是就写了:

一级算法:

1 输入两边的长度a、b以及夹角A

2 计算第三边c和面积s

3 输出c以及s

当你写完之后,你若觉得第2步不太清晰,还不能写出代码,那就继续求精。二级求精:

1、将α的角度转换为弧度;

2、c=sqrt(a*a+b*b-2*a*b*cos(α));

3、s=1/2*(a*b*sin(α))

哈哈,这样问题不就得到解决了吗?接着就可以轻松的编代码了。再仔细看看上面的步骤:先写出一级算法,如果觉得由此还是得不到源代码,或者是其中有一步还有很多步骤要写,那么就继续求精,直到你认为可以很清晰的写出代码为止。但是求精可以因人而异,像上面的题目,若是一个编过很多程序的大虾来说,可能不用什么求精,代码就可以直接写出来了;但要是一个菜鸟(像我一样)就可能要写到二级求精。

这样说来,你可能认为这个求精是不是太慢,抑或根本就是在浪费时间。我大声告诉你:根本不是!这可是众多的编程先驱、编程达人们推荐的基本方法。你知道编程中,主要时间用在了哪里吗?不是编写代码,而是用在了求解算法和调试程序上了!而算法的求精就是缩短这些时间的最好的方法。它可以使你不用再很费力的苦思冥想到底该怎样构造算法,使这个过程更条理、更简明;它也很可能使你不用再为了一个小小BUG而调试半天,因为,它给出的算法已经趋于完美。其实,列一个小提纲(算法)就可以解决很多的问题,生活中不也是如此吗?!所以,第一,求精算法这个最重要的习惯一定要养成哦!

还有一个好的习惯就是要做到:程序源代码的清晰度与可读性一定要高。

这是为什么呢?在源代码中,每行代码前面的空格的有无与多少并不影响程序的运行,但是它影响人的阅读。你想,当你看到一片代码,格式杂乱无章,没有什么主次内外一定会头痛不已,绝对是看了第一遍就不想再看第二遍了。而且当你调试这样的代码时,也会被一

个小错误弄的找不到北了。如果格式很清晰的话,这样的代码就非常易读,结构很清晰,begin..end都看的清清楚楚。我想这样的代码阅读和调试起来一定很顺手的。

还有就是在有些重要的代码块后加入注释,也可以提高程序的可读性。不说别人,就说我就深有体会:以前代码不加注释,当时对其结构很清楚,可是过了几个星期之后,再看代码简直就像看另外一个人写的一样,要费不少工夫才能弄懂,代码越多越如此。自己还很难理解自己的代码,更不用说别人了。因此费点力气加上注释还是值得的。

还有的人喜欢用 goto语句跳来跳去,虽然增加了编写代码的灵活性,可是却严重破坏了程序的结构化,容易造成程序运行和大脑思维的逻辑混乱,很可能导致一些很不容易发现的错误。而且所有的goto都可以用其他的语句来代替。所以在这里建议大家少用goto。能不用就不用。以上是说了要提高代码的清晰度与可读性。

上面用了不少字来介绍程序设计中良好习惯的作用与好处,这算是程序设计的一个基础,希望对大家能有所帮助。下面介绍其他促进编程水平的方法。

其次,就是多加练习和多多与别人交流心得,研究和欣赏别人优秀的程序代码(上面说的清晰度与可读性的重要的一点就在这里体现了)。无论干任何事情,只有经常练习才能熟练的掌握与应用。它不仅能帮你提高对算法的认知程度,还可以使你更好的理解数据结构;而交流心得与欣赏别人的代码则是要你学习别人优秀的独特的见解与逻辑思维,许多„老鸟‟就是在研究优秀代码中慢慢成长起来的。但研究和欣赏并不是意味着让你„全盘西化‟;它是说既不要拘泥于自己一成不变的思考方式,也不要成为别人思想奔驰的高速路,而是让你取长补短,取其精华,去其糟粕,这才是我要说的。另外,在编译一个程序时,要多想几种不同的算法,反复比较,看看究竟哪个更适合这个程序。这样,不仅有助于提高你程序的运行效率,更重要的是有助于提高你对算法的认识和思维的广度。

看完上面这么多,你会发现程序设计的这半扇门似乎并不是想象的那么容易打开;但是如果你能耐住寂寞与枯燥的考验,按部就班、循序渐进的练习,思考,不知不觉中你的水平已经提高了很多。

除了上面说的求精算法和数据结构外,数学方法和逻辑思想对你的程序设计也会有一定的影响(这也属于算法)先说数学方法,它是指导你学习的一个重要的助手。比如你要实现一个看似很复杂的函数,而且你编写了一大堆代码,什么结构和类型都用上了,可是还是实现不了。这时候先别着急,也许在你做这个函数前就要静下心来,仔细思考,看看有什么数学上学习的特别公式能够实现这个问题吗?如果你真的灵感大发,把它挖了出来,恭喜你!

(答对了!)我想这个时候你一定会高兴的手舞足蹈,这种感受,我想大家在做数学题OR其他难题时一定深有体会。

这样说太空洞,不如举个例子:将8个„车‟放在8X8的国际象棋棋盘上,如果它们两两均不能互吃,那么称8个„车‟处于安全状态。问总共有多少种不同安全状态?对于这样的题一般的解法是用„回溯法‟,即先有顺序的固定一个棋子,然后将剩下的逐行试探,如果可以则摆放下一个,要是不行就把该棋子换一个位置,直到所有的方法都用(遍历)一遍。这样看来这个方法真的很麻烦,不因需要编写大量代码,而且还要用到„递归‟(编程的一个重要的算法)。使程序的效率大大降低。但是我们可以想想有没有更好的数学方法。肯定有!你看在第一行中,棋子可以在8个空格内随意摆放而不会受到攻击;而第二行,棋子则只有在7个空格内再挑选一个了;第三行就只有6个……依次类推第8行就只剩下一个空格了。所以这个方法一共有8X7X6X5X4X3X2X1即8!种解法,这不就是数学中的排列与组合的问题吗?若不进一步思考,盲目地逐个枚举方案,其笨拙是可想而知的了。所以在设计算法时,一定要仔细思考有没有更好的数学公式或思想与之相关联,这样往往会收到意想不到的好效果。

说完数学,再说哲学。

其实,哲学是所有学科是总和。她当然也包括程序设计这门新兴的学科了。(不要以为它们之间没有关系哦!)

我这里说的是哲学的一小部分,那就是逻辑学。一个人若没有严格的逻辑思维,他/她的程序一定有不少虫子(bug)。然而对于这些虫子,他/她可能不知道;也很有可能知道了,但是就不知道哪里出错了。这就是因为他/她没有把问题出现的情况(包括出错的情况)考虑全面而造成的。虽然理论上所有的程序都有一定的漏洞(尤其是代码越多的程序越是如此),但是我们可以尽我们的全力把问题考虑全面,使错误发生的几率降低到最小,以确保程序的稳定性。咱们来看一个很有趣的反面例子:偶在很久以前编过一个小程序(老师布置的作业),其功能是输入你的生日,然后再输入某天的日期,最后计算出你到这一天一共活了多少天。我很快就完成了,用数据测试几次还不错,于是让老师来检查我的作业。他让我输入,我于是就输入了1989 1 28,然后回车,再输入1999 1 28,我太激动了把1999输入成了1899,而且我竟然没有发觉。于是偶自信的敲了回车。结果出来了,当时大家都笑翻了,此后,我有一段时间再也不敢让老师“欣赏”我作的题目…… 以上就是偶因为逻辑不严密造成的笑话,大家可不要学我啊!所以说,提高逻辑思维能力也是提高编程效率的很有效的方法。

世界上所有的学科都有联系。当数学与逻辑学擦出„爱情‟的火花时,程序设计就有了雏形。

其实还有其他的学科也会影响程序设计,比如英语,地球人都知道,现在绝大多数程序源代码是用英文编写的,而且很多开发工具、编译工具还有一些用来参考的小程序几乎都是英文界面。学好英语对代码的分析、对数据结构的了解以及对开发程序或软件的效率都有帮助。因此在学习程序设计这门课程时,可不要丢了其他啊!

学习编程心态要放低,虽然你可能梦想要打倒微软帝国,可是你不要以为自己真的就有实力把Bill PK掉,一定要从最简单的开始做起,不要眼高手低,荒于练习。否则你可能给他打工他都不要哦!(必备)

一颗坚定的信念。搞程序设计有时是很累人的(要不然大家都成软件工程师了,BILL的饭碗不就砸了),在某一个关键点是你要付出超乎想象的汗水和不计其数的脑细胞。这就叫“衣带渐宽终不悔,为伊消的人憔悴!”要保持一种吃苦耐劳的打不垮精神,革命才能成功啊!同志们。(必备)

其实总而言之呢,无论是新手还是大虾,要的就是勤学苦练,只有这样,你才能走上通向程序设计金殿的成功之路。

到了这里你会发现,这就是程序设计,就这么简单、有趣,而有充满的艰辛与苦涩。设计一个艰难的程序,就像母亲分娩一样,一定会有巨大的痛楚。但当你为你早已调试了N^N次的代码加上最后一笔时,一个崭新的生命就诞生了!Eureka!它带着羞涩而好奇的神态向这个世界发出第一句“Hello,World!”的问候时。你那种感觉就像是上帝面对自己亲手造出来的生命,你以往所有的不快都会烟消云散。你会发现程序设计,这项伟大的工程,教予你的不仅仅是一种技术,更是对生命的热爱,对人生的执着,对完美梦想的追求!

有人说,学习是无聊的,但有亿万芸芸学子不懈地投入其中。

有人说,科学是艰难的,但仍有大批科学家为之奋斗终生。

也有人说,编程是枯燥的,可是我要站起来最全世界说:”我爱她,就像爱我的生命!“

第四篇:程序设计语言的概念

1.“机器语言”是 直接用(二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义,例如某台计算机(字长)为16位,即有16个二进制数组成一条指令或其它信息。16个0和1可组成各种排列组合,通过线路变成电信号,让计算机执行各种不同的操作)。

2.汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语合中,用“助记符”(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。

3.高级语言:由于汇编语言依赖于硬件体系,且助记符量大难记,于是人们又发明了更加易用的所谓高级语言。在这种语言下,其语法和结构更类似普通英文,且由于远离对硬件的直接操作,使得一般人经过学习之后都可以编程。高级语言通常按其基本类型、代系、实现方式、应用范围等分类。

4.源程序是一种计算机的代码。它会符合一定的语法,经过编译器编译或解释后生成具有一定功能的可执行文件或组件,也可以是某种接口。是用程序设计语言编写的程序。

用源语言如FORTRAN、BASIC等语言编写的程序。源语言是指可以导出另一种语言的语言,它所产生的语言称为目标语言。对于计算机操作而言,必须将源语言编写的程序编译成目标程序。

5.目标程序(Object Program)又称“目的程序”。

由语言处理程序(汇编程序,编译程序,解释程序)将源程序处理(汇编,编译,解释)成与之等价的由机器码构成的,计算机能够直接运行的程序,该程序叫目标程序。

6.可执行程序 一种可在操作系统存储空间中浮动定位的可执行程序。MS-DOS和MS-WINDOWS下,如文件扩展名为.exe;.com

第五篇:计算机高级程序设计语言转向语句教案

计算机高级程序设计语言转向语句教案

教学内容:复习流程控制语句之中的条件语句、多分支语句和循环语句,讲解转向语句。教学目标:

1、知识目标:了解转向语句break、continue、return和goto之间的区别。

2、能力目标:培养学生编写程序选择运用转向语句的实际能力。教学重点:正确运用和掌握break和continue 转向语句。

教学难点:能够正确分析出程序之中运用转向语句后编译、执行后的结果。教学方法:结合程序和图加深学生的理解,采用分布式教学。教学手段:多媒体教学。教学过程:

一、情境引入

师:前一次上课我们学习了流程控制语句中的条件语句、多分支语句和循环语句,不知道同学们还是否记得我们都学了那些条件语句,又学了那些循环语句呢?

让学生自由说,当所有学生回答声音回落时,让稍差学生回答这个问题,检测他们课余时间的复习情况,进一步加深他们的印象。

二、复习讲解

复习条件语句(if)、多分支语句(switch)和循环语句(for、while、do—while)。教师提问:while和do—while语句的区别。请同学们先想一想,然后找较好学生回答。

三、步入正题

1、课题引入

师:今天我们来学习最后一种流程控制语句转向语句,就大家课下复习本章节能否告诉我都有哪些转向语句? 有些学生会知道一些,但大部份学生带着疑问和求知的表情。

2、讲解分析

师:转向语句有四种,依次为break、continue、return、goto语句。Break语句可用于三种情况:(1)在switch结构中,break语句用来终止switch语句执行。

(2)在for循环及while循环结构中,用于终止break语句所在的最内层循环。

(3)Break语句也可在代码块中,用于跳出它所指定的块。

举一个简单的break语句的例子,给同学分析它的结果,进而让同学们掌握break语句的基本用法。

3、程序运用

师:学习了break语句我们了解了它的主要功能是跳出最内层循环,并且可用于三种情况下,下面我们来学习continue语句。

Continue语句只能用在循环语句中,用来终止本次循环。当程序执行到continue语句时,将跳过其后尚未执行的循环语句,开始下一次循环。下一次循环是否执行取决于循环条件的判断。

师:将上面简单的break语句的例子中的break换成continue语句,那么这个程序的执行结果将会是什么?请大家思考一下,我提问。

同学们似懂非懂,都抱着怀疑而期待的眼神看着我,看来他们已经进入状态。师:将break和continue语句的运用做了比较后,我们会明显的知道它们的本质区别,break是跳出当前循环即最内层循环,而continue是跳出本次循环即执行到continue语句时循环语句后面尚未执行的语句不再执行直接进入下一轮循环。

break和continue语句是重点,到现在为止同学们已经能基本高清楚它们的区别和用法,脸上露出了一丝收获的微笑。

师:下面我们来讲剩下两种转向语句return和goto语句。它们虽然简单但不容忽视。

对于有返回值的函数,在函数的出口处必须用return语句将要返回的值返回给调用者。

goto语句会导致程序结构混乱,可读性降低,而且它所完成的功能完全可以用算法的3种基本结构实现,因此一般不提倡使用goto语句。但在某些特定场合下,goto语句可能会表现出其价值。比如在多层循环嵌套中,要从深层循环跳出所有的循环,如果用break语句,则不仅要使用多次,而且可读性较差,这时goto语句可以发挥作用。

4、总结区别

转向语句 break、continue、return、goto区别:

break语句是结束当前循环,continue语句是结束本次循环,return可以终止函数,goto可以一次性跳出任何位置。

注:java的转向语句中不包含goto语句。

四、自主探索

编写两道分别关于break、continue语句的程序请同学们解答。教师巡视,观察同学们的掌握程度。

五、比较发现

通过对不同转向语句的在计算机上的实际运行来强化同学们对它们之间区别及运用的掌握。

同学们通过交流分析得出答案。

六、作业安排

师:通过这节课的学习,你学到了什么?

同学们下去后看看教材上面的例题,是不是完全能看懂,并在机上运行一下,亲自体验一下他们的区别,如果有不懂的请及时向老师或同学请教。

教学反思:较好的学生基本能掌握所学知识,但较差的学生还是有些吃力,所以要加强编程举例练习。

板书设计:复习流程控制语句,黑板东面画出它们的流程图;

黑板北中写上标题“转向语句”;

黑板西面分别写出各转向语句的特点;

黑板中间写出各转向语句之间的区别;

2010-2011学第一学期教案

科 目: C++

年 级: 计科0701

备课人: 程 杰

下载计算机程序设计语言发展史和对程序设计语言未来的看法word格式文档
下载计算机程序设计语言发展史和对程序设计语言未来的看法.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    非计算机专业程序设计语言的教学探讨[本站推荐]

    非计算机专业程序设计语言的教学探讨 论文关键词:VBScript IE浏览器 记事本 复合辛卜生公式 论文摘要:现存的非计算机专业编程语言的教学弊端种种,本文提出了一种新的思路......

    2008级程序设计语言(Java)教学大纲

    《程序设计语言(Java)》教学大纲 课程名称: 程序设计语言(Java ) 英文名称:Programming Language(Java) 课程编码: 212013 学 分: 4 学 时: 64 (其中理论学时: 32 ,实践学时: 32 ) 适......

    Power专题十二JAVA程序设计语言

    专题十二: JAVA程序设计语言 Java语言简介: 背景 1991年 ,SUN MicroSystem公司的 Jame Gosling、 Bill Joe等人 ,在电 视、控制烤面包箱等家用消费类电子产品上进行交互式操......

    程序和程序设计语言(教学设计)

    公开课教学设计 (2018.3.8) 授课人:郑开明程序和程序设计语言 第3节 程序和程序设计语言 一、教学目标 知识目标:1、掌握计算机程序的概念 2、掌握计算机程序的概念、计算机语言......

    《程序设计语言(C)》课程教学大纲

    《程序设计语言(C)》课程教学大纲 课程编号:90211003 总学时数:85(理论51、上机34) 总学分数:4 课程性质:专业必修课 适用专业:全院理工科专业 一、课程的任务和基本要求: 本课程为全......

    《程序设计语言强化课程设计》教学大纲

    《程序设计语言强化课程设计》教学大纲 周数:2 学分:2 适用专业:网络工程 执笔人:周燕 审核人:崔如春 编写日期:2013年9月 项目一:学生成绩排名 一、目的和要求: 1.熟悉并巩固C程序设......

    最流行的程序设计语言

    最流行的程序设计语言 想要知道哪一种程序设计语言最受欢迎吗?虽然收集各类数据来统计流行度意义不大,也有点难度,结果未必科学,但也许很有趣,这么做纯粹是“just for fun”。而......

    程序设计语言VFP课程教学大纲

    《程序设计语言(VFP)》课程教学大纲 课程编号:90211001 总学时数:68(理论34、上机34) 总学分数:3 课程性质:专业必修课 适用专业:全院本科专业 一、课程的任务和基本要求: 本课程为全......