课时11:计算机语言简介

简介: 今天分享的是计算机语言的简介,包括计算机语言的定义已经计算机语言发展历程中各种计算机语言的优缺点,主要主要分以下两个部分。1.计算机语言的定义2.计算机语言的发展历程

课时11:计算机语言简介

摘要:今天分享的是计算机语言的简介,包括计算机语言的定义已经计算机语言发展历程中各种计算机语言的优缺点,主要主要分以下两个部分。

1.计算机语言的定义

2.计算机语言的发展历程

 

01. 计算机语言的定义

 

在开始第二章“Python 入门”的学习内容之前,我们首先要进行相关文件的创建与保存操作。具体来说,通过双击的方式创建一个空白文件。由于该文件是作为一份笔记文件,为了便于管理和后续使用,在编写内容之前,需要将其保存到一个新的文件夹当中。我们新建一个名为“Lesson 02”的文件夹,然后在这个文件夹内创建一个名为“README.md”的文件,这个文件将作为“lesson 02”的 read me 文件,也就是我们“lesson 02”学习内容的笔记记录。

Python 是一种广泛应用的编程语言,而“Python 入门”这部分内容,主要是向大家介绍关于 Python 程序的一些基础知识。在深入学习 Python 之前,我们有必要先明确一个基本概念,即什么是编程语言,或者说什么是计算机语言。

计算机从本质上来说,是一种用于执行各种计算任务的机器设备,它的运行是听从人类的指令和操控的。然而,当我们直接用人类的自然语言,比如对计算机说出“开机”“关机”“打开浏览器”等指令时,计算机并不会做出相应的反应。这是因为计算机无法理解人类的自然语言,它有着自己特定的“语言体系”。就如同人类之间通过不同的自然语言(如中文、英文、日文等)进行交流,以及人类操控动物(如用特定指令控制马的行动)需要使用动物能够理解的方式一样,我们要控制计算机,就必须使用计算机能够理解的语言,也就是计算机语言,而计算机语言也被称为编程语言。我们学习编程的目的,就是为了能够运用编程语言来实现对计算机的有效控制。在日常使用计算机的过程中,我们通过鼠标进行的各种操作,虽然表面上看起来没有使用到语言,但实际上,每一个操作在计算机的底层系统中,都被转换成了计算机语言来完成相应的任务。

计算机语言和人类的自然语言在本质上并没有太大的区别,它们的不同之处主要在于交流的主体对象。人类的自然语言是用于人与人之间进行沟通和交流的工具,而计算机语言则是专门用于实现人与计算机之间交互的媒介。因此,在学习计算机语言的初级阶段,大家完全可以将其当作一门文科类的知识来学习,重点在于掌握它的语法规范。就像学习一门新的自然语言时,我们需要学习它的词汇、语法和表达方式一样,学习计算机语言时,只要把相关的语法规范理解并掌握了,就能够逐步学会这门语言,从这个角度来说,学习计算机语言并不是一件非常困难的事情。


02. 计算机语言的发展历程

 

计算机语言的发展并不是一蹴而就的,而是经历了一个逐步演进的过程,主要包括以下三个重要阶段:机器语言阶段、汇编语言阶段和高级语言阶段。

 

2.1机器语言


机器语言是计算机语言发展的最初阶段,也是最早出现的计算机语言形式。它是基于二进制编码来编写程序的。我们知道,计算机的底层运行机制决定了它只能识别二进制的“0”和“1”,所以机器语言编写的程序就是由一系列类似“101010”这样的二进制代码所组成的。机器语言的优点非常明显,由于计算机本身就是基于二进制进行运算和处理的,所以用机器语言编写的程序在计算机上执行的速度非常快。但是,机器语言也存在着很大的缺点。

对于人类来说,这些二进制代码缺乏直观性和可读性,我们很难理解这些由“0”和“1”组成的代码所代表的具体含义,这就导致了使用机器语言编写程序的难度非常大,开发效率很低。在早期,人们编写机器语言程序是通过纸带机来完成的,将代码记录在纸带上,纸带上打孔表示“1”,不打孔表示“0”,程序员需要通过判断纸带上是否打孔来确定代码内容,这种编程方式不仅繁琐,而且容易出错。随着技术的发展,如今除了在一些特殊的领域可能还会用到机器语言外,在大多数情况下,我们已经基本不再使用机器语言来编写程序了。

 

