1.1.编程语言
C#是一门高级编程语言
程序设计语言是人们为了描述解题步骤(即编程序)而设计的一种具有语法语义描述的记号。编程语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
在计算机角度,每一种CPU类型都有自己可以识别的一套指令集,计算机不管你这个程序是用什么语言来编写的,其最终只认其CPU能够识别的二进制指令集。
1.1.1.机器语言
在早期计算机刚发展的时代,人们都是直接输入010110这样的没有语义的二进制指令(俗称机器语言)来让计算机工作的,可读性几乎没有,没人愿意直接编写那些没有可读性、繁琐、费时,易出差错的二进制代码,所以后来才出现了编程语言(包括汇编与高级语言)
1.1.2.汇编语言
为了克服面向CPU的指令集的难读、难编、难记和易出错的缺点,后来就出现了面向特定CPU的特定汇编语言,比如我打上这样的x86汇编指令mov、ax,然后用上用机器码做的汇编器,它将会被翻译成 1000100111011000 这样的二进制01格式的机器指令;
汇编语言执行过程:
汇编语言的特点是:相对于机器指令而言,代码编写较为简单,程序被赋予了语义,对程序员友好,代码需要借助汇编器转换为机器指令,效率比机器指令略低;
汇编的实质是机器指令(机器码)的助记符,是一种低级符号语言(语义不够强),机器指令集是一款CPU的编程特征,是这款CPU的设计者制定的,CPU的内部电路设计就是为了实现这些指令集的功能。
CPU常见的架构有:arm架构,x86架构,mips架构等;汇编语言是针对某一个CPU而写的,不能编译到另一个CPU。
例如: add eax,ebx就只是X86 汇编的。而mips的,可能是add $t0,$t0,$t1
不同CPU架构上的汇编语言指令不同,不同操作系统之间的指令也可能不一样,而为了统一一套写法,同时又不失汇编的表达能力,因此高级编程语言就诞生了;
1.1.3.高级语言
用高级语言写的代码,会被编译器先转换成对应平台的汇编指令,再转成机器码,最后将这些过程中产生的中间模块链接成一个可以被操作系统执行的程序。
Java代码片段
c#代码片段
那么汇编语言和高级语言比较,我们就不需要去阅读特定CPU的汇编码,我只需要写通用的高级语言的源代码就可以实现程序的编写,我们用将更偏机器实现的汇编语言称为低级语言,与汇编相比之上的语言,我们称之为高级语言;
我们常见的一些编程语言都是高级语言,都处于汇编语言之上