编程都有哪些语言?

Python018

编程都有哪些语言?,第1张

几种常用编程语言简单介绍

1.c语言

是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到c语言,始于编写程序软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。

优点:简洁紧凑,灵活方便,运算符丰富,数据类型丰富,c是结构式语言,语法限制不太严格,程序设计自由度大,生成目标代码质量高,程序执行效率高。

缺点:没有面向对象编程功能(OOPs),运行时类型检查是不可用,C不能够在一个范围内再次使用相同的变量名,构造函数和析构函数不可用,必须通过方法或者以其他方式来手动实现变量的析构和构造。

2.c++

是在c语言的基础上开发的一种面向对象编程语言,应用广泛。它的主要特点表现在两个方面:一是尽量兼容c,二是支持面向对象的方法。它操持了c简洁,高效的接近汇编语言等特点,对c的类型系统进行了改革的扩充。

应用领域:游戏,科学计算,网络软件,分布式应用,操作系统,设备驱动程序,移动设备,嵌入式系统,教育与科研,部分行业应用,其他应用。

3.c#

是微软对这一问题的解决方案。C#是一种最新的、面向对象的编程语言。

主要特点:简单,现代,面向对象的,类型安全,相互兼容性,可伸缩性和可升级性。

主要领域:web应用,客户端应用,分布式计算,人工智能,各类游戏。

4.visual 语言

一种直译式程序设计语言。名称字面为意思“初学者的全方位符式指令代码”,设计给初学者使用的编程语言,在完成编写后不须经由编译及链接等手续,经过解释器即可运行,但如果需要单独运行时仍然需要将其创建成可执行文件。

特点:(1)面向对象和可视化的程序设计。

(2)事件驱动的运行机制。

(3)结构化的程序设计语言。

(4)多种数据库访问能力。

(5)提供了功能完备的应用程序集成开发环境。

(6)方便使用的联机帮助功能。

5.perl 语言

是一种解释型的脚本语言。Perl语言由Larry wall干1986年开发成功。当初的目的主要是在Unix环境下,用于处理面向系统任务而设计的脚本编程语言。Perl对文件和字符有很强的处理、变换能力,它特别适用于有关系统管理、数据库和网络互联以及WWW程序设计等任务,这样使得Perl称为系统维护管理者和CGI编制者的首选工具语言。

特点:

1. Perl的解释程序是开放源码的免费软件,使用Perl不必担心费用。

2. Perl能在绝大多数操作系统运行,可以方便地向不同操作系统迁移。

3. Perl 是一种能完成任务的语言。从一开始,Perl 就设计成可以把简单工作简单化,同时又不失去处理困难问题能力的语言。它可以很容易操作数字,文本,文件和目录,计算机和网络,特别是程序的语言。这种语言应该很容易运行外部的程序并且扫描这些程序的输出获取感兴趣的东西。而且它还应该很容易能把这些你感兴趣的东西交给其它程序做特殊的处理。当然,这种语言还应该很容易在任何现代的操作系统上可以移植地编译和运行。

6.java

是一门面向对象编程语言,不仅吸收了c++语言的各种优点,还摒弃了c++里难以理解的多继承,指针等概念,因此java语言具有功能强大和简单易用两个特征。java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

特点:简单性,面向对象,分布性,编译和解释性,稳健性,安全性,可移植性,高能性,多线索性,动态性。

应用:android应用,在金融业应用的服务器程序,网站,嵌入式领域,大数据技术,高频交易的空间,科学领域。

7.Objective-C

通常写作ObjC或OC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。

特点:1、动态运行环境,适合UI编程

在Objective-C中,如下语法并非单纯的函数调用,而是向某对象发送消息。

2、方便与C/C++混合使用

Objective-C中的C扩展部分,使用符号@开头。比如@class、@interface、@"Hello,World"。而它的消息发送语法则是使用中括号而不是圆括号。

3、运行速度相对较快

Objective-C编译后是机器原生指令,运行时环境也小而紧凑。它采用引用计数的内存管理方式,并引入ARC。ARC比GC更容易引起编程错误,但却比GC快。而在性能很重要的场合,Objective-C也很容易直接调用C/C++代码。相对于其他使用虚拟机、采用GC以及间接调用C/C++的移动平台,速度优势非常明显。

