来自当知百科
跳转到: 导航搜索

目录

概述

  从计算机发明至今,随着计算机硬件和软件技术的发展,计算机的编程语言经历了机器语言、汇编语言面向过程的程序设计语言以及面
文件系统驱动编程
向对象的程序设计语言阶段。[1]

机器语言

  在计算机系统中,一条机器指令规定了计算机系统的一个特定动作。一个系列的计算机在硬件设计制造时就用了若干指令规定了该系列计算机能够进行的基本操作,这些指令一起构成了该系列计算机的指令系统。在计算机应用的初期,程序员使用机器的指令系统来编写计算机应用程序,这种程序称为机器语言程序。使用机器语言编写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。缺点也很明显,如:编程工作量大,容易出错;依赖具体的计算机体系,因而程序的通用性、移植性都很差。[2]

汇编语言

  为了解决使用机器语言编写应用程序所带来的一系列问题,人们首先想到了使用助记符号来代替不容易记忆的机器指令。这种助记符号来表示计算机指令的语言称为符号语言,也称汇编语言。在汇编语言中,每一条用符号来表示的汇编指令与计算机机器指令一一对应;记忆难度大大减少了,不仅易于检查和修改程序错误,而且指令、数据的存放位置可以有计算机自动分配。用汇编语言编写的程序称为源程序,计算机不能直接识别和处理源程序,必须通过某种方法将它翻译成为计算机能够理解并执行的机器语言,执行这个翻译工作的程序称为汇编程序。

  使用汇编语言编写计算机程序,程序员仍然需要十分熟悉计算机系统的硬件结构,所以从程序设计本身上来看仍然是低效率的、烦琐的。但正是由于汇编语言与计算机硬件系统关系密切,在某些特定的场合,如对时空效率要求很高的系统核心程序以及实时控制程序等,迄今为止汇编语言仍然是十分有效的程序设计工具。

高级语言

  高级语言是一类接近于人类自然语言和数学语言的程序设计语言的统称。按照其程序设计的出发点和方式不同,高级语言分为了面向过程的语言和面向对象的语言,如Fortran语言、C语言等都是面向过程的语言;而以C++、Smalltalk等为代表的面向对象的语言与面向过程语言有着许多不同,这些语言支持“程序是相互联系的离散对象集合”,这样一种新的程序设计思维方式,具有封装性、继承性和多态性等特征。[3]

  高级语言按照一定的语法规则,由表达各种意义的运算对象和运算方法构成。使用高级语言编写程序的优点是:编程相对简单、直观、易理解、不容易出错;高级语言是独立与计算机的,因而用高级语言编写的计算机程序通用性好,具有较好的移植性。

  用高级语言编写的程序称为源程序,计算机系统不能直接理解和执行,必须通过一个语言处理系统将其转换为计算机系统能够认识、理解的目标程序才能成为计算机系统执行。[4]

执行原理

  计算机对除机器语言以外的源程序不能直接识别、理解和执行,都必须通过某种方式转换为计算机能够直接执行的机器语言。这种将高级
MINIPRO编程硬件
程序设计语言编写的源程序转换到机器目标程序的方式有两种:解释方式和编译方式。

  解释方式下,计算机对高级语言书写的源程序一边解释一边执行,不能形成目标文件和执行文件。

  编译方式下,首先通过一个对应于所用程序设计语言的编译程序对源程序进行处理,经过对源程序的词法分析、语法分析、语意分析、代码生成和代码优化等阶段将所处理的源程序转换为用二进制代码表示的目标程序,然后通过连接程序处理将程序中所用的函数调用、系统功能调用等嵌入到目标程序中,构成一个可以连续执行的二进制执行文件。调用这个执行文件就可以实现程序员在对应源程序文件中所指定的相应功能。

语言的发明

  1946

  KonradZuse,一位德国工程师,他躲藏在巴伐利亚附近的阿尔卑斯山上时,独立开发了Plankalkul。他把该项成果应用在其它的事物中,比如国际象棋。

  1949

  Short Code ,第一种真正在电子计算设备上使用的计算机语言,尽管他是一个纯手工编译的的语言。

  1951

  Grace Hopper,为RemingtonRand工作,是在第一个著名的编译器——A-o上开始设计工作。当Rand在1957年发布这个语言时,它被称为MATH-MATIC。

  1952

  Alick E. Glennie,他利用自己在曼彻斯特大学的课余时间,发明了一个名为AUTOCODE的编程系统,一个未能成型的编译器。

  1957

  FORTRAN——数学公式转换系统(FORmulaTRANslating,FORTRAN名字的由来)——出现。开发队伍的领导者是JohnBackus,并且他还为ALGOL的开发和巴柯斯范式(BNF)做出了贡献。

  1958

  FORTRAN II出现,它能够处理子程序和连接汇编语言。由M.I.T的John McCarthy在LISP-LIStProcessing上开始设计工作。原始ALGOL规范出现。该规范并未描述数据的输入输出方式;这些问题都留给独立的实现者。

