首页 > 编程语言 >编程语言是什么?

编程语言是什么?

时间:2022-11-03 20:57:29浏览次数:67  
标签:编程语言 r2 什么 翻译器 指令 人类 r1

大家好,我是metahuber,数字宇宙探索者。

本系列教程是Python的入门教程,本篇文章是此教程的第一篇,希望大家多多关注。

在学习Python之前,我们首先了解下什么是编程语言。

说到编程语言,还需要从程序说起。

其实,程序就是一系列指令,计算机之所以能够工作,根本的原因是它能够识别人类发出的指令。目前你看到关于计算机的所有内容,包括网站、视频、搜索引擎等等,归根结底都是计算机执行人类指令产生的结果。

也就是说,计算机本身是什么也做不了的,只有人类编写好指令后,计算机按部就班地去执行指令,才能真正工作起来,从而产生有价值的内容。

所以,你也许也发现了,这其中最关键的就是那一系列指令串,而我们人类编写指令串的过程就是称为编程。

所谓编程语言,那“语言”又是什么东西?

众所周知,计算机只认识0和1这种二进制数字,我们可以称之为机器码,也就是机器语言。这也意味着,人类需要将指令编写为机器语言,才能够让计算机工作。但机器语言与人类语言差异太大,不符合人类的语言习惯,人类想要阅读并理解机器码是相当困难的。

于是乎,计算机科学家们想到个折中的办法,他们在机器语言和人类语言之间做了一层翻译器。这个翻译器十分关键,我们后续文章还会提到。有了这个翻译器,人类就可以用习惯上的人类语言逻辑去编写代码,编写完成后,翻译器再把代码翻译成机器语言,这样,人类与机器之间就可以顺畅交流了!

当这套解决方案产生后,人们很快就在上世纪50年代设计出了一套编程语言,也就是汇编语言,它也是第二代计算机语言(第一代就是机器码)。汇编语言设计了一套人类易于理解和记忆的缩写单词,用来代替一些特定的指令,通过这种方法,人们就很容易去阅读和理解程序执行的功能了,对现有程序的bug修复和运行维护也都变得更加简单方便了。

.section .text
.global _start
    _start:
    .ARM
    add r3, pc, #1
    bx r3
    .THUMB
    mov r0, #2
    mov r1, #1
    sub r2, r2, r2
    mov r7, #200
    add r7, #81
    svc #1
    mov r4, r0
    adr  r1, struct_addr
    strb r2, [r1, #1]
    strb r2, [r1, #4]
    strb r2, [r1, #5]
    strb r2, [r1, #6]
    strb r2, [r1, #7]
    mov r2, #16
    add r7, #1
    svc #1
    nop

汇编语言

后来随着计算机的发展,汇编语言渐渐满足不了不同领域的编程要求和软件功能,于是C语言、C++、Java这种高级语言相继横空出世,这些语言的语法、结构相对于汇编语言更加成熟,也更易于理解了。

编程语言发展到现在,计算机科学家们已经开发了成千上百种编程语言,而且随着时间的演变,这些编程语言又产生了很多不同的版本。但无论是什么编程语言,也无论有多少个版本,虽然它们在细节上有所不同,但它们的核心逻辑都是相同的。这也是为什么当程序员学会一门编程语言后,再学习其他语言会非常快的原因。

说到编程语言的核心,具体来讲就是编程语言制定了一套规则,在这套规则下,每种编程语言都拥有固定的关键字(缩写单词)、使用格式(称为语法),以及精确的含义(称为语义)。当然,编程语言肯定没有你学习一门外语那么困难,这点你不必担心。

在学习Python这门编程语言之前,你可能也了解过其他编程语言,比如C,C++,Java等,就像我之前所说的,无论是什么语言,核心逻辑都是一样的,无非都是通过翻译器将这类语言翻译成可执行的机器语言。那么这套翻译器是如何设计的,它又是如何工作的,这一点我们下个章节会进行详细介绍。

原文链接:http://pythonjishu.com/whats-python/

标签:编程语言,r2,什么,翻译器,指令,人类,r1
From: https://www.cnblogs.com/metahuber/p/16855796.html

相关文章

  • 我为什么要辞掉20万的工作去读研?
    我为什么要辞掉20万的工作去读研?大家好,我是亓官劼(qíguānjié)。在【亓官劼】公众号GitHub、B站、华为开发者论坛等平台分享一些技术博文,时光荏苒,未来可期,一起加油~博主......
  • 什么是iOS?
    1.ios不能获取文本焦点 -moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none; 如有这段代码需要删掉或另做处理才能正常获取文本......
  • 为什么要建设容器云PaaS平台
    大型的企业、政府机构在小型机时代由于主机集成度高、性能稳定、数量较少,多项目集群的建设、运维尚能保持平稳。但随着系统X86化逐步推进,多项目集群中分别管理的主机、网络......
  • EasyCVR视频广场可以播放WebRTC,设备管理中却无法播放是什么原因?
    EasyCVR视频融合平台部署轻快、功能灵活,在视频能力上,可提供视频直播、录像、回放、检索、云存储、级联、告警等功能。平台可支持多协议、多类型设备接入,包括国标GB28181、R......
  • 我想不通,MySQL 为什么使用 B 树来作索引?
    二叉树红黑树哈希表BTree谈谈一个潜在的误区=========我们首先需要澄清一点:MySQL跟B+树其实没有直接的关系,真正与B+树有关系的是MySQL的**「默认存......
  • 为什么应该切换到实时渲染
    离线3D渲染对于任何设计师来说,渲染都成为项目的重要组成部分。它是设计在现实生活中构建之前的最终输出或可视化。计算机图形将正在处理的3D模型的线框转换为2D图像,使其......
  • 什么是mysql数据库?MySQL的特点有哪些?
    MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(Re......
  • javascript规范中美元符号$是什么?
    用途:一般用$获取页面中的某一个对象的id。参考:https://www.cnblogs.com/xutao1517588477/p/10582463.html>>拓展:$(function(){}),什么时候执行?https://blog.csdn.net/u0......
  • 为什么你必须链接C中的MATH库?
    原文链接为什么你必须链接C中的MATH库?如果在C程序中包含<stdlib.h>或<stdio.h>,那么在编译时就不必将它们链接起来,但是我必须使用-lm和gcc链接到<math.h>,例如:gcctest.c......
  • 原理解密 → Spring AOP 实现动态数据源(读写分离),底层原理是什么
    开心一刻女孩睡醒玩手机,收到男孩发来一条信息:我要去跟我喜欢的人表白了!女孩的心猛的一痛,回了条信息:去吧,祝你好运!男孩回了句:但是我没有勇气说不来,怕被打!女孩......