第一篇:程序语言初识

程序是一组计算机能识别和执行的指令。


一、从计算机语言的发展演变进行分类

在这里插入图片描述

1.1 机器语言

计算机工作基于二进制,从根本上说,计算机只能识别和接受由0和1组成的指令。计算机能直接识别和接受的二进制代码称为机器指令(machine instrcution)。

机器指令的集合就是该计算机的机器语言


1.2 汇编语言

为了克服机器语言的缺点人们创造出符号语言(symbolic lannguage),它用一些英文字母和数字表示一个指令。

如:ADD A, B (执行A+B=>A,即将寄存器A中的数与寄存器B中的数相加,放到寄存器A中)。

计算机并不能直接识别和执行符号语言的指令,需要用一种称为汇编程序的软件把符号语言的指令转换为机器指令。

一般,一条符号语言的指令对应转换为一条机器指令。转换的过程称为“代真”或“汇编”,因此,符号语言又称为符号汇编语言(bolic assembler language)或汇编语言(assembler language)。

汇编语言比机器语言简单好记,但仍难以普及,只在专业人员中使用。


机器语言汇编语言是完全依赖与机器的特性的,是面向机器的语言。由于它”贴近“计算机,故称为低级语言(low level language)。


1.3 高级语言

为了克服低级语言的特点,高级语言应运而生。FORTRAN语言是第一个诞生的高级语言。1956年,美国的计算机科学家巴科斯设计出了FORTRAN语言,并首先在IBM公司的计算机上实现应用。由此开创了高级语言时代的到来。FORTRAN语言具有简洁、高效性,是科学和工程计算的主流语言。

计算机也是不能直接识别高级语言的,也要进行“翻译”。用一种称为编译程序的软件把高级语言写的程序(称为源程序(source program))转换为机器指令的程序(称为目标程序(object program)),然后让计算机执行机器指令的程序,最后得到结果。

高级语言的特点:

  • 为省去编程时候的不必要的操作细节,节省代码量,可读性强,维护性强,更贴近人性化;
  • 高级语言的一个语句往往对应多条机器指令。

常见的低级语言有:机器码、汇编语言;
常见的高级语言有:c,c++,java,python,PHP,c#,Ruby,go,kotlin,swift等;
高级语言与低级语言的区别:高级语言大部分不能直接更硬件打交道,这使得相对来的程序运行速度降低,总之一句话来说那种语言更接近人性化的语言就更高级。


二、从高级语言的差异进行分类

除了通过将语言以接近人性化的成都分为高级语言和低级语言外,还可以针对语言真身的特点进行多种不同的分类


2.1 动态类型与静态类型

动态性语言:是指在程序运行期间才给变量指定数据的类型,常见于python和Ruby;
静态类型:静态语言与动态语言则恰好相反,在写程序代码的时候就要指定变量的类型,这种语言有:c,c++,java

例如:

int a = 123; #c语言中定义变量必须指定变量类型,如果赋值时类型不匹配就会报错
a = 'ABC';  #python中不需要指定变量类型,任何类型的值都可以赋值给该变量

2.2 强制类型与弱类型

强制类型: 我们可知C语言中,一个变量只能定义为一种类型,如float类型,那么它就只能是float类型而不能在不发生转化的情况下赋予int类型,这就是 强制类型 的具体体现。

弱类型: 而python不是,python中的变量可以任意的复制,而没有类型的界限。这就是弱类型

强制类型更严谨,更不容易出现错误;但弱类型的语言写起来更优雅,更舒畅


2.3 编译型、解释型、半编译半解释

对于源程序,编译型语言在执行程序中会将源文件一次性的转化为机器码,而解释型语言是边编译边解释;
编译型语言是离不开解释程序的,这也导致了解释性语言对于运行时候的速度比价慢,解释型语言只要有解释器,移植起来比较方便,而编译型语言则要对于不同的系统进行编译,是的工作繁琐,且在调试程序的时候比较慢

编译型语言可见于c,c++等;
解释型语言可见于python,JavaScript,Perl,shell等;

而java是半编译半解释型的语言,java会将源文件在jVM中转化为字节码,即.class文件,在程序运行的时候转化为二进制文件。和C#中的.net有点区别,C#编译的成的.net目标代码,接近与二进制文件,可移植性没有java好,java是“一次编译,到处执行”,c#是“一次编码,到处编译”。


2.4 面向对象型与面向过程型

面向过程:面向过程是决定该怎么铺成一条路到达终点;
面向对象:面向对象是要用那些具有特定功能的像来做,两者是不同的思想。

c++是部部分面对对象的,java具有封装性是完全面对对象的,c语言是面对过程的语言


参考文章:

【1】计算机程序与计算机语言
【2】计算机和编程语言的发展历史
【3】计算机语言的几种分类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值