COBOL的创建

  1959

  LISP1.5出现。COBOL在数据系统和语言大会(Conference on Data System andLanguages)上被创建了。

编译器的出现

  1960

  ALGOL 60,第一种结构化语言出现。它是结构化语言家族树中的根节点,并最终产生Pascal这样的语言。ALGOL成为六十年代中期至末期欧洲最为流行的语言。

  六十年代早期,KennethIverson开始语言方面的工作,最终产生了APL-A编程语言。它使用专门的字符集,为了正确地使用,你还需要兼容APL的I/O设备。

  1962

  APL被写入Iverson的《A Programming Language》一书中。

  FORTRAN IV出现。

  SNOBOL这个以“首字母拼词命名”的产品,在工作的初期就取得了绝对的成功,SNOBOL——面向字符串符号(StriNgOriented symBOlic Language)语言。它衍生了其他一些以首字母拼词命名的产品:FASBOL,一个SNOBOL编译器(1971年),还有SPITBOL——Speedy ImplemenTation ofsnoBOL——同样在1971年。

  1963

  ALGOL 60进行修正。

  PL/1的工作开始。

  1964

  APL\360被实现。

  在达特茅斯大学,John G.Kemeny和ThomasE.Kurtz教授发明了BASIC。最初的实现是一个编译器。第一个BASIC程序在1964年五月一日下午四点运行。PL/1发布。

  1965

  SNOBOL3出现。

  1966

  FORTRAN 66出现。

  LISP 2出现。

  在Bolt,Beranek和Newman开始了LOGO的工作。小组的头是Wally Fuerzeig,而且还包括SeymourPapert。LOGO中最著名的便是“龟作图”。

  1967

  SNOBOL4,功能获得极大加强的SNOBOL,出现了。

  1968

  ALGOL 68,相对于ALGOL 60它是个怪物。一些规范委员会的成员——包括C.A.R.Hoare和NiklausWirth——却赞同该计划。事实证明ALGOL 68是难以实现的。

  ALTRAN,一个FORTRAN的变种出现。

  COBOL被ANSI正式定义规范。

  Niklaus Wirth开始Pascal方面的工作。

  1969

  500人参加在纽约Armonk的IBM总部召开的APL会议。APL的分发需求如此之大,该活动此后被人们称为“The Marchon Armonk”。

程序编写

  1970

  70年代早期,Charles Moore在他的语言Forth中写下了第一个有意义的程序。

  Prolog方面的工作大约在此时开始了。

  同样是在70年代早期的某一天,Xerox PARC由AlanKay领导,开始了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和JohnArnold实现),运行在2KB内存的微型计算机上。一台4KB的机器是较为合适的,它将有2KB的内存应用于这个程序上。

  Bill Gates和Paul Allen编写的一个BASIC版本以抽取每份拷贝版税的形式销售给MITS(MicroInstrumentation and TelemetrySystems)。MITS生产Altair,这是一种8080结构的微型计算机。

  Scheme,一个LISP的“方言”,由G.L. Steele和G.J. Sussman设计。

  Pascal用户手册和报告出版,Jensen和Wirth编写。许多人至今都认为它是Pascal方面权威的参考书籍。

  B.W. Kerninghan描述了RATFOR——RATionalFORTRAN。它是预处理程序,并且允许在FORTRAN中使用类C的控制结构。RATFOR被应用到了Kernighan和Plauger的“SoftwareTools”中,它出现在1976年。

PostScript编写进展

  1976

  Design System Language出现,它被认为是PostScript的先驱。[5]

  1977

  MUMPS的ANSI标准出现——麻省总医院多用途程序设计系统(Massachusetts General HospitalUtility Multi-ProgrammingSystem)。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 AdaByron,她是英国诗人拜伦的女儿。因其在巴贝奇分析机上设计了解伯努利方程的一个程序,而被誉为第一位女程序员。在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++ ReferenceManual》一书出版。这个版本增加了模板和异常处理特性。

  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++标准预发布。[6]

