【软考4】编程语言的发展和特点

导读:学习计算机到现在,零零散散已经两年了,在这之间,学习了很多个语言。我们都知道编程语言经历了从机器语言——>汇编语言——>高级语言的发展,可是,每一类语言有什么特点,对于我个人还不甚明确,现在,将其总结概括一下。

一、总体概括

从开始到现在,我学习过的有:Basic入门、C#、VB.Net、Asp.net、JS、HTML、XML、CSS,在前些天看了J2SE的视频,对于java,也算是有一个初步的涉足。结合到查阅的知识,我将从面向过程和面向对象两方面来总结语言的特点,而这之中,尤以自己学习过的作为主要说明。

面向过程的语言:

1,Pascal(最早出现的结构化编程语言);2,Cobol(第一个广泛使用的高级语言);3,Fortran(最早出现的计算机高级程序设计语言);4,Basic(初学者使用的程序设计语言);5,C(通用的、过程式的编程语言)

面向对象的语言:

1,C++(在C语言的基础上开发的一种通用编程语言);2,Visual Basic(源自于BASIC编程语言,世界上使用人数最多);3,.NET Framework(用于Windows的新托管代码编程模型);4,C#(运行于.NET Framework之上的高级程序设计语言);5,java(跨平台应用程序的面向对象的程序设计语言)

 

二、具体分析

1,VB(.NET Framework引入之前)

刚开始接触计算机的时候,用的是Visual Basic,我的第一个程序是三个数中找最大的,第一个成品是作品展的时候,做好的:钱途。结合到自己学习的内容和资料,VB这门语言的特点有:

VB是一种以面向对象为基础的,以事件驱动对象的编程技术,特点:1,支持一定程度上的封装;2,不支持继承;3,不支持多态。所以,从严格意义上来说,VB是不具备面向对象的三个基本特性的,也就不是一种面向对象的编程语言,只能说是基于面向对象,而实际上则是面向过程(第一版机房收费系统)!

2,VB(.NET Framework引入之后)

1,代码托管:被托管的代码享受.netframework提供的安全保障和垃圾回收机制,但是这也同时表明,程序被框在Framework里面了,API变得不太方便。

2,强大的面向对象特性:继承、封装、多态(结合到机房收费系统),包括抽象类的应用。

3,程序代码结构化更强,开发环境更加的舒适!

4,窗体设计器支持可视化继承,并且包含了许多新的特性,比如自动改变窗体大小、资源本地化支持、数据类工具内在支持XML数据。
5,直接建立在.NET的框架结构上,因此开发人员可以充分利用所有.NET平台特性,也可以与其他的.net语言交互。

3,.NET平台

.NET是微软针对java而产生的一个跨语言、跨平台的语言,包括2个主要部分:Microsoft .NET Framework SDK(软件开发工具包)、Visual Studio IDE(集成开发环境),IDE用来开发,Framework用来运行:

3.1,跨平台:在每台计算机上安装.NET Framework后,一次编写的.NET应用程序就可以跨操作系统平台和硬件环境执行。.NET中实现这一功能的原理和Java差不多,.NET Framework的作用就好比是Java的虚拟机。

原理:.NET Framework中提供了两个编译器。一个编译器是每门程序语言的编译器,这个编译器编译后的代码只是与硬件环境无关的中间代码MSIL.每台计算机上安装的“Just-In-Time”编译器最后完成与具体的硬件环境有关的可执行代码的编译。

注:跨平台最先由Java实现,“一次编码,到处运行”,.NET 后来居上,通过借鉴、消化、发展,实现了跨平台。

3.2,跨语言:.NET Framework中设计了一个通用语言系统(Common Language System,CLS),定义了很多标准的数据类型,.NET Framework支持的所有高级语言都必须同时支持该系统对数据类型的定义。在编译成MSIL代码的同时,各种高级语言自身的数据类型都被转换成了CLS系统中的标准数据类型,比如,VB.NET中定义的Integer数据类型被转换成了System.Int32数据类型,C#中的int类型也被转换成了System.Int32数据类型。这样不同语言的变量就可以相互交换信息了,这就是 .NET Framework支持混合语言编程的基本原理。

4,java

是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

java之所以能够跨平台,主要和其虚拟机有很大的关系,java主要由四部分组成:1,Java编程语言,即语法;2,Java文件格式,即各种文件夹、文件的后缀;3,Java虚拟机(JVM),即处理*.class文件的解释器;4,Java应用程序接口(Java API)。

附:高级语言的程序设计流程

 

三、个人感受

学习了也有好几种语言了,可是一直都没有总结过,这次也是通过查文件,结合到自己的学习经历简单理解了一下。对于很多不明白的,现在也只是说从理论上清楚了,还有待于进一步从实践上去掌握。

高级语言从面向过程和对象这一角度大致的情况,就如本篇博客所阐述的一样。高级语言是不能被计算机直接识别的,需要对其进行转换,那么按照转换方式的不同,可以分为解释性和编译型,解释性和编译型又有什么区别和联系呢?下一篇博客继续。。。。。。。

 

1. 开放源代码的必要性 在介绍编程语言之前,先说说开放源代码的必要性。现在,在软件生产领域存在巨大的智利浪费,大家把大量的精力用在编写别人已经实现的程序代码上。看看,文本编辑器有多少,看看ftp程序有多少,看看字处理程序有多少,这些程序虽然有差别,但主要的功能都是一样的。要实现个性化的功能,在已有的软件基础上修改会节省多少时间呀!而每个程序各编一套,又浪费多少时间?如果,没有这些重复的工作量,世界上的程序员至少可以节省80%的工作量。同时,开放源代码也方便了大家的交流,阅读源代码应该是最直接最有效的学习途径,尤其是比较专业的领域。 要开放源代码,下面几点比较重要: * 语言要流行。 * 语言的函数和类库统一。 * 语言的语法和编译器要统一。 * 编译器是否开放源代码。 * API是否开放源代码。 语言的可重用性、功能、友好性。 * 语言统一:如果大家都用一种编程语言,都用同样的函数,同样的类库,那么,大家的共同语言就会很多。大家只要学会一种语言,一套函数,一套类库,就可以相互读懂源代码,这样,学习量是最少的;但是语言统一根本是不可能的事,因为各种语言都有其特色,如果取了其中一个优点,通常就会牺牲另一个优点。可是学习新的API浪费程序员大量的时间和精力,尤其是当这个API有大量和其他API重复的功能的时候。 要增加代码的可重用性,要从下面几点着手: * 代码的可读性。如格式、是否接近英语语法和单词。 * 代码的表达能力,也就是简单性,能用最少的语句和单词实现同样的功能。 * 代码的结构性,如函数、模块、类。 语言功能的强大从下面几点来说: * 是否拥有大量的库支持。这是最重要的,要求编写任何功能的程序都有强大的库支持。 * 语法功能是否强大,比如是否有出错处理。是否有指针。 语言的友好性: * 语言包的大小,语言包越小,学习越简单。 * 语言是否有友好的编辑调试环境。 * 语言的可视化和集成编程环境。 2. 简介各种程序语言 注︰在程序语言前划有☆号者,表示它有重大影响,但不代表它优良。
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值