The basic computer programming language

Programming Language Category

First, the machine language

As long as it comes to computer-based, there is one thing that we can not avoid, and that is what is programmed in the end?

Now imagine a scenario where, if the slaves from different countries, as distinguished but can not afford to force poor steward of slaveholders and slaves, we will need to have some communication control slaves.

If the slaves into the computer, because the computer is stored in binary data, if we want to enslave your computer, you need to use the binary programming. That is, if we need a computer and communicate, then we'll have to binary code programming. And this is the use of binary coded machine language programming, the hardware directly. Its advantages and disadvantages as follows:

  • Advantages: High efficiency (fast you can not re-up?.)

  • Disadvantages: low efficiency of the development

1.1 machine language programming

Since only accept the binary code inside the computer, therefore, a binary 0 and 1 command described in called machine instructions, machine instructions constituting the set of all the machine language computer program in machine language programming Chen target program. Only the target program can be directly recognized and executed. Machine language program but no programming features, difficult to remember, inconvenience reading and writing, and depending on the particular aircraft, the limitations of large, low-level machine language belongs to the language.

Written in machine language program, the programmer must first memorize the meaning of all the instruction code and the code used by computers. When the hand-programmed, programmers have their own processing instructions and memory allocation for each output and each input data, the unit of work had to remember what state each step in the programming process used in. This is a very tedious work. Time spent programming is often several times or several hundred times more than a dozen running time. Moreover, all of the programming program instruction code is 0 and 1, intuitive difference, error-prone. The manufacturer of the computer professionals, the vast majority of programs ape no longer to learn the language of the machine.

Machine language understood by a microprocessor and used for controlling the operation of its binary code.

While the machine language seems to be very complicated, but it is regular, at present there are up to 100,000 kinds of instructions in machine language. This also means that these species can not list them all. What are some examples:

# 指令部分的示例
0000 加载(LOAD)
0001 存储 (STORE)
...
# 暂存器部份的示例
0000 代表暂存器 A
0001 代表暂存器 B
...

# 存储器部份的示例

000000000000 代表地址为 0 的存储器
000000000001 代表地址为 1 的存储器
000000010000 代表地址为 16 的存储器
100000000000 代表地址为 2^11 的存储器

# 集成示例

0000,0000,000000010000 代表 LOAD A, 16
0000,0001,000000000001 代表 LOAD B, 1
0001,0001,000000010000 代表 STORE B, 16
0001,0001,000000000001 代表 STORE B, 1[1]

Second, assembly language

汇编语言类似于机器语言,但是汇编语言只是把一串二进制数写成了一个英文单词。因此你不需要去记住二进制数,而是需要去记住一个个的英文单词,这同样是一个大工程,为什么呢?虽然汇编语言用英文标签代替了二进制指令,本质还是在直接操作硬件。它的优缺点如下:

  • 优点(比较于机器语言):开发效率高(0000,0000,000000010000(机器语言)和LOAD A,16(汇编语言))

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

2.1汇编语言编程

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

汇编打印一句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         ; 调用内核功能

三、汇编语言

讲完了汇编,回归主题。作为高贵的奴隶的主的我们,怎么能为了让奴隶帮我们做事而去学习奴隶的语言呢?因此我们奴隶主们怎么方便怎么来,可想而之计算机语言发展也是如此的。因此产生了高级语言,这个高级指的是距离机器语言较远。由于高级语言的问世,高级语言直接用人能理解的语言和语法风格编写程序,程序猿无需再去考虑复杂的硬件操作。由此可以得出高级语言的优缺点:

  • 优点(比较于汇编语言):开发效率高

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

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

3.1编译型

编译型专业解释为(Compiled Language):使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可以被该平台硬件执行的机器码,并包装成该平台所能识别的可执行程序的格式,并且只需要编译一次,以后再也不用编译了。其实可以理解成谷歌翻译,我们把要翻译的文字全部放进去,一次翻译,下次使用直接使用上一次翻译好的结果。

  • 优点(Relative To Interpreted Language):执行效率高(有解释器省去很多翻译的过程)
  • 缺点(Relative To Intelpreted Language):开发效率低(写完所有的代码才能检查BUG)

