简单的说,编程就是为了借助于计算机来达到某一目的或解决某个问题,而使用某种
程序设计语言编写程序代码,并最终得到结果的过程。
汇编语言的实质和
机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。
内容介绍
计算机虽然功能十分强大。可以供你上网、打游戏、管理公司人事关系等等,但是没有程序,它就等于是一堆废铁,不会理会我们对它下达的“命令”。于是,我们要驯服它,只有通过一种方式——程序,这也是我们和计算机沟通的唯一方式。
程序也就是指令的集合,它告诉计算机如何执行特殊的任务。
写出程序后,再由特殊的软件将你的程序解释或翻译成计算机能够识别的“
计算机语言”,然后计算机就可以“听得懂”你的话了,并会按照你的吩咐去做事了。因此,编程实际上也就是“人给计算机出规则”这么一个过程。
随
计算机语言的种类非常的多,总的来说可以分成
机器语言,汇编语言,高级语言三大类。
电脑每做的一次动作,一个步骤,都是按照已经用
计算机语言编好的程序来执行,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过
计算机语言向计算机发出命令。
计算机所能识别的语言只有
机器语言,即由0和1构成的代码。但通常人们编程时,不采用
机器语言,因为它非常难于记忆和识别。
汇编程序
汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编
源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的
可执行文件不仅比较小,而且执行速度很快。
高级语言
高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的
机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节,例如使用
堆栈、
寄存器等,这样就大大简化了程序中的指令。由于省略了很多细节,所以编程者也不需要具备太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
从二十世纪60年代以后,计算机得到了突飞猛进的发展。似乎历史上没有任何一门科学的发展速度超过了计算机的发展,无论硬件、软件、还是网络都以惊人的速度向前发展。软件的发展速度和硬件一样,二十世纪九十年代中国的软件业还不是很成熟,而现在大大小小 的软件企业四处耸立,共享软件网上随处可见。不断发展的技术需要不断变化的
程序员,例如,如今Visual Basic可以快速构建Windows下的应用程序,
程序设计方面的技术不断发展着,不断引进新的概念、新的方法,如从结构化的C开始,当
面向对象的思想被提出后,出现了C++,
微软在C++的基础上为使用户构建win32应用程序更加方便,推出了Visual C++。这也就需要
程序员也要不断的更新自己的技术。
目前常用的基本程序语言的种类比较繁多,比较简单的有:Pascal、c语言、qBasic、 Fortran、Visual Basic等等。但前几种都是在DOS下进行编程的工具,Visual Basic是在 Windows下进行应用程序设计的编程工具,现在一般的计算机用户几乎都不再使用DOS了,因此我们通常会选择Visual Basic作为初学者的编程工具。Visual Basic是Windows应用程序设计中最容易上手的编程工具,学习步骤也比较容易被初学者接受。对于刚开始学习编程的初学者来说,还是选择Visual Basic,学习
编程语言不能想象着一步登天,一步一个脚印的学习才是最佳方法。
文字
C语言是国际上广泛流行的、很有发展前途的
计算机高级语言。它适合作为系统描述语言,既可用来编写
系统软件,也可用来编写
应用软件。
早期的操作系统等
系统软件主要是用汇编语言编写的(包括 UNIX操作系统在内)。由于汇编语言依赖于
计算机硬件,程序的可读性和可移植性都比较差。为了提高可读性和可移植性,最好改用高级语言,但一般的高级语言难以实现汇编语言的某些功能(汇编语言可以直接对硬件进行操作),例如:对
内存地址的操作、
位操作等。人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言,集它们的优点于一身。于是,C语言就在这种情况下应运而生了。
C语言是在B语言的基础上发展起来的,它的根源可以追溯到ALGOL 60。1960年出现的ALGOL 60是一种
面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序。1963年英国的剑桥大学推出了CPL(CombinedProgram- ming Language)语言。CPL语言在ALGOL 60的基础上接近了硬件一些,但规模比较大,难以实现。1967年英国剑桥大学的Matin Richards对 CPL语言作了简化,推出了BCPL(Basic Combined Programming Language)语言。1970年美国贝尔实验室的 Ken Thompson以 BCPL语言为基础,又作了进一步简化,设计出了很简单的而且很接近硬件的 B语言( 取 BCPL的第一个字母),并用 B语言写第一个UNIX操作系统,在PDP-7上实现。1971年在PDP-11/20上实现了B语言,并写了UNIX操作系统。但B语言过于简单,功能有限。1972年至 1973年间,贝尔实验室的 D.M.Ritchie在B语言的基础上设计出了C语言(取 BCPL的第二个字母)。C语言既保持了BCPL和B语言的优点(精练、接近硬件),又克服了它们的缺点(过于简单、数据无类型等)。最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。1973年,K.Thom- pson和D.M.ritchie两人合作把UNIX的90%以上用 C改写(UNIX第5版。原来的 UNIX操作系统是1969年由美国的贝尔实验室的 K.Thompson和D.M.Ritchie开发成功的,是用汇编语言写的)。
后来,C语言多次作了改进,但主要还是在贝尔实验室内部使用。直到1- 975年UNIX第6版公布后 ,C语言的突出优点才引起人们普遍注意。1977年出现了不依赖于具体机器的C语言编译文本《可移植C语言编译程序》,使C移植到其它机器时所做的工作大大简化了,这也推动了UNIX操作系统迅速地在各种机器上实现。例如,VAX,AT&T等计算机系统都相继开发了UNIX。随着 UNIX的日益广泛使用,C语言也迅速得到推广。C语言和UNIX可以说是一对孪生兄弟,在发展过程中相辅相成。1978年以后,C语言已先后移植到大、中、小、微型机上,已独立于UNIX和PDP了。现在C语言已风靡全世界,成为世界上应用最广泛的几种
计算机语言之一。
以1978年发表的UNIX第7版中的C
编译程序为基础,Brian W.Kernighan和 Dennis M.Ritchie(合称K&R)合著了影响深远了名著《The C Programming Lan- guage》,这本书中介绍的C语言成为后来广泛使用的C语言版本的基础,它被称为标准C。1983年,美国国家标准化协会(ANSI)根据C语言问世以来各种版本对C的发展和扩充 ,制定了新的标准,称为ANSI C。ANSI C比原来的标准C有了很大的发展。K&R在1988年修改了他们的经典著作《The C Progra- mming Language》 ,按照ANSI C的标准重新写了该书。1987年,ANSI C又公布了新标准--87 ANSI C。目前流行的C
编译系统都是以它为基础的。
C++ 是脱胎自 C 语言的一种中级语言. 从计算机角度看,它可以嵌入ASM等低端语言; 从
面向对象的程序设计角度看,它有具备OOP的三个基本特征 -- 抽象,封装和继承; 同时从市场角度来看,它又不是纯面向对象,其实那些纯粹的
面向对象语言的阵地只是在实验室.
比较
显著变化
名字空间的问题,
原始的C语言使用公共的名字空间,这样无论是开发本人还是第三方团队都面临变量名字耗尽的问题. 而C++提供独立的名字空间,而且对象的引入也为名字空间提供了进一步划分
代码复用的问题,
C语言使用函数库的方式或者DLL方式实现代码复用,在接口稳定的前提下实现内部修改和数据及其实现的封装. C++提供了类库机制实现了具有层次的代码复用,和多种继承机制,同时重载等各种机制提供了进一步的复用实现. 使得类库和代码更加容易维护,虽然建立类库在人员,组织等各个方面还是比较麻烦的.
安全机制
. 因为有了类机制,有一些初始化操作可以自动实现
效率问题
因为C语言本质上是站在计算机立场的非常注重效率的问题,但是事物总是具备矛盾的两面,过于偏重效率和软件危机的出现,反而增加了程序设计的难度. 而OOA的现实世界角度的考虑问题更加贴近自然,使得代码或者程序更加具备稳定性,可扩展性和可维护性.
版本
Visual Studio 2005 速成版产品
使用速成版产品开发应用程序入门。速成版产品扩展了 Visual Studio 产品线,涵盖了许多轻型、易学易用的工具,以供那些希望构建动态 Windows 应用程序的业余爱好者、学生和初学者使用。
NET Framework 2.0 SDK 和可再发行组件
包括开发人员在编写、生成、测试、部署和运行 .NET Framework 应用程序时所需的一切。64 位版本和 x86 版本已发布。
Visual Studio 2005!
要评估 Visual Studio 2005,可以有从 Express Edition 到 Trial Edition 到在线托管体验多种选择。找到最适合您的试用体验,看看 Visual Studio 2005 的强大功能如何转变您的应用程序。
Visual C++ Express 版
为业余爱好者、 初学者和学生开发人员尝试此免费、 轻便、 易用,易学的工具。获取比其他 Express 版本更好的控制程度的所有马力。
Microsoft Windows Vista SDK
Microsoft Windows Vista 提供了大量在安全,性能,可靠性和管理性方面的新功能。下载 SDK,获得所有所需的工具来打造托管和本机应用程序,充分利用 WindowsVista 的强大功能。
为此,和经典物理同量子物理一样. C/C++ 今天在不同领域各自发挥着最大的效率.
各种编程语言的比较
前言 Java群体每天都在扩大,它既包括一些世界最大的ISV,也包括公司CIO、信息技术人员、系统分析人员、C/S开发人员、编程人员、多媒体设计者、市场行销人员、教育工作者、经理、影视生产者甚至业余爱好者等广泛的用户。从传统上看,这样一些人在一起有效地工作是不多见的。当我们谈到开放系统时,我们往往是就已发表的API及规格,或者源码的可得性,或者硬件、联网及操作系统而言的,没有一个人是从人的开放意义上来谈的。Java完成了开放系统的闭合链。它开发了人力资源,而反过来又开辟了共同工作的道路。一谈到Java,人们马上会想起一种类似于C++的、适用于分布环境的面向对象编程语言,想到这种语言的简单、稳定、安全、与体系结构无关、可移植、可解释、高性能、多线程和动态性等特征。这些都是Java作为一种
程序设计C语言是一种
面向过程的基于模块的语言。一般用在和汇编混和编程的
嵌入式开发或者较低层的
驱动程序开发,操作系统设计。开发周期长,代码维护成本高,可移植性差,但是程序运行效率高,可以更直接的控制硬件。
C++当然就是c的升级版本,兼容c的语法,并且多了oo,模板,重构等高级软件技术。开发周期短,代码维护也相对容易,功能强大,应该说是20年来软件业近乎无敌的
程序设计语言。不过学习周期偏长,熟练掌握还需要时间和经验的积累。
C#是
微软从borland公司挖走的一位高手设计的,该神人曾经在borland公司用汇编设计了pascal
编译器,程序设计能力之强,非常人能及。C#是一种类型于java的语言,需要运行环境支持才能执行。执行效率当然就不能和c,c++相提并论,不过这样带来了良好的可移植性,可以在支持。net运行环境的各种平台下执行,并且方便的与其他。net语言进行交换编程,更方便
程序员间进行交流。
我觉得C++最大的优势在于她的通用和全面。我们往往听到C++和其他语言的比较:诸如运行效率不如C啦、
应用软件的开发效率上不如Java和.NET啦、GUI开发不如VB啦……以及在各个方面与各种专用语言和
脚本语言的比较。似乎C++就没有自己最突出的地方,简直一无是处。我想说的是,先不谈比较的结果,这些比较能够成立,本身就说明了C++的优势——她是通用的,她是全面的。在成熟的主流语言中,除了C++,还有谁能够做到这一点?!
另外一些比较则罕有提及:与C语言比开发应用软件?与Java比做底层?与VB比运行效率?是的,很罕见。因为结论显而易见以至任何的比较都是浪费时间。当然了,她们都有各自的适用范围,做好本职就好了,何必与你比其他的。这是一种生存之道,无可厚非。唯有C++,选择了另一条道路——“通用语言”,不是象C那样“通用的”底层语言,也不是象Java那样其实只能在一个平台上运行的“跨平台”语言,而是真正的通用:通用于所有层次、通用于所有平台、通用于所有领域,对所有的应用都不偏不倚、一视同仁。
要做到这一点是很困难的,C++往往被人指责野心过大。还有各种各样的误解:有指责VC只能在Windows上使用的(所以C++是不能跨平台的);有指责gcc无法快速开发GUI的(所以C++的应用是有局限的);有指责Java、.NET和
脚本语言占据了绝大部分
网站开发的(所以C++是不能适应网络时代的)……这些指责说得人多了,就成为了真理。我不想去一一解疑,只想说明一点:语言之间的比较很少是公正的,因为误解是广泛存在的。
无疑,C++的野心确实很大,“通用”二字貌似华丽有余,实惠不足。常常有人说:学习C++,然后使用其他专门语言。是的,在一个特定领域里,通用往往比不上专用的。但是,整体总是大于部分之和。如果说,“博”和“精”各有所长的话,那么又博且精不是更好吗?就象我们常常用电脑,而不是分立的上网机、办公机、游戏机、编程机 ……虽然C++不能包揽所有的冠军,但是如果她在哪方面都不算太差的话,又何必执着于虚幻的完美呢?
确实,C++能够立足于世,不仅在于她是“通用”的,更在于她是“全面”的。你常常能在某个局部找到她的一点不足。是的,她有一个不足;那么,能否改进呢?回答是:不能!为什么?回答是:如果改进了这一点,就会出现新的不足,可能是另一点,甚或更多。就象一个已经挤满了人的车厢,要上去一个,就得再下来一个!是的,C++就是这样的车厢,她无法让你享受悠闲的空间,反而给你窒息的感觉;但是,正是这样的车厢,支撑着主干交通的正常运行(想想吧,如果一个人口密集的大城市里全部都是私家车,会是什么状况)。车厢可能会越做越大,因为技术正在不断提高,但是C++这个车厢,永远都是满的。一个局部的不足,如果不存在被改进的可能,恰恰暗示了已经达到了全局最佳!C++正是以此为目标的;并且,她做到了!
回到我们最初的比较上。
C++的运行效率不如C吗?是的,也许吧,以特定的标准。但是,不如在哪些方面呢?
虚函数、
虚基类、
异常处理……这些都是C所不具备的。如果在C++中不使用它们,那么效率就不会比C低(优秀的
编译器确实可以做到这一点)!C++考虑问题永远是综合的,而非单方面的,她的效率,趋近于你在享用各种特性时所能达到的最佳值,你只付出必然的代价。
C++在
应用软件的开发效率上不如Java和.NET吗?是的,也许吧,以特定的标准。但是,原因是什么呢?是C++语言不及Java和.NET吗?不是的。只是因为后两者是产品,而C++是语言。这个比较,本身就是不合适的。在.NET中,你同样可以使用C++,同样可以达到它的开发效率。另外,C++并不限制其实现产品,所以每个特定应用领域都可以有其特定的
编译器,它们帮助程序员达到各自最佳的开发效率。如果单论语言,那么只有C++的语言复杂度会影响这一话题。也许Java等更容易上手,但是对两方面的资深人员来说,C++的开发效率毫不逊色。值得一提的是,在比较时应该同时考虑应用的复杂度。另外,需要知道,作为产品的Java和.NET预处理了一些应用复杂度,而这些产品本身很大程度上(如果不说全部的话)是用C++开发的。
C++在GUI开发方面不如VB吗?是的,也许吧,以特定的标准。但是,为什么呢?作为语言,C++没有制订标准的GUI库,因为GUI太复杂,要达到通用的最佳,很难。因此,C++放弃了这方面的通用化。但是,每个具体的实现可以使用各自优化的GUI库。VC比VB如何?如果嫌它还不算快速开发,BCB呢?另外,还有QT等通用GUI库。在语言方面,C++追求通用和全面,而局部的优化,交给具体的实现来完成,这是C++成功的秘诀。
综上所述,我认为C++的优势就在于她的通用和全面(也有人认为这正是她的劣势,也许吧,从另一个角度)。她的通用,来源于其始终不变的远大理想(也可称之为“野心”);而她的全面,则得益于她的设计者们力争上游、精益求精的工作态度!就象我曾经说过的,C++真正的优势在于C++社群——那些设计她的人,实现她的人,以及使用她的人。那些表面的优势来源于此,也归结于此。C++的开局很不错,现在仍很好;而她的未来,将由我们来决定……