侧边栏壁纸
博主头像
coydone博主等级

记录学习,分享生活的个人站点

  • 累计撰写 306 篇文章
  • 累计创建 51 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

编程语言

coydone
2020-12-14 / 0 评论 / 0 点赞 / 315 阅读 / 4,188 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-05-01,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

概述

编程语言(programming language)可以简单的理解为一种计算机和人都能识别的语言。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。

分类

计算机编程语言能够实现人与机器之间的交流和沟通,而计算机编程语言主要包括汇编语言、机器语言以及高级语言。总结来说:越是人能看懂的语言越高级,越是执行效率高的语言越(低级)接近计算机的底层。

机器语言

这种语言主要是利用二进制编码进行指令的发送,能够被计算机快速地识别,其灵活性相对较高,且执行速度较为可观,机器语言与汇编语言之间的相似性较高,但由于具有局限性,所以在使用上存在一定的约束性。

  • 优点:执行效率高

  • 缺点:开发效率低,二进制代码难以编写和阅读。

由于计算机内部只能接受二进制代码,因此用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言。只有目标程序才能被计算机直接识别和执行。但是机器语言编写的程序无明显特征,难以记忆,不便阅读和书写,且依赖于具体机种,局限性很大,机器语言属于低级语言。

指令部份的示例:

0000 代表 加载(LOAD)
0001 代表 存储(STORE)

暂存器部份的示例:

0000 代表暂存器 A
0001 代表暂存器 B

汇编语言

该语言主要是以缩写英文作为标符进行编写的,运用汇编语言进行编写的一般都是较为简练的小程序,其在执行方面较为便利,但汇编语言在程序方面较为冗长,所以具有较高的出错率。

  • 优点(相较于机器语言):开发效率高,便于编写和阅读。

  • 缺点(相较于机器语言):执行效率低,和硬件交互还需要一个英文单词翻译的过程。

汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作。例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。

  • 汇编的hello world,打印一句hello world
; hello.asm 
section .data            ; 数据段声明
msg db "Hello, world!", 0xA     ; 要输出的字符串
len equ $ - msg                 ; 字串长度
section .text            ; 代码段声明
global _start            ; 指定入口函数
_start:                  ; 在屏幕上显示一个字符串
mov edx, len     ; 参数三:字符串长度
mov ecx, msg     ; 参数二:要显示的字符串
mov ebx, 1       ; 参数一:文件描述符(stdout) 
mov eax, 4       ; 系统调用号(sys_write) 
int 0x80         ; 调用内核功能
; 退出程序
mov ebx, 0       ; 参数一:退出代码
mov eax, 1       ; 系统调用号(sys_exit) 
int 0x80         ; 调用内核功能

高级语言

所谓的高级语言,其实是由多种编程语言结合之后的总称,其可以对多条指令进行整合,将其变为单条指令完成输送,其在操作细节指令以及中间过程等方面都得到了适当的简化,所以,整个程序更为简便,具有较强的操作性,而这种编码方式的简化,使得计算机编程对于相关工作人员的专业水平要求不断放宽。

  • 优点(相较于汇编语言):开发效率高,更加便于编写。

  • 缺点(相较于汇编语言):执行效率低,不再与硬件直接交互。

在高级语言问世的同时,问题也来了,我们用高级语言编写的程序归根结底还是要给计算机执行,但是计算机只认识二进制指令。这就涉及到一个翻译的过程,我们需要把人用高级语言编写的程序翻译成计算机所能理解的二进制指令才执行,按照翻译方式的不同,高级语言又分为编译型和解释型两大类。

编译型语言

使用专门编译器,针对特定的平台,将高级语言源代码一次性变异成可被该平台硬件执行的机器码 并包装成该平台,所能识别的可执行程序的格式,并且只需要编译一次,以后就不需要再次编译。可以理解成谷歌/百度翻译,将要翻译的文字一次性全全部放进去,一次翻译,下次直接使用上次翻译好的结果。

编译后程序运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等。

  • 优点(相较于解释型):执行效率高,有解释器省去很多的翻译过程。

  • 缺点(相较于解释型):开发效率低,写完所有的代码才可以检查bug。

解释型语言

解释型专业解释为:使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行,它不需要事先编译,直接将代码解释成机器码直接运行,也就是说只要某一平台提供了相应的解释器即可运行代码。其实可以理解成同声传译,我们需要翻译的时候,找一个翻译员,对方说一句翻译员翻译一句,下次翻译还是需要一个翻译员一句一句的翻译。

