编程是什么?
编程语言
机器语言
汇编语言
汇编程序
高级语言
执行原理
语言沿革
语言目录
语言排行
开发工具
可视化
智能手机
编程是什么?
编程是编程的中文缩写,是让计算机代码解决某个问题,规定某个计算系统的计算方法,使计算系统按计算方法运行,最终获得相应结果的过程。
为了使计算机能够理解人的意图,人类必须以计算机能够理解的形式告诉计算机需要解决的问题的想法、方法和手段,使计算机能够根据人的指示一步一步地工作,完成特定的任务。人与计算系统之间的沟通过程是编程。
编程:设计一个具有逻辑流动功能的可控系统注:编程不一定针对计算机程序,而是针对具有逻辑计算能力的系统。
编程语言
机器语言
在计算机系统中,机器指令规定了计算机系统的特定动作。在硬件设计和制造过程中,一系列计算机使用多个指令来规定该系列计算机可以执行的基本操作,这些指令构成了该系列计算机的指令系统。在计算机应用的早期阶段,程序员使用机器指令系统编写计算机应用程序,称为机器语言程序。使用机器语言编写的程序占用内存少,执行效率高。缺点也很明显,比如编程工作量大,容易出错;依靠特定的计算机系统,程序的通用性和移植性都很差。
汇编语言
为了解决使用机器语言编写应用程序带来的一系列问题,人们首先想到使用助记符号来代替难以记忆的机器指令。表示计算机指令的语言称为符号语言,也称为汇编语言。在汇编语言中,每个符号表示的汇编指令对应于计算机指令;记忆难度大大降低,不仅容易检查和修改程序错误,而且计算机可以自动分配指令和数据的存储位置。编写汇编语言的程序称为源程序。计算机不能直接识别和处理源程序。它必须以某种方式翻译成计算机能够理解和执行的机器语言。执行此翻译工作的程序称为汇编程序。
汇编程序
汇编程序。使用汇编语言编写计算机程序,程序员仍然需要熟悉计算机系统的硬件结构,因此从程序设计本身的角度来看,它仍然是低效和乏味的。然而,由于汇编语言与计算机硬件系统密切相关,汇编语言仍然是一种非常有效的程序设计工具,如系统核心程序和对时空效率要求高的实时控制程序。
但它具有不可替代的特性,如一些单片机或一些直接控制硬件的程序必须使用汇编语言
高级语言
高级语言是程序设计语言的总称,接近人类的自然语言和数学语言。根据程序设计的起点和方法,高级语言分为面向过程的语言和面向对象的语言,如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出现了规范。该规范没有描述数据的输入和输出模式;这些问题留给了独立的实现者。
20世纪60年代末
Pascal 由瑞士Niklaus Wirth教授在设计和创建中,语法简单,程序结构结构结构结构结构,是结构编程语言,在许多学校的计算机语言课上教授Pascal语言。
1959
LISP1.5出现。COBOL在数据系统和语言会议上(Conference on Data System and Languages)上被创建。
1960
ALGOL 60 ,第一种结构化语言出现。它是结构化语言家族树的根节点,最终产生Pascal这种语言。ALGOL成为20世纪60年代中期至末欧洲最流行的语言。
六十年代早期,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
APL\360被实现。
在达特茅斯大学,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
70年代早期,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美元。
70年代晚期的某天,Kenneth Bowles设计出了UCSD Pascal,它使得Pascal可以用在PDP-11和基于Z80 的电脑上。
Niklaus Wirth开始设计Modula,它Modula-2的先行者,Pascal的继承者。
1978
AWK——一个文本处理语言,以它设计者Aho、Weinberger和Kernighan的名字命名。
FORTRAN 77的ANSI标准出现。
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
Forth控制着潜水器定位泰坦尼克号的残骸。
Vanilla SNOBOL4之微机版发布。
Methods,PC上的面向行(line-oriented)的Smalltalk出现。
1986
Smalltalk/V露面——第一个广泛应用于微机的Smalltalk版本。
Apple公司为Mac机器发布Object Pascal。
Borland发布Turbo Prolog。
Charles Duff发布Actor,一个开发微软Windows应用程序的面向对象语言。
Eiffel,另外一个面向对象语言出现。
C++露面。
1987
Turbo Pascal 4.0发布。
1988
CLOS规范——公共LISP对象系统(Common LISP Object System)——发表。
Niklaus Wirth完成Oberon,这是他继Modula-2的后续行动。
1989
ANSI C规范公布。
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++标准预发布。
语言目录
O语言 O语言是一款中文计算机语言(或称套装:O汇编语言、O中间语言、O高级语言)
*AAuto是专用于桌面软件快速开发的新型混合型编程语言,
*APL、A+和J
*Ada是一种表现能力很强的通用程序设计语言
*ActionScriptActionScript是Flash的脚本语言,与JavaScript相似,ActionScript是一种面向对象编程语言。
*AWKAWK是一种优良的文本处理工具
*是一种设计给初学者使用的程序设计语言
*Brainfuck是一种极小化的计算机语言
*C++、C#: C语言是一种面向过程的计算机程序设计语言; C++是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。C#是微软公司发布的一种面向对象的、运行于 .NET Framework 之上的高级程序设计语言。
*CSSCascading Style Sheets 层叠样式表
*Clipper主要用于商业活动的计算机通信网
*COBOL一种适合于商业及数据处理的类似英语的程序设计语言
*dBASE是第一个在微型计算机上被广泛使用的数据库管理系统(DBMS)
*汇编语言(Assembly Language)是面向机器的程序设计语言
*易语言是全中文语言编程中最为强大的一个编程语言
*HTML是一种超文本标记语言,标准通用标记语言下的一个应用。
*Forth由Charles H. Moore发展出来在天文台使用的电脑自动控制系统及程序设计语言,允许使用者很容易组合系统已有的简单指令,定义成为功能较复杂的高阶指令。
*Fortran译为“公式翻译器”,它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域。
*FoxPro是由美国Fox Software公司于1988年推出的数据库产品
*F#是由微软发展的为微软.NET语言提供运行环境的程序设计语言
*Fava语言是一个小型的解释语言,它主要面向于系统测试领域及小型嵌入式设备。
*IDL是一种数据分析和图像化应用程序及编程语言
*Go语言是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。
*Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言,他是一种面向对象的跨平台语言,可以在多种平台上运行。支持开源。大量的类库。大量的开源项目。是一种非常强大的编程语言!
*JavaScript是一种由Netscape的LiveScript发展而来的脚本语言
*J#、Visual J#是一种工具,供Java语言程序员用于构建在.NET Framework 上运行的应用程序和服务
*LISP一种基于λ演算的函数式编程语言。
*Lua是一个小巧的脚本语言
*LOGO是一种早期的编程语言,也是一种与自然语言非常接近的编程语言,它通过“绘图”的方式来学习编程
*Module在软件工程中,指较高一级程序或模块使用的一个单元或模块
*Nuva语言是一种面向对象的动态脚本语言Nuva语言的设计目的是用于基于模板的代码生成
*Objective-C通常写作ObjC和较少用的 Objective C 或 Obj-C ,是扩充 C 的面向对象编程语言
*Perl一般被称为“实用报表提取语言”(PracticalExtraction andReportLanguage),也做“病态折中垃圾列表器” (PathologicallyEclectic Rubbish Lister)
*PHP是一种HTML 内嵌式的语言
*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,初学者通用指令代码)语言的一个变种,由美国微软公司开发
*R是用于统计分析、绘图的语言和操作环境
*Ruby,一种为简单快捷面向对象编程(面向对象程序设计)而创的脚本语言
*Scheme一种系统设计语言,由LISP语言发展而来,属于lisp的一种方言。与其他lisp不同的是,scheme是可以编译成机器码的。Scheme的一个主要特性是可以像操作数据一样操作函数调用
*Smalltalk一种面向对象的程序设计语言一种程序设计环境 一个应用开发环境(ADE)
*Tcl/Tk是一种脚本语言
*Visual FoxPro原名FoxBase,是美国FoxSoftware公司推出的数据库产品
*Visual Basic(VB)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言
*VBScript是Visual Basic Script的简称,即Visual Basic 脚本语言
*是微软2002年,为开发应用程序创建的一个富有革命性的新平台
语言排行
2015年7月份前三语言分别为:Java、C和 C++ [2] 。
开发工具
关于C++的: CFREE(初学者适用),VC,MyC++,Magic C++,DevC++
关于JAVA的:JBuilder、Eclipse、NetBeans IDE、JCreator+J2SDK、JDK、Tomcat、Weblogic、JRun
关于C#的:VS Studio 系列(VS2003,VS2005,VS2008,VS2010,VS2011),SharpDevelop(开源的免费软件)
关于Delphi的:delphi2005
关于C的:Turbo C 2
关于PHP的:Dreamweaver_CS5、Notepad++
关于VB的:visual basic 6.0
关于汇编的:VisualASM
关于VBS的:按键精灵2014
可视化
可视化编程也越来越重要,所谓的可视化程序设计和Visual Basic或Visual C++并不同,支持可视化程序设计的IDE可以让开发人员直接移动程序单元来建立流程图和结构图,然后直接做编译或解释,这一类的流程图通常是以UML为基础。
这样的界面因为乐高的Mindstorms开始普及,一些公司也开始透过浏览器Mozilla和分布式程序设计(LabVIEW)往这方面努力。从1980年代开始,第一个可视化程序设计系统—Max,就是以类比合成器的设计为榜样,同时被用来开发即时音乐演出软件。
这种方法也被用在专业软件,例如Openlab,这类的使用者需要完整程序设计语言的弹性,并不想要传统的学习曲线。
可视化程序设计语言有另一个半免费和开放源代码的替代品-Mindscript,具有加密系统和连结数据库等等。
智能手机
应用程序开发行业中最大的新热潮是智能手机的应用程序“这种装置通常需要开发人员使用一种可将装置的功能发挥到极至的特定语言作为应用平台,至少要以官方认可的方式进行。
智能手机开发体系的一个新兴产业正在崛起,即允许开发人员用非智能手机平台原生的其它语言编写自己的代码,然后转化为原生语言的应用程序。 因为不需要学习任何特定的智能手机平台的官方应用程序开发语言,Web应用程序也沾了光,成为智能手机应用程序开发的一种方法。选择语言甚于平台的另一个方案是使用像诺基亚的N900这样的设备,它运行Debian发行的Linux系统,可以运行的软件范围很宽——包括很多不是为智能手机设计的软件。随着安卓和ios智能手机范围的不断扩大,安卓和ios编程人员企业急缺,3G梦工场软件学院在华中地区最早开设了3G智能手机编程相关的课程,为对编程感兴趣的人提供了一个学习平台。