编程语言基础

编程语言介绍

#机器语言

由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序称为目标程序。只有目标程序才能被计算机直接识别和执行。但是机器语言编写的程序无明显特征,难以记忆,不便阅读和书写,且依赖于具体机种,局限性很大,机器语言属于低级语言。
用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。
机器语言是微处理器理解和使用的,用于控制它的操作二进制代码。
尽管机器语言好像是很复杂的,然而它是有规律的。
存在着多至100000种机器语言的指令。这意味着不能把这些种类全部列出来。
以下是一些示例:
指令部份的示例
代表 加载(LOAD)
代表 存储(STORE)
...

暂存器部份的示例
代表暂存器 A
代表暂存器 B
...

存储器部份的示例
代表地址为 0 的存储器
代表地址为 1 的存储器
代表地址为 16 的存储器
代表地址为 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]

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

#高级语言
高级语言是大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,像最简单的编程语言PASCAL语言也属于高级语言。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:
编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行(编译后生成的可执行文件,是cpu可以理解的2进制的机器码组成的),使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .obj,也就是OBJ文件)才能执行,只有目标文件而没有源代码,修改很不方便。

编译后程序运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等
解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器(想运行,必须先装上解释器,就像跟老外说话,必须有翻译在场),但这种方式比较灵活,可以动态地调整、修改应用程序。如Python、Java、PHP、Ruby等语言。

机器语言、汇编语言、高级语言优缺点

机器语言
#优点是最底层,执行速度最快
#缺点是最复杂,开发效率最低

汇编语言
#优点是比较底层,执行速度最快
#缺点是复杂,开发效率最低

高级语言
#编译型语言执行速度快,不依赖语言环境运行,跨平台差
#解释型跨平台好,一份代码,到处使用,缺点是执行速度慢,依赖解释器运行

原文地址:https://www.cnblogs.com/wangsiwen/p/9089781.html

时间: 2024-10-09 11:01:20

编程语言基础的相关文章

ORACLE PL/SQL 实例精解之第二章 通用编程语言基础

通用编程语言基础 2.1PL/SQL编程基础 1. 字符类型:支持四中类型字符:字母,数字,符号和空格,组合一个或多个字符就会创建一个词汇单元 2. 词汇单元 a.标识符必须以字符开头 b.保留字是pl/sql专用词 c. 定界符只对pl/sql有特殊含义的字符(算数操作和引号) d.注解单行(--)多行(/**/) 2.1.1 利用语言组件 字符类和词汇单元相当于字母和拼写单词 2.1.2 利用PL/SQL变量 a v_a 和V_A是相同的变量名,PL/SQL不区分大小写 b. 可以使用coa

VB & VB.NET & C++ 编程语言基础

VB & VB.NET & C++ 编程语言基础 从了解VB到C#.到VB.NET 在到等级考试的C++程序设计,都有一些相同的很基础的, 这些基础的数据.运算.流程控制.函数等,在这主要结合VB.NET 的基础总结一下: 一.数据类型 这就是VB.NET 有什么东西,数据中有哪些类型. 主要的类型有: 1.数据型(Numeric) 2.字节型(Byte) 3.字符串型(Sting) 4.布尔型(Boolean) 1). Len:长整型 2).Trim:字符串左右没有空格全部去掉 3).L

JAVA编程语言基础知识点讲解

不管是对于JAVA编程的学习还是其他的编程语言,都是从零基础学起,那么就需要将所有零散的知识点整合在一起,这样系统地学习一门语言,才能更好的入门并且掌握,通过对基础知识点的学习与了解,才能更加深入的学习后续的编程代码,在成为JAVA开发工程师的道路上可以更加的顺畅. 1.关键字:其实就是某种语言赋予了特殊含义的单词. 保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词. 2.标示符:其实就是在程序中自定义的名词.比如类名,变量名,函数名.包含0-9.a-z.$._: 注意: (1)数

CentOS系统Shell编程语言基础之Bash的基础特性简介

bash的基础特性之命令历史: 命令历史:shell进程会在其会话中保存此前用户提交执行过的命令~]#history定制history的功能,可通过环境变量实现HISTSIZE:shell进程可保留的命令历史的条数HISTFILE:持久保存命令历史的文件, ".bash_history"HISTFILESIZE:命令历史文件的大小 命令用法: history [-c] [-d offset] [n]or history -anrw [filename]or history -ps ar

python 编程语言基础技术框架

python标识符身份 id方法查看唯一标示符,内存地址 >>> a = "str" >>> b = 2 >>> id(a) 140223954701072 >>> id(b) 36610848 查看变量的数据类型; >>> type(b) <type 'int'> >>> type(a) <type 'str'> 要素1:python将所有数据存为内存对

R语言入门 (有其他编程语言基础)

慢慢才意识到概率统计的重要性,当时学的时候只知道很重要,是机器学习基础啥的,但是却没有真正意识到( ╯□╰ ).我现在的理解是,统计学习可以从大数据中挖掘出规律(其实和数据挖掘还是很相关的),在科研工作和生活中都可以帮助和指导我们.生活中,我们可以通过分析数据,“透过现象看本质” (learning from data),参考大概率发生的事件,帮助我们少走一些弯路,做出正确的决策. 最开始的概率思维来自大一的近现代史老师,老师说 “为什么公司要区分985,211等学位?”,其实我当时也不是很理解

3.Python编程语言基础技术框架

3.1查看数据项数据类型 type(name) 3.2查看数据项数据id id(name) 3.3对象引用 备注Python将所有数据存为内存对象 Python中,变量事实上是指向内存对象的引用 动态类型:在任何时刻,只要需要,某个对象引用都可以重新引用一个不同的对象(可以是不同的数据类型) “=”用于将变量名与内存中的某对象绑定:如果对象事先存在,就直接进行绑定:否则由“=”创建引用的对象 变量命令规则 只能包含字母.数字和下划线,且不能以数字开头 区分字母大小写 禁止使用保留字 命令惯例 以

swift编程语言基础教程 中文版

http://download.csdn.net/detail/u014036026/7845491

python基础1--小结篇

如果有别的编程语言基础,python属于极好上手的一门语言.应用上,用“自取所需”来描述,最为贴切. 首先,放上一些推荐. 安装上: 1.python3.5.1(推荐官网直接下载,自带IDLE),安装不麻烦,记得增加环境变量即可 2.编辑器:sublime 其实,并没有使用很多,但是推荐的人超多 ,破解版网上很多,按资源下载即可 3.IDE: 强推 pycharm 对JetBrains软件执着的热爱  方便又美观 网上能找到找到注册码,学生用edu邮箱可以免费使用,当然,支持正版! 熟悉上: 语