应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。如Python、Java、PHP、Ruby等语言。

  • 优点(相较于编译型):开发效率高,写一行翻译一行,错了马上知道。

  • 缺点(相较于编译型):执行效率低,写一次翻译一次。

常见编程语言

C

C语言诞生于1972年,可以称之为现代高级语言的鼻祖,由著名的贝尔实验室发明。C语言是人们追求结构化、模块化、高效率的“语言之花”。在底层编程,比如嵌入式、病毒开发等应用,可以替代汇编语言来开发系统程序。在高层应用,也可以开发从操作系统(Unix/Linux/Windows都基于C语言开发)到各种应用软件。比如单片机以及嵌入式系统开发。

C++

作为C语言的扩展,C++是贝尔实验室于80年代推出的。C++是一种混合语言,既可以实现面向对象编程,也可以开发C语言面向过程风格的程序。

C语言让程序员第一次可以通过结构化的理念编写出易于理解的复杂程序; 尽管C语言是一个伟大的语言,但是程序的代码量达到30000行以上时,程序员就不能很好的从总体上把握和控制这个程序。 因此,在80年代初期,很多软件项目都面临无法解决的问题而不能顺利进行。 1979年,贝尔实验室发明了C++。 C++最初的名字叫做“带类的C”,后来才改名叫C++。国内通用叫法:“C加加”,国际通用读法“C plus plus”。

C++语言在科学计算、操作系统、网络通讯、系统开发、引擎开发中仍然被大量使用。

Java

由美国SUN公司发明于1995年,是目前业界应用最广泛、使用人数最多的语言,连续多年排名世界第一,可以称之为“计算机语言界的英语”。

Java广泛应用于企业级软件开发、安卓移动开发、大数据云计算等领域,几乎涉及IT所有行业。

PHP

PHP原始为Personal Home Page的缩写,已经正式更名为 “PHP: Hypertext Preprocessor”。PHP语言,一般用于WEB开发领域;大量的中小型网站以及某些大型网站使用PHP开发。

Object-C

Object-C通常写作Objective-C或者Obj-C或OC,是根据C语言所衍生出来的语言,继承了C语言的特性,是扩充C的面向对象编程语言。OC主要用于苹果软件的开发。

Swift

Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与OC共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。

JavaScript

JavaScript是一种脚本语言,已经被广泛用于Web应用开发;应用范围越来越大,重要性越来越高。目前,流行的H5开发的核心其实就是JavaScript语言。

Python

Python发明于1989年,语法结构简单,易学易懂;Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。Python广泛应用于:图形处理、科学计算、web编程、多媒体应用、引擎开发;尤其是在未来大热方向机器学习和人工智能上有非常大的潜力。

C#

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。C#在基于windows操作系统的应用开发这一领域在取代C++,占据主导地位。“成也萧何败也萧何”,C#的微软身份,也成为了发展的阻力,在其他IT领域应用较少。

Ruby

Ruby 是一种通用的、解释的编程语言。也是一种真正的面向对象编程语言。它是一种类似于 Python 和 Perl 的服务器端脚本语言。它是开源的,在Web 上免费提供,但需要一个许可证。 可以用来编写通用网关接口(CGI)脚本。 可以被嵌入到超文本标记语言(HTML)。Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby。

GO

Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。Go从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。GO由其擅长并发编程。

Fortran

世界上第一种高级语言, IBM公司在1954年提出的,主要用在需要复杂数学计算的科学和工程领域。现在仍然被广泛使用,尤其是工程领域。Fortran虽然适合编写科学计算方面的程序,但是不适于编写系统程序。

Basic

虽然易学,但功能不够强大,应用到大程序的有效性令人怀疑。已经逐步退出历史舞台。

COBOL

于1959年提出。主要用于大量精确处理数据的商业领域中,比如金融、银行。今天,仍然有超过一半的商业软件使用COBOL编写。有将近100万人使用COBOL编程。

Pascal

Pascal的名称是为了纪念十七世纪法国著名哲学家和数学家Blaise Pascal而来的,它由瑞士Niklaus Wirth教授于六十年代末设计并创立的。Pascal语言语法严谨,层次分明,程序易写,可读性强,是第一个结构化编程语言。由于没有大厂商和政府的支持,只是限于大学教育这一块。

0

评论区