应用:ios操作系统,ios应用程序,mac os x操作系统,mac osx上的应用程序。

8.PHP

是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

特点:

1. PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。

2. PHP可以比CGI或者Perl更快速的执行动态网页——动态页面方面,与其他的编程语言相比,

PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;

PHP具有非常强大的功能,所有的CGI的功能PHP都能实现。

3. PHP支持几乎所有流行的数据库以及操作系统。

4. 最重要的是PHP可以用C、C++进行程序的扩展!

9.python

是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。

Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议 。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。

特点:简单,易学,速度快,免费、开发,高层语言,可移植性,解释性,面向对象,可扩展性。

应用:

系统编程,图形处理,数学处理,文本处理,数据库编程,网络编程,多媒体应用,pymo引擎,黑客编程。

10.ruby

是一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于Perl、Smalltalk、Eiffel、Ada以及Lisp 语言。

优点

语法简单,普通的面向对象功能(类,方法调用等),特殊的面向对象功能(Mixin,特殊方法等,操作符重载,错误处理功能迭代器和闭包,垃圾回收,动态载入,可移植性高。

黑客一般都掌握多种编程语言,他们不但掌握着与底层相关的如汇编、C之类的编程语言,而且还掌握很多脚本语言,如Python、Perl、Ruby .......很多黑客在发现ODay以后用Perl或者Python来写POCMSF使用的是Ruby来进行开发Exploit有的黑客在反病毒时竟然写个批处理就搞定了……对于黑客来说,一切语言都是服务于自己的思想的,只要能快速实现自己的想法,能完成自己所要完 成的功能就行,从不拘泥于任何语言和工具。在网上有很多学习不同编程语言的人们之间经常互相攻击,这其实是一种极端的行为,大家还是理性地对待这些问题比较好

C#与JAVA的相同之处:由于C#与JAVA都是基于C++发展起来的,因此二者之间具有很多相似之处,具体如下:

1、C#和JAVA语言的编译结果是独立于计算机和编程语言的,可执行文件可以在受管理的执行

环境中执行;

2、C#和JAVA语言都是采用了自动的垃圾回收机制;

3、C#和JAVA语言都取消了指针操作;

4、C#和JAVA语言都没有头文件;

5、C#和JAVA语言都只支持单重继承,要实现与多重继承类似的功能,必须通过接口来实现;

6、类都是从Object类派生而来,类的对象通过关键字new生成;

7、C#和JAVA语言都支持线程;

8、C#和JAVA语言都没有全局变量和全局函数,所有的变量和函数都属于某个类所有;

9、C#和JAVA语言都支持对数组和字符串边界的严格检查,不会出现边界溢出的情况;

10、C#和JAVA语言都使用“.”操作符,不再使用“->”和“::”操作符;

11、C#和JAVA语言都将null和bool作为关键字;

12、C#和JAVA语言中所有的值都必须先初始化后才能使用;

13、C#和JAVA语言中的if语句都不允许采用整数作为判断条件;

14、C#和JAVA语言中的try语句块都可以后接finally语句块。

C#与JAVA的不同之处:

尽管C#和JAVA有很多相同之处,但是由于二者是两家不同公司开发的高级程序设计语言,它们又相互独立,

自成体系,各自具有一些自己特有的特点,下面将C#与JAVA之间的不同之处如下:

1、属性

对于那些经常使用快速开发工具,如Delphi或者Visual Basic的开发人员来说,属性是一个非常熟悉的概念。

一般来说,通过getXXX可以读取属性的值,而通过setXXX可以设置属性的值。

JAVA中比较常见的属性操作语句: foo.setSize(foo.getSize()+1)label.getFont().setBold(true)

c#中比较常见的属性操作语句: foo.size++label.font.bold=true

很明显,上述的属性设置方式较JAVA来说更为简洁,可主读性也更强。这充分体现了C#简单的特点。

JAVA对于属性的定义:public int getSize(){ return size} public void setSize(int value){ size=value}

c#对于属性的定义进行了简化:public int Size{ get{ return size} set{size=value}}

2、index

C#提供index来给对象加上索引的功能,从而用与处理数组类似的方式来处理对象,JAVA语言则不支持index

C#中定义index的典型方式如下:

public Story this[int index]

{

get{return stories[index]}

set{

if(value!=null){

stories[index]=value

}

}

3、delegate :可以认为是一种类型安全、面向对象的函数指针。

C#使有delegate可以通过一个名字访问不同的函数,它实现和JAVA中的interface类似的功能,但是它比interface更为好用。

4、event

C#提供对event的直接支持,它通过delegate和event关键字实现对事件的处理。event关键字隐藏所有delegate方法,运算符“+=”和“-+”允许程序员自由加入或者删除时间处理程序。

5、enum:枚举用于指定一系列的对象。

C#通过如下语句来定义和使用枚举:

定义:public enum Direction{North,East,West,South}

使用:Direction wall=Direction.North

JAVA不直接支持枚举,如果要实现和C#相类似的功能,必须先定义一个类

public class Direction{

public final static int NORTH=1

public final static int EAST=2

public final static int WEST=3

public final static int SOUTH=4}

在定义了Direction类后,JAVA可以通过引用类中的值来使用枚举:

int wall= Direction.NOTRH

6、foreach语句

C#提供了标准的for循环,同时还提供了foreach语句(从VB中引入)来循环处理集合中的元素。

JAVA遍历集合中的所有元素的典型处理方式如下:

while(!collection.isEmpty())

{

Object o=collection.get()

connection.next()

}

C#遍历集合中的所有元素:foreach(object o in collection){…}

7、统一数据类型:

大多数的高级程序设计语言都有基本数据类型,如整型、浮点类型等。同时,为了更好地满足实际的需要,对不同的数据类型有不同的处理方式,显然,如果能够对简单数据类型的处理和对复杂数据类型的处理结合在一起,并用一致的方式加以处理的话,无疑会大大提升应用程序设计的效率,增强程序设计的灵活性。

JAVA语言在处理基本数据类型的时候也采取分别处理的策略,但是在基本数据类型的基础上提供了一系列封装这些基本数据类型的类,例如:整型(int)被类Integer所封装,双精度浮点(double)被类Double封装。

C#提供了一种和JAVA不同的方式来实现数据类型的统一。事实上,在c#中,即使是int这样的简单数据类型在C#内部也是通过一个结构体Int32来实现的,在C#中,可以这样认为,int只是结构体Int32的一个别名。由于C#中的结构体也继承自类Object,这样,Object类中定义的方法,各个结构体也拥有,于是,在C#中可以通过如下的方式来操作整数:int I=5System.Console.WriteLine(i.ToString())

8、操作符重载

通过操作符重载可以用一种比较自然的方式来操纵各种数据类型,从而大大提升程序的可读性和灵活性。C#中的“==”操作符在Object类中进行了定义,在Object中定义的==操作符通过比较两个值的引用来获得最后的结果。如果使有和集合相关的类,则必须在这样的类中实现ICompar接口,这个接口中定义了一个方法CompareTo,该方法返回两个对象的比较结果,在此基础上,可以进一步定义各个实现比较的操作符,如

“>”、“<”、“>=”、“<=”等。事实上,数字类型(int、long等)可以直接使用这些比较操作符,它们的内部都实现了ICompare接口。

9、多态性

虚似方法提供了多态性的技持。多态意味着派生类可以定义一个和基类中同名的方法。尽管JAVA和C#都支持多态性,但是它们的具体实现方式还是有一定的差别。

在JAVA语言中,默认情况下,基类的对象可以直接调用派生类中的虚似方法,在C#语言中,基类要调用派生类中的虚似方法必须通过virtual关键字来实现。同时,在C#语言中,一个方法要重载基类中的同名方法,还必须通过关键字override来实现。在C#中实现多态的典型程序如下:

Class B{ public virtual void foo{}}

Class D:B{ public overried void foo(){}}

以上只是简单地比较了C#和JAVA之间的异同,事实上,这二者之间的比较远不止上面所介绍的内容,要学好这两种语言,需要经过大量的实践工作,在实践中区分开两种语言