程序设计语言之机器语言、汇编语言、高级语言

2024-02-10 13:44

本文主要是介绍程序设计语言之机器语言、汇编语言、高级语言,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

程序设计语言

程序设计语言分类

计算机语言是程序设计最重要的工具,它是指计算机能够接收和处理的、具有一定格式的语言。

从计算机诞生至今,计算机语言已经经历了机器语言汇编语言高级语言这三个阶段

机器语言

第一代计算机语言是机器语言,它是计算机诞生和发展初期使用的语言。机器语言是由0和1组成的二进制代码,每一串二进制代码叫做一条指令。一条指令规定了计算机执行的一个操作。一台计算机所能执行的指令的集合,叫做指令系统,不同型号的计算机的指令系统不同。因此,机器语言是依赖于计算机硬件设备的,不同的计算机设备有不同的机器语言。因此,在一种类型的计算机上编写的机器语言程序,不能在另一种不同类型的计算机上运行。

这种语言编程质量高、所占空间少、执行速度快,机器语言是计算机唯一能够直接执行的语言,但不易学习和修改,且不同类型机器的机器语言不同,只适合专业人员使用,现在几乎已经没有人用机器语言直接编程了。

汇编语言

第二代计算机语言是汇编语言,它采用一定的助记符来代替机器语言中的指令和数据,又称为符号语言。它开始于20世纪50年代初,用助记符来表示每一条机器指令,如用ADD表示加法,用SUB来表示减法等。这样,每条指令都有明显的符号标识。汇编语言与机器语言相比,比较直观和便于识别记忆,但它仍是面向计算机的语言,要求编程人员对计算机硬件较熟悉,而且这种语言通用性差,不同的主机其汇编语言不同。用这种语言编程序,仍然是相当繁琐的。

汇编语言在一定程度上克服了机器语言难读难改的缺点,同时保持了其编程质量高、所占存储空间少、执行速度快的优点。故在程序设计中,对实时性要求较高的地方,如过程控制等,仍经常采用汇编语言。该语言也依赖于机器,不同的计算机一般也有着不同的汇编语言。汇编语言编制的程序称为汇编语言源程序

我们把机器语言和汇编语言统称为低级语言

高级语言

第三代计算机语言是高级语言。用高级语言编写的程序易学、易读、易修改,通用性好,不依赖于机器。

高级语言是面向用户的、基本上独立于计算机种类和结构的语言。其最大的优点是:形式上接近于算术语言和自然语言,概念上接近于人们通常使用的概念。高级语言的一个命令可以代替几条、几十条甚至几百条汇编语言的指令。因此,高级语言易学易用,通用性强,应用广泛。高级语言的种类繁多,如面向过程的Fortran、Pascal、C等,面向对象的C++、Java、Visual BASIC等,可以从应用特点和对客观系统的描述两个方面对其进一步分类。

从应用角度分类

从应用角度来看,高级语言可以分为基础语言、结构化语言和专用语言。

基础语言:也称通用语言。它历史悠久,流传很广,有大量的已开发的软件库,拥有众多的用户,为人们所熟悉和接受。属于这类语言的有 FORTRAN、COBOL、BASIC、ALGOL等。

结构化语言:20世纪70年代以来,结构化程序设计和软件工程的思想日益为人们所接受和欣赏。在它们的影响下,先后出现了一批很有影响的结构化语言,这些结构化语言直接支持结构化的控制结构,具有很强的过程结构和数据结构能力。PASCAL、C、Ada 语言就是突出代表

专用语言:是为某种特殊应用而专门设计的语言,通常具有特殊的语法形式。一般来说,这种语言的应用范围狭窄,移植性和可维护性不如结构化程序设计语言。随着时间的发展,被使用的专业语言已有数百种,应用比较广泛的有 APL语言、Forth 语言、LISP 语言等。

从客观系统的描述分类

从描述客观系统来看,程序设计语言可以分为面向过程语言面向对象语言

面向过程语言:以“数据结构+算法”程序设计范式构成的程序设计语言,称为面向过程语
言。前面介绍的程序设计语言大多为面向过程语言。

面向对象语言:以“对象+消息”程序设计范式构成的程序设计语言,称为面向对象语言,比较流行的面向对象语言有 Visual Basic、Java、C++等

三种计算机语言的特点对比如表所示

语言种类可读性可移植性执行速度能否被计算机直接执行
机器语言
汇编语言较好较快不能
高级语言不能

这篇关于程序设计语言之机器语言、汇编语言、高级语言的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/697254

相关文章

C语言线程池的常见实现方式详解

《C语言线程池的常见实现方式详解》本文介绍了如何使用C语言实现一个基本的线程池,线程池的实现包括工作线程、任务队列、任务调度、线程池的初始化、任务添加、销毁等步骤,感兴趣的朋友跟随小编一起看看吧... 目录1. 线程池的基本结构2. 线程池的实现步骤3. 线程池的核心数据结构4. 线程池的详细实现4.1 初

Python中列表的高级索引技巧分享

《Python中列表的高级索引技巧分享》列表是Python中最常用的数据结构之一,它允许你存储多个元素,并且可以通过索引来访问这些元素,本文将带你深入了解Python列表的高级索引技巧,希望对... 目录1.基本索引2.切片3.负数索引切片4.步长5.多维列表6.列表解析7.切片赋值8.删除元素9.反转列表

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而

C语言:柔性数组

数组定义 柔性数组 err int arr[0] = {0}; // ERROR 柔性数组 // 常见struct Test{int len;char arr[1024];} // 柔性数组struct Test{int len;char arr[0];}struct Test *t;t = malloc(sizeof(Test) + 11);strcpy(t->arr,