当前位置:网站首页>编程语言是什么
编程语言是什么
2022-07-31 22:38:00 【JIeJaitt】
其实,程序指的就是一系列指令,用来告诉计算机做什么,而编写程序的关键在于,我们需要用计算机可以理解的语言来提供这些指令。
虽然借助 Siri(Apple)、Google Now(Android、Cortana(Microsoft)等技术,我们可以使用汉语直接告诉计算机做什么,比如“Siri,打开酷狗音乐”,但使用过这些系统的读者都知道,它尚未完全成熟,再加上我们语言充满了模糊和不精确因素,使得设计一个完全理解人类语言的计算机程序,仍然是一个有待解决的问题。
为了有效避开所有影响给计算机传递指令的因素,计算机科学家设计了一些符号,这些符号各有其含义,且之间无二义性,通常称它们为编程语言。编程语言中的每个结构,都有固定的使用格式(称为语法)以及精确的含义(称为语义)。换句话说,编程语言指定了成套的规则,用来编写计算机可以理解的指令。习惯上,我们将这一条条指令称为计算机代码,而用编程语言来编写算法的过程称为编码。
本教程要讲解的 Python就是一种编程语言,除此之外,你肯定也听说过其他一些编程语言,如 C、C++、Java、Ruby 等。至今,计算机科学家已经开发了成百上千种编程语言,且随着时间演变,这些编程语言又产生了多个不同的版本。但无论是哪个编程语言,也无论有多少个版本,虽然它们在细节上可能有所不同,无疑它们都有着固定的、无二义性的语法和语义。
以上提到的编程语言,都是高级计算机语言,设计它们的目的是为了方便程序员理解和使用。但严格来说,计算机硬件只能理解一种非常低级的编程语言,称为机器语言。
比如说,让计算机对 2 个数做求和操作,那么 CPU 可能要执行以下指令:
- 将位于内存空间位置在 2001 的数加载到 CPU 中;
- 再将位于内存空间位置在 2002 的数也加载到 CPU中;
- 在 CPU中,对这 2 个数做求和操作;
- 将结果存储在位置为 2003 的内存空间。
可以看到,对 2 个数执行求和操作需要做这么多工作,且这还只是笼统地描述,实际会更加复杂。
而使用 Python 这样的高级语言,对 2 个数求和可以很自然地用 c = a + b 表示,但由此带来的问题是,我们需要设计一种方法,将高级语言翻译成计算机可以执行的机器语言,有两种方法可以实现,分别是使用编译器和解释器。
使用编译器将自身等效转换成机器语言的高级语言,通常称为编译型语言;而使用解释器将自身转换成机器语言的高级语言,称为解释型语言,Python 就是解释型编程语言的一种。
关于编译型语言和解释型语言的含义和区别,有机会会进行详细介绍。
边栏推荐
- Unity-LineRenderer显示一条线
- 面试突击69:TCP 可靠吗?为什么?
- SQL injection Less38 (stack injection)
- HTC使用官方固件作为底包制作rom卡刷包教程
- BOW/DOM (top)
- 【Acwing】第62场周赛 题解
- Federated Learning: Multi-source Knowledge Graph Embedding in Federated Scenarios
- Document management and tools in the development process
- 【FPGA教程案例43】图像案例3——通过verilog实现图像sobel边缘提取,通过MATLAB进行辅助验证
- How to import a Golang external package and use it?
猜你喜欢
ThreadLocal
Audio alignment using cross-correlation
基于simulink的Active anti-islanding-AFD主动反孤岛模型仿真
Daily--Kali opens SSH (detailed tutorial)
C#中引用类型的变量做为参数在方法调用时加不加 ref 关键字的不同之处
[NLP] What is the memory of the model!
Go mode tidy reports an error go warning “all” matched no packages
Daily practice——Randomly generate an integer between 1-100 and see how many times you can guess.Requirements: The number of guesses cannot exceed 7 times, and after each guess, it will prompt "bigger"
新产品如何进行网络推广?
不知道该怎么办的同步问题
随机推荐
【ACM】2022.7.31训练赛
Douyin fetches video list based on keywords API
TestCafeSummary
Unity - by casting and cloning method dynamic control under various UGUI create and display
Weekly Summary
【Acwing】第62场周赛 题解
Commonly used security penetration testing tools (penetration testing tools)
【FPGA教程案例43】图像案例3——通过verilog实现图像sobel边缘提取,通过MATLAB进行辅助验证
Handwritten a simple web server (B/S architecture)
#yyds dry goods inventory# Interview must brush TOP101: the entry node of the ring in the linked list
Chapter VII
Bionic caterpillar robot source code
VOT2021比赛简介
Several methods for deleting specified elements in Golang slices
什么是客户画像管理?
Pytest first experience
UVM RAL model and built-in seq
Several methods of mysql backup table
Document management and tools in the development process
二叉树非递归遍历