3.2解释型语言

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

  • 优点(Relative To Compiled Language):开发效率高(写一行翻译一行,错了就知道)
  • 缺点(Relative To Compiled Language):执行效率低(写一次翻译一次,每次都要请翻译)

3.3高级语言

  • 高级语言是大部分编程者的选择。和汇编语言相比,它不但将许多的机器指令合成为单条指令,并缺去掉了与具体操作相关但与完成工作的无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令,同时,由于省略很多细节,编程者也就不需要太多的专业知识。
  • 高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,像最简单的编程语言PASCAL语言也属于高级语言。
  • 高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为解释型和编译型。

3.3.1编译型

编译(Compiled)是指在应用源程序执行之前,就将源程序代码“翻译”称目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行(编译后生成的可执行文件,是CPU可以理解的二进制的机器码组成的),使用比较方便、效率比较高。但是应用程序一旦需要修改,必须先修改源代码,在重新编译生成新的目标文件(*.obj,也就是OBJ文件)才能执行,只有目标文件而没有源代码,修改很不方便。编译后程序运行时不需要在重新翻译了,直接使用编译的结果就行了。程序执行效率高依赖编译器,,跨平台性差些,如C、C++、Delphi等。

3.3.2解释型

解释(Interpreted)是指执行方式类似于我们日常生活中的“同声翻译”,应用程序员源代码一边由相应的编译器“翻译”称目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器(想运行,必须先装上解释器,就像跟老外说话,必须有翻译在场),但这种方式比较灵活,可以动态地调整、修改应用程序。如Python、Java、PHP、RUBY等语言。

name=input('请输入你的姓名')
age=input('请输入你的年龄')
if name == 'firstreed':
    print('firstreed真jb帅')
    if int(age) == 19:
        print('firstreed怎么19岁了')
    else:
        print('输入有误,请尝试,firstreed年龄19岁')
else:
    print('输入有误,请尝试,姓名为firstreed')

运行结果:

请输入你的姓名: firstreed
请输入你的年龄: 19
firstreed真jb帅
firstreed怎么19岁了

四、主流编程语言介绍

世界上的编程语言有600多种,但真正大家主流在使用的最多二三种,不同的语言有自己的特点和擅长的领域,随着计算机的不断发展,新语言在不断诞生,也同时有很多老旧的语言慢慢无人用了,有个权威的语言排名网站,可以看到主流编程语言是哪些。

下图为2019年4月份数据(https://www.tiobe.com/tiobe-index/)

4.1 C语言

C语言是一种计算机程序设计语言,它既具有高级语言的特点,邮具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被一只到大、中、小的微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的硬件的应用程序。它的应用范围广泛,具备了很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维、二维动画和动画,几杯应用比如单片机以及嵌入式系统开发。

4.2 C++

C++是C语言的继承的扩展,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面相对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

C++不仅拥有计算机高效的运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

4.3JAVA

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是有Sun MicroSystems公司于1995年5月推出的Java程序设计语言和Java平台(JavaSE、JavaEE、JavaME)的总称。Java技术具有卓越的通用性,高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔的前景。

4.4 PHP

PHP(外文名:Hypertext Preprocessor,中文名超级文本预处理器)是一种通用开源脚本语言。语法吸收了C语言、Java 和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域

4.5Ruby

Ruby 是开源的,在Web 上免费提供,但需要一个许可证。

Ruby 是一种通用的、解释的编程语言。

Ruby 是一种真正的面向对象编程语言。

Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。

Ruby 可以用来编写通用网关接口(CGI)脚本。

Ruby 可以被嵌入到超文本标记语言(HTML)。

Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby

4.6 GO

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

4.7 Python

Python是一门优秀的综合语言, Python的宗旨是简明、优雅、强大,在人工智能、云计算、金融分析、大数据开发、WEB开发、自动化运维、测试等方向应用广泛,已是全球第4大最流行的语言。

原文地址:https://www.cnblogs.com/nickchen121/p/10722720.html

Guess you like

Origin www.cnblogs.com/FirstReed/p/11696043.html