2.2 汇编语言


汇编语言是在机器语言的基础上发展而来的,它相对于机器语言来说,有了一定的进步。汇编语言采用符号来代替二进制形式的机器码。例如,在机器语言中可能用“01010”来表示某个操作或数据,而在汇编语言中,则可以用“abc”这样的符号来代替它,这样就大大提高了代码对于人类的可读性和可理解性。当我们使用汇编语言编写程序时,我们直接编写这些符号代码,而不需要再去处理那些复杂的二进制数字。但是,由于计算机只能识别和执行机器码,所以我们编写好的汇编语言程序中的符号代码,需要经过一个“汇编”的过程,将其转换为计算机能够识别的机器码,然后才能交给计算机去执行。反过来,将机器码转换为符号代码的过程则被称为“反汇编”。从本质上来说,汇编语言也属于一种符号语言,它是符号语言中最典型的一种形式。

image.png

不过,与机器语言相比,使用汇编语言编写程序还是相对麻烦一些,因为机器语言编写的程序可以直接交给计算机执行,而汇编语言编写的程序需要先经过汇编这个步骤。此外,汇编语言还有一个特点,就是它与硬件的关联非常紧密。不同的硬件厂商可能会对符号和机器码之间的对应关系做出不同的规定,也就是说,同样的符号在不同的硬件系统中可能代表不同的机器码。例如,在英特尔的硬件系统中,“abc”可能对应着一种机器码,而在 AMD 的硬件系统中,“abc”可能对应着另一种机器码。这就导致了用汇编语言编写的程序兼容性比较差,一个程序在某一种硬件环境下能够正常运行,但是如果换到另一种硬件环境下,可能就无法运行了。因此,汇编语言一般只适用于一些特定的硬件环境,在这些特定的硬件上开发程序是可行的,但是如果想要在不同的硬件上运行相同的程序,就需要针对不同的硬件重新进行开发。尽管汇编语言存在着兼容性差的问题,但是在一些特定的场景中,比如编写计算机底层的硬件驱动程序时,由于需要直接与硬件进行交互,汇编语言的这种与硬件紧密关联的特点反而使其成为了一种非常有用的工具,所以在这些场景中,我们仍然会使用汇编语言来进行编程。

 

2.3高级语言


高级语言是计算机语言发展的进一步阶段,它是在符号语言的基础上逐渐演化而来的。与汇编语言相比,高级语言与硬件之间的关系变得更加松散,或者说关联度大大降低了。高级语言的语法规则与现代英语的语法规则比较相似,这使得高级语言更加接近人类的自然语言习惯,因此也更容易被人们理解和学习。高级语言的一个显著优势就是它具有很好的跨硬件平台兼容性。

使用高级语言编写的程序,可以在多种不同的硬件系统中运行。在汇编语言中,由于符号和机器码之间的对应关系与硬件紧密相关,所以同样的符号在不同硬件中可能对应不同的机器码,这就限制了程序的通用性。而高级语言在编译的过程中,会根据目标硬件的特性,自动地将代码编译成适合该硬件的机器码形式。

例如,对于英特尔和 AMD 不同的 CPU,高级语言会分别将代码编译成能够在各自 CPU 上正常运行的机器码,从而有效地解决了程序在不同硬件上的兼容性问题。另外,高级语言的学习门槛相对较低,对于初学者来说更加友好。现在我们所熟知的很多编程语言,比如 C、C++、C#、Java、JavaScript 以及我们即将要学习的 Python 等,都属于高级语言的范畴。在计算机语言的学习过程中,高级语言是我们主要的学习对象。

关于计算机语言的基本介绍就到这里。为了帮助大家更好地理解和掌握不同高级语言之间的特点和差异,在这里给大家布置一个思考练习:分析 C 语言和 Python 语言之间有哪些区别。我们将在下节课中对这个问题进行详细的讲解和探讨,谢谢大家!