语言目录

  * CSS Cascading Style Sheets 层叠样式表

  * .NET 是微软2002年,为开发应用程序创建的一个富有革命性的新平台

  * ActionScriptActionScript是Flash的脚本语言,与JavaScript相似,ActionScript是一种面向对象编程语言。

  * APL、A+J

  * AdaAda是一种表现能力很强的通用程序设计语言

  * 汇编语言汇编语言(Assembly Language)是面向机器的程序设计语言

  *易语言是全中文语言编程中最为强大的一个编程语言

  * AWKAWK是一种优良的文本处理工具

  * Basic是一种设计给初学者使用的程序设计语言

  o QBasicQBASIC是BASIC(Beginner's All-purpose Symbolic InstructionCode,初学者通用指令代码)语言的一个变种,由美国微软公司开发

  o Visual BasicVisual Basic(VB)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言

  * VBScriptVBScript是Visual Basic Script的简称,即 Visual Basic 脚本语言

  * BrainfuckBrainfuck是一种极小化的计算机语言

  * CC++ 、C# C语言是一种面向过程的计算机程序设计语言 ;C++是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。C#是微软公司发布的一种面向对象的、运行于.NETFramework之上的高级程序设计语言。

  o Objective-C通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言

  * ClipperClipper芯片主要用于商业活动的计算机通信网

  * COBOL一种适合于商业及数据处理的类似英语的程序设计语言

  * dBasedBASE是第一个在微型计算机上被广泛使用的数据库管理系统(DBMS

  * PASCALDelphi Pascal是一种计算机通用的高级程序设计语言;Delphi是全新的可视化编程环境,是一种方便、快捷的Windows应用程序开发工具

  * Forth 由CharlesH.Moore发展出来在天文台使用的电脑自动控制系统及程序设计语言,允许使用者很容易组合系统已有的简单指令,定义成为功能较复杂的高阶指令。

  * Fortran译为“公式翻译器”,它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域。

  * FoxPro 是由美国FoxSoftware公司于1988年推出的数据库产品

  * F#F#是由微软发展的为微软.NET语言提供运行环境的程序设计语言

  * FavaFava语言是一个小型的解释语言,它主要面向于系统测试领域及小型嵌入式设备。

  * IDL IDL是一种数据分析和图像化应用程序及编程语言

  * Java Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言,他是一种面向对象的跨平台语言,可以在多种平台上运行。支持开源。大量的类库。大量的开源项目。是一种非常强大的编程语言!

  * JavaScriptJavascript是一种由Netscape的LiveScript发展而来的脚本语言

  * J# Visual J#是一种工具,供 Java 语言程序员用于构建在 .NET Framework 上运行的应用程序和服务

  * LISP一种基于λ演算的函数式编程语言。

  * Lua Lua是一个小巧的脚本语言

  * LOGO是一种早期的编程语言,也是一种与自然语言非常接近的编程语言,它通过“绘图”的方式来学习编程

  * Module在软件工程中,指较高一级程序或模块使用的一个单元或模块

  * NuvaNuva语言是一种面向对象的动态脚本语言 Nuva语言的设计目的是用于基于模板的代码生成

  * Perl Perl一般被称为“实用报表提取语言”(PracticalExtractionandReportLanguage),也做“病态折中垃圾列表器”(PathologicallyEclectic RubbishLister

  * PHP PHP 是一种 HTML内嵌式的语言

  * PL/IPL/I是Programming LanguageOne的简写。当中的“I”其实是罗马数字的“一”。它是一只IBM公司在1950年代发明的第三代高级编程语言

  * PrologProlog(Programming in Logic的缩写)是一种逻辑编程语言

  * Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言

  * RR是用于统计分析、绘图的语言和操作环境

  * RubyRuby,一种为简单快捷面向对象编程(面向对象程序设计)而创的脚本语言

  * SchemeScheme,一种系统设计语言,由LISP语言发展而来,属于lisp的一种方言。与其他lisp不同的是,scheme是可以编译成机器码的。Scheme的一个主要特性是可以像操作数据一样操作函数调用

  * Smalltalk一种面向对象的程序设计语言一种程序设计环境 一个应用开发环境(ADE)

  * Tcl/Tk 是一种 脚本语言

  * Visual FoxProVisual FoxPro原名FoxBase,是美国Fox Software公司推出的数据库产品

编程工具

  关于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),SharpDevelop (开源的免费软件)

  关于Delphi的:delphi2005

  关于C的:Turbo C 2

个人工具
名字空间

变换
查看
操作
导航
工具箱