编程是编写
程序代码的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
编程语言
机器语言
在
计算机系统中,一条
机器指令规定了计算机系统的一个特定动作。一个系列的计算机在硬件设计制造时就用了若干指令规定了该系列计算机能够进行的基本操作,这些指令一起构成了该系列计算机的
指令系统。在
计算机应用的初期,程序员使用机器的指令系统来编写计算机
应用程序,这种程序称为
机器语言程序。使用机器语言编写的程序,由于每条指令都对应计算机一个特定的
基本动作,所以程序占用内存少、执行效率高。缺点也很明显,如:编程工作量大,容易出错;依赖具体的计算机体系,因而程序的通用性、移植性都很差。
汇编语言
为了解决使用
机器语言编写应用程序所带来的一系列问题,人们首先想到使用助记符号来代替不容易记忆的机器指令。这种助记符号来表示
计算机指令的语言称为
符号语言,也称
汇编语言。在汇编语言中,每一条用符号来表示的
汇编指令与计算机
机器指令一一对应;记忆难度大大减少了,不仅易于检查和修改
程序错误,而且指令、数据的存放位置可以由计算机
自动分配。用汇编语言编写的程序称为
源程序,计算机不能直接识别和处理源程序,必须通过某种方法将它翻译成为计算机能够理解并执行的机器语言,执行这个翻译工作的程序称为
汇编程序。
汇编程序
汇编程序。使用
汇编语言编写计算机
程序,程序员仍然需要十分熟悉计算机系统的硬件结构,所以从程序设计本身上来看仍然是低效率的、繁琐的。但正是由于汇编语言与
计算机硬件系统关系密切,在某些特定的场合,如对时空效率要求很高的
系统核心程序以及
实时控制程序等,迄今为止汇编语言仍然是十分有效的程序设计工具。
但它有不可替代的特性,比如一些
单片机或者一些
直接控制硬件的程序就一定要用汇编语言
高级语言
高级语言是一类接近于人类的
自然语言和
数学语言的
程序设计语言的统称。按照其程序设计的出发点和方式不同,高级语言分为了
面向过程的语言和面向对象的语言,如
Fortran语言、
C语言、
汉语程序设计语言等都是
面向过程的语言;而以C++、
Smalltalk语言等为代表的面向对象的语言与
面向过程语言有着许多不同,这些语言支持“程序是相互联系的离散对象集合”,这样一种新的程序设计思维方式,具有封装性、
继承性和
多态性等特征。
高级语言按照一定的
语法规则,由表达各种意义的运算对象和运算方法构成。使用高级语言编写程序的优点是:编程相对简单、直观、易理解、不容易出错;高级语言是独立于计算机的,因而用高级语言编写的计算机程序通用性好,具有较好的移植性。用高级语言编写的程序称为源程序,计算机系统不能
直接理解和执行,必须通过一个
语言处理系统将其转换为计算机系统能够认识、理解的
目标程序才能被计算机系统执行。
执行原理
计算机对除
机器语言以外的
源程序不能直接识别、理解和执行,都必须通过某种方式转换为计算机能够直接执行的。
这种将高级
程序设计语言编写的
源程序转换到机器
目标程序的方式有两种:
解释方式和
编译方式。
解释方式下,计算机对
高级语言书写的源程序一边解释一边执行,不能形成
目标文件和执行文件。
编译方式下,首先通过一个对应于所用
程序设计语言的
编译程序对源程序进行处理,经过对源程序的
词法分析、
语法分析、语意分析、
代码生成和
代码优化等阶段将所处理的源程序转换为用
二进制代码表示的目标程序,然后通过
连接程序处理将程序中所用的
函数调用、
系统功能调用等嵌入到目标程序中,构成一个可以连续执行的
二进制执行文件。调用这个执行文件就可以实现程序员在对应
源程序文件中所指定的相应功能。
语言沿革
1946年
Konrad Zuse,一位德国工程师,他躲藏在巴伐利亚附近的
阿尔卑斯山上时,
独立开发了Plankalkul。他把该项成果应用在其它的事物中,比如
国际象棋。
1949年
Short Code ,第一种真正在
电子计算设备上使用的计算机语言,尽管他是一个纯手工编译的的语言。
1951年
Grace Hopper,为Remington Rand工作,是在第一个著名的
编译器——A-o上开始设计工作。当Rand在1957年发布这个语言时,它被称为MATH-MATIC。
1952年
Alick E. Glennie ,他利用自己在
曼彻斯特大学的
课余时间,发明了一个名为AUTOCODE的编程系统,一个未能成型的编译器。
1957年
FORTRAN——数学
公式转换系统(FORmula TRANslating,FORTRAN名字的由来)——出现。开发队伍的领导者是John Backus,并且他还为
ALGOL的开发和巴柯斯范式(
BNF)做出了贡献。
1958年
FORTRAN II出现,它能够处理
子程序和连接
汇编语言。由M.I.T的
John McCarthy在LISP-LISt Processing上开始设计工作。原始ALGOL规范出现。该规范并未
描述数据的输入
输出方式;这些问题都留给独立的实现者。
1968年
Pascal 由
瑞士Niklaus Wirth教授于设计并创立,具有简洁的语法,结构化的程序结构,是结构化编程语言,在许多学校的计算机语言课上教授的都是Pascal语言。
创建COBOL
1959年
LISP1.5出现。COBOL在
数据系统和语言大会(Conference on Data System and Languages)上被创建了。
编译器出现
1960年
ALGOL 60 ,第一种
结构化语言出现。它是结构化语言家族树中的
根节点,并最终产生Pascal这样的语言。ALGOL成为六十年代中期至末期欧洲最为流行的语言。
1962年,Kenneth Iverson开始语言方面的工作,最终产生了
APL-A编程语言。它使用专门的
字符集,为了正确地使用,还需要兼容APL的
I/O设备。
1962年
APL被写入Iverson的《A Programming Language》一书中。
FORTRAN IV出现。
SNOBOL这个以“首字母拼词命名”的产品,在工作的初期就取得了绝对的成功,SNOBOL——面向
字符串符号(StriNg Oriented symBOlic Language)语言。它衍生了其他一些以首字母拼词命名的产品:FASBOL,一个SNOBOL
编译器(1971年),还有SPITBOL——Speedy ImplemenTation of snoBOL——同样在1971年。
1963年
ALGOL 60进行修正。
PL/1的工作开始。
1964年
在
达特茅斯大学,John G.Kemeny和Thomas E.Kurtz教授发明了
BASIC。最初的实现是一个
编译器。第一个BASIC程序在1964年五月一日下午四点运行。PL/1发布。
1965年
SNOBOL3出现。
1966年
FORTRAN 66出现。
LISP 2出现。
在Bolt,Beranek和Newman开始了LOGO的工作。小组的头是
Wally Fuerzeig,而且还包括Seymour Papert。LOGO中最著名的便是“龟作图”。
1967年
SNOBOL4,功能获得极大加强的SNOBOL,出现了。
1968年
ALGOL 68,相对于ALGOL 60它是个怪物。一些规范委员会的成员——包括C.A.R.Hoare和Niklaus Wirth——却赞同该计划。事实证明ALGOL 68是难以实现的。
ALTRAN,一个FORTRAN的变种出现。
COBOL被ANSI正式定义规范。
Niklaus Wirth开始Pascal方面的工作。
1969年
500人参加在纽约Armonk的IBM总部召开的APL会议。APL的分发需求如此之大,该活动此后被人们称为“The March on Armonk”。
程序编写
1970年
十九世纪六十年代末期,
Charles Moore在他的语言
Forth中写下了第一个有意义的程序。
Prolog方面的工作大约在此时开始了。
同样是在70年代早期的某一天,
Xerox PARC由Alan Kay领导,开始了Smalltalk的设计工作。早期版本包括Smalltalk-72,Smalltalk-74和Smalltalk-76。
Pascal在CDC 6000-series电脑上的一个实现出现了。
Icon,SNOBOL4的一个后代产品问世。
1972年
Konrad Zuse写的关于Plankalkul(见1946年)手稿终于出版了。
Dennis Ritchie设计了C。但是最终的参考手册却是在1974年发布的。
Prolog的第一个实现——Alain Colmerauer和Phillip Roussel的功劳。
1974年
另一个COBOL的ANSI规范出现。
1975年
Tiny BASIC,由Bob Albrecht和Dennis Allison设计(由Dick Whipple和John Arnold实现),运行在2KB内存的微型计算机上。一台4KB的机器是较为合适的,它将有2KB的内存应用于这个程序上。
Bill Gates和Paul Allen编写的一个BASIC版本以抽取每份拷贝
版税的形式销售给MITS(Micro Instrumentation and Telemetry Systems)。MITS生产Altair,这是一种8080结构的微型计算机。
Scheme,一个LISP的“方言”,由G.L. Steele和G.J. Sussman设计。
Pascal
用户手册和报告出版,Jensen和Wirth编写。许多人至今都认为它是Pascal方面权威的参考书籍。
B.W. Kerninghan描述了RATFOR——RATional FORTRAN。它是预处理程序,并且允许在FORTRAN中使用类C的
控制结构。RATFOR被应用到了Kernighan和Plauger的“Software Tools”中,它出现在1976年。
1976年
Design System Language出现,它被认为是PostScript的先驱。
1977年
MUMPS的
ANSI标准出现——
麻省总医院多用途程序设计系统(
Massachusetts General Hospital Utility Multi-Programming System)。MUMPS最初被用来处理医疗记录,它只能识别字符串类型。随后被重新命名为M。
设计竞赛将导致Ada的产生。由Jean Ichbiah带领的
Honeywell Bull队伍,即将赢得比赛。
Kim Harris和其他人建立了FIG,一个FORTH
兴趣小组。他们开发了FIG-FORTH,售价大约为20美元。
1978年,Kenneth Bowles设计出了
UCSD Pascal,它使得Pascal可以用在
PDP-11和基于
Z80 的电脑上。
Niklaus Wirth开始设计Modula,它
Modula-2的先行者,Pascal的继承者。
语言程序
1978年
AWK——一个文本
处理语言,以它设计者Aho、Weinberger和Kernighan的名字命名。
1980年
Smalltalk-80出现。
Modula-2出现。
Franz LISP出现。
Bjarne Stroustrup开发了一个语言集——被总称为“C With Classes”——它成为C++的滋生土壤。
1981年
Effort开始成为一个LISP的“公共方言”,常被人称作Common LISP。
日本开始
第五代电脑系统工程。主要语言是Prolog。
1982年
ISO Pascal出现。
PostScript出现。
1983年
Smalltalk-80公布:它由Goldberg等人完成。
Ada出现。他的名字来自Lovelace女伯爵Augusta Ada Byron,她是英国诗人
拜伦的女儿。因其在
巴贝奇分析机上设计了解
伯努利方程的一个程序,而被誉为第一位女程序员。在1983年,国防部指导的全新“任务评定”应用程序是使用该语言编写的。
1983年的后期和1984年早期,微软和Digital Research共同发布第一个微型计算机的C
编译器。
七月,第一个C++实现露面。该名称是由Rick Mascitti取的。
11月,
Borland的
Turbo Pascal的“冲击”犹如一场
核风暴,这得益于《BYTE》杂志的广告。
1984年
APL2的参考手册面世。APL2是APL的扩展,它允许嵌套数组。
1985年
Vanilla SNOBOL4之微机版发布。
Methods,PC上的面向行(line-
oriented)的Smalltalk出现。
微机版本
1986年
Smalltalk/V露面——第一个广泛应用于微机的Smalltalk版本。
Apple公司为
Mac机器发布Object Pascal。
Borland发布Turbo Prolog。
Charles Duff发布Actor,一个开发微软Windows应用程序的
面向对象语言。
C++露面。
1987年
Turbo Pascal 4.0发布。
1988年
CLOS规范——公共LISP对象系统(Common LISP Object System)——发表。
Niklaus Wirth完成Oberon,这是他继Modula-2的后续行动。
1989年
C++2.0形成了一个参考手册的初稿。2.0版本增加了诸如
多继承和
成员指针等特性。
1990年
C++2.1,B.Stroustrup等作者的《Annotated C++ Reference Manual》一书出版。这个版本增加了模板和
异常处理特性。
FORTRAN 90包含了众多新元素比如case语句和
派生类型。
Kenneth Iverson和Roger Hui在APL 90会议上提出了
J语言。
1991年
Visual Basic在
COMDEX春展会上获得《BYTE》杂志颁发的
最佳表现奖。
1992年
Dylan——以Dylan Thomas命名——由Apple公司发布的一个类似Scheme的面向对象语言。
1993年
ANSI发布X3J4.1
技术报告——面向对象的COBOL提议初稿。真正的标准预计在1997年完成。
1994年
微软将Visual Basic for Application整合到
Excel中。
1995年
二月,ISO接受
Ada语言1995
修订版。它被称为Ada95,其中包括OOP特性和支持
实时系统。
1996年
第一个ANSI C++标准预发布。
语言目录
C语言 即中文版的C语言
O语言 O语言是一款中文
计算机语言(或称套装:O
汇编语言、O
中间语言、O高级语言)
*
AAuto是专用于
桌面软件快速开发的新型混合型
编程语言,
*Basic是一种设计给初学者使用的程序设计语言
*C++、C#: C语言是一种
面向过程的
计算机程序设计语言; C++是一种
静态数据类型检查的,支持
多重编程范式的通用程序设计语言。它支持过程化程序设计、
数据抽象、
面向对象程序设计、制作图标等等
泛型程序设计等多种
程序设计风格。C#是
微软公司发布的一种面向对象的、运行于
.NET Framework 之上的高级程序设计语言。
*CSSCascading Style Sheets 层叠样式表
*
COBOL一种适合于商业及数据处理的类似英语的程序设计语言
*
dBASE是第一个在
微型计算机上被广泛使用的
数据库管理系统(DBMS)
*
汇编语言(Assembly Language)是面向机器的程序设计语言
*
HTML是一种超文本标记语言,
标准通用标记语言下的一个应用。
*
Forth由Charles H. Moore发展出来在
天文台使用的电脑
自动控制系统及
程序设计语言,允许使用者很容易
组合系统已有的简单指令,定义成为功能较复杂的高阶指令。
*Fortran译为“
公式翻译器”,它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域。
*
FoxPro是由美国Fox Software公司于1988年推出的数据库产品
*F#是由
微软发展的为微软.NET语言提供
运行环境的程序设计语言
*Fava语言是一个小型的
解释语言,它主要面向于
系统测试领域及小型
嵌入式设备。
*Go语言是
谷歌2009发布的第二款开源编程语言。
Go语言专门针对
多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。
*
Java是由
Sun Microsystems公司于1995年5月推出的Java
程序设计语言,他是一种面向对象的跨平台语言,可以在多种平台上运行。支持开源。大量的
类库。大量的
开源项目。是一种非常强大的编程语言。
*J#、
Visual J#是一种工具,供Java语言程序员用于构建在.NET Framework 上运行的应用程序和服务
*LOGO是一种早期的编程语言,也是一种与
自然语言非常接近的编程语言,它通过“绘图”的方式来学习编程
*Module在
软件工程中,指较高一级程序或模块使用的一个单元或模块
*
Nuva语言是一种面向对象的动态脚本语言Nuva语言的设计目的是用于基于模板的
代码生成*Objective-C通常写作ObjC和较少用的
Objective C 或 Obj-C ,是扩充 C 的面向对象编程语言
*
Perl一般被称为“实用报表提取语言”(PracticalExtraction andReportLanguage),也做“病态折中垃圾列表器” (PathologicallyEclectic Rubbish Lister)
*
PL/I是Programming Language One的简写。当中的“I”其实是
罗马数字的“一”。它是一只
IBM公司在1950年代发明的第三代高级编程语言
*
Prolog(Programming in Logic的缩写) 是一种
逻辑编程语言*
Python是一种面向对象的解释性的计算机
程序设计语言,也是一种功能强大而完善的通用型语言
*
PASCAL、Delphi:
Pascal是一种计算机通用的高级程序设计语言; Delphi是全新的
可视化编程环境,是一种方便、快捷的Windows应用程序
开发工具*QBasicQBASIC是BASIC(Beginner's All-purpose Symbolic Instruction Code,初学者通用
指令代码)语言的一个变种,由美国
微软公司开发
*
Ruby,一种为简单快捷面向对象编程(
面向对象程序设计)而创的脚本语言
*
Scheme一种
系统设计语言,由
LISP语言发展而来,属于lisp的一种方言。与其他lisp不同的是,scheme是可以编译成
机器码的。Scheme的一个主要特性是可以像操作数据一样操作函数调用
*
Smalltalk一种面向对象的程序设计语言一种
程序设计环境 一个应用
开发环境(ADE)
*Visual FoxPro原名
FoxBase,是美国FoxSoftware公司推出的数据库产品
*
Visual Basic(VB)是一种由微软公司开发的包含协助
开发环境的
事件驱动编程语言
*
VBScript是Visual Basic Script的简称,即Visual Basic 脚本语言
*.NET是微软2002年,为开发应用程序创建的一个富有革命性的新平台
语言排行
2015年7月份前三语言分别为:
Java、C和 C++。
开发工具
关于C++的: CFREE(初学者适用),
VC,MyC++,
Magic C++,
DevC++关于C#的:
VS Studio 系列(
VS2003,
VS2005,VS2008,
VS2010,VS2011),
SharpDevelop(开源的免费软件)
关于C的:Turbo C 2
关于
PHP的:Dreamweaver_CS5、
Notepad++可视化
可视化编程也越来越重要,所谓的可视化程序设计和
Visual Basic或
Visual C++并不同,支持可视化程序设计的
IDE可以让开发人员直接移动
程序单元来建立
流程图和
结构图,然后直接做编译或解释,这一类的流程图通常是以
UML为基础。
这样的界面因为
乐高的Mindstorms开始普及,一些公司也开始透过浏览器Mozilla和
分布式程序设计(
LabVIEW)往这方面努力。从1980年代开始,第一个可视化程序设计系统—Max,就是以
类比合成器的设计为榜样,同时被用来开发即时音乐演出软件。
这种方法也被用在专业软件,例如Openlab,这类的使用者需要完整
程序设计语言的弹性,并不想要传统的
学习曲线。
可视化程序设计语言有另一个半免费和
开放源代码的替代品-Mindscript,具有加密系统和连结数据库等等。
智能手机
应用程序开发行业中最大的新热潮是
智能手机的应用程序“这种装置通常需要开发人员使用一种可将装置的功能发挥到极至的特定语言作为应用平台,至少要以官方认可的方式进行。
智能
手机开发体系的一个
新兴产业正在崛起,即允许开发人员用非智能
手机平台原生的其它语言编写自己的代码,然后转化为原生语言的应用程序。 因为不需要学习任何特定的智能手机平台的官方
应用程序开发语言,Web应用程序也沾了光,成为智能手机应用程序开发的一种方法。选择语言甚于平台的另一个方案是使用像
诺基亚的N900这样的设备,它运行
Debian发行的
Linux系统,可以运行的软件范围很宽——包括很多不是为智能手机设计的软件。随着
安卓和ios智能手机范围的不断扩大,安卓和ios
编程人员企业急缺,
3G梦工场软件学院在
华中地区最早开设了
3G智能手机编程相关的课程,为对编程感兴趣的人提供了一个学习平台。