image.png

相关文章
|
SQL 算法 API
读Flink源码谈设计:图的抽象与分层
前阵子组里的小伙伴问我“为什么Flink从我们的代码到真正可执行的状态,要经过这么多个graph转换?这样做有什么好处嘛?”我早期看到这里的设计时的确有过相同的疑惑,当时由于手里还在看别的东西,查阅过一些资料后就翻页了。如今又碰到了这样的问题,不妨就在这篇文章中好好搞清楚。
851 0
读Flink源码谈设计:图的抽象与分层
|
人工智能 缓存 Linux
Confluence PDF导出中文支持
Confluence PDF导出中文支持
|
算法 Python
请解释Python中的关联规则挖掘以及如何使用Sklearn库实现它。
使用Python的mlxtend库,可以通过Apriori算法进行关联规则挖掘。首先导入TransactionEncoder和apriori等模块,然后准备数据集(如购买行为列表)。对数据集编码并转换后,应用Apriori算法找到频繁项集(设置最小支持度)。最后,生成关联规则并计算置信度(设定最小置信度阈值)。通过调整这些参数可以优化结果。
681 9
|
机器学习/深度学习 数据采集 算法
Python中的支持向量机(SVM)以及如何使用Sklearn库实现它
SVM是监督学习算法,用于分类和回归,Python中可通过Scikit-learn实现。步骤包括数据预处理、选择SVM模型(如线性或非线性,配合核函数)、训练模型找到最优超平面、模型评估、参数调整和新数据预测。Scikit-learn简化了这一流程,便于数据分析任务。
749 3
|
3月前
|
存储 缓存 关系型数据库
【MySQL】InnoDB核心架构:Buffer Pool、Change Buffer、redo log、undo log、自适应哈希索引
本文系统梳理InnoDB核心架构,聚焦Buffer Pool、Change Buffer、redo log、undo log与自适应哈希索引五大组件,深入解析其设计原理、协同机制及ACID保障逻辑,涵盖内存/磁盘分层、WAL、MVCC、冷热分离等关键设计,助力深度理解与高效调优。
|
4月前
|
存储 缓存 监控
企业接入 GPT-5.5 前要评估什么:架构、合规、成本与容灾
GPT-5.5已超越聊天接口,具备长上下文、工具调用、推理工作流等企业级能力,但随之带来权限、成本、合规新挑战。接入前须厘清架构解耦、权限审计、数据合规、分层计费与容灾备用五大核心问题。
348 0
|
7月前
|
人工智能 负载均衡 Java
企业级 Spring 应用 MCP 化解决方案
AI MCP Bridge 是一站式 Spring 应用 MCP 化治理平台,零代码将 REST Controller 升级为 MCP 服务,支持编译时元信息生成、多注册中心、动态服务发现与负载均衡,兼容 Spring Web 原生生态,助力传统应用无缝接入 AI 工具调用。
|
存储
计算机组成原理(5)----CPU的基本结构
计算机组成原理(5)----CPU的基本结构
1446 0
|
数据挖掘
【杂学笔记甲】问题分析和解决的流程及工具介绍
【10月更文挑战第2天】该文档详细介绍了问题解决的过程,包括定义问题、测量问题、分析问题、改善问题和控制问题五个阶段。在定义问题阶段,通过组建跨职能团队和运用4W1H方法明确问题;测量问题阶段则通过逻辑图和流程图等工具进行数据分析;分析问题阶段筛选关键原因并确认;改善问题阶段提出并筛选方案,进行试运行;最后控制问题阶段实施前后对比并总结经验,为后续挑战做准备。
1131 11
【杂学笔记甲】问题分析和解决的流程及工具介绍
|
移动开发 HTML5
html5+three.js公路开车小游戏源码
html5公路开车小游戏是一款html5基于three.js制作的汽车开车小游戏源代码,在公路上开车网页小游戏源代码。
641 0
html5+three.js公路开车小游戏源码