编程简单科普系列 - 什么是编程 (1)

简介: 广义上来说,编程也不仅仅是指关于计算机的范畴,现在通常也指可以diy的东西,可以通过自己想法进行自定义的东西。当然我们这里所说的是指计算机编程.因为计算机是不能直接听懂我们人说话的,没办法直接沟通,所以我们需要通过编程语言来跟计算机进行沟通,通过编程语言把我们想表达的转化为计算机能听懂的,在这里编程语言就相当一个翻译(比如,我们不会英文,准备要和一说英文的外国人谈生意,这时候就需要找一个英文翻译,替我们把想要表达的中文翻译成对方听得懂的英文。)其实严谨点这个比喻说也不准确,因为编程语言一般是需要通过编译器或者解释器编译解释之后,才能为计算机所识别. 每个计算机编程语言,都有自己的编译器或者解

什么是编程呢


编程是编定程序的中文简称,通俗点说,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。

网络异常,图片无法展示
|

广义上来说,编程也不仅仅是指关于计算机的范畴,现在通常也指可以diy的东西,可以通过自己想法进行自定义的东西。当然我们这里所说的是指计算机编程.

因为计算机是不能直接听懂我们人说话的,没办法直接沟通,所以我们需要通过编程语言来跟计算机进行沟通,通过编程语言把我们想表达的转化为计算机能听懂的,在这里编程语言就相当一个翻译(比如,我们不会英文,准备要和一说英文的外国人谈生意,这时候就需要找一个英文翻译,替我们把想要表达的中文翻译成对方听得懂的英文。)其实严谨点这个比喻说也不准确,因为编程语言一般是需要通过编译器或者解释器编译解释之后,才能为计算机所识别. 每个计算机编程语言,都有自己的编译器或者解释器,这里的编译器才是真正的翻译官,但是我们一般开发直接面对的是编程语言,除非需要对编译器或者解释器进行优化,所以为了大家能明白这里就把编程语言类比成翻译官,说白了,编程语言,跟我们所学的中英文等其他语言是一样,只不过编程语言是我们人类和计算机沟通的语言

网络异常,图片无法展示
|

计算机语言,有上千种,很多语言的出现大多都是为了解决作者当时所遇到特定的问题,我们常见的编程语言有C/C++,JAVA,PYTHON,GO,JS,PHP,C#……等等

我们编写好程序,然后编译器会把我们所写的程序转化成一系列,计算机能识别的能读懂的指令集,然后再转化为二进制,计算最底层就是二进制,我们通常用的是10进制,0-9的数字来表示逢十进一,二进制只有1和0逢二进一,对应我们电路的开和关,1代表开,0代表关。了解数字电路的同学应该更容易理解

在顶层,程序员编写出来的都是源代码。源代码可以使用各种高级语言写成,例如 c/c++ c# java python 等等;也可以使用对应平台的低级语言写成,例如汇编。想必你已经了解其中的过程了。

到这一步为止,距离最终机器可以执行的指令还有一大步要走。

首先要面临的一个问题是:源代码都是以人类语言写成的。即便是能够和机器指令一对一翻译的汇编代码,依然是人类语言。计算机无法理解其中的含义,所以不可能执行。

所以我们需要将人类语言翻译为计算机语言。计算机能听懂的语言,就叫做机器语言,简称机器码。

电脑是这么执行编程语言的: https://www.zhihu.com/question/29227521

随着现代科技的发展,人们的生活已经离不开数字电路。计算机逻辑电路是指数字电路中最基本的逻辑元件,它能按照一定的条件去控制信号的通过或不通过。基本逻辑关系为“与”、“或”、“非”三种。

电脑的基层部件是由集成电路组成的,这些集成电路可以看成是一个个门电路组成当计算机工作的时候,电路通电工作,于是每个输出端就有了电压。电压的高低通过模数转换即转换成了二进制:高电平是由1表示,低电平由0表示。也就是说将模拟电路转换成为数字电路。这里的高电平与低电平可以人为确定,一般地,2.5伏以下即为低电平,3.2伏以上为高电平.所以编程语言最后转化为电信号,计算机处理数据的时候,展示给我们的是数字的变化,这背后实质是各种元器件之间的电信号的变化


计算机为什么选择二进制:

(1)易于物理实现    

因为具有两种稳定状态的物理原件是很多的,如门电路的导通与截止,电压的高与底,而他们恰好对应表示1和0两个字符。假如采用十进制,要制造具有10种稳定状态的物理电路,那是非常困难的。

(2)二进制数运算简单    

数学推导证明,对R进制算术的求和、求积规则各有R(R+1)/2中。如采用十进制就有55种求和与求积的运算规则;而二进制仅各有三种,因而简化了运算器等物理器件的设计。

(3)机器可靠性高    

由于电压的高低,电流的有无等都是一种质的变化,两种状态分明。所以基2码的传递抗干扰能力强,鉴别信息的可靠性高。

(4)通用性强    

基2码不仅成功地运用于数值信息编码(二进制),而且适用于各种非数值信息的数字化编码。特别是仅有的两个符号0和1恰好与逻辑命题的两个值“真”和“假”相对应,从而为计算机实现逻辑运算和逻辑判断提供了方便。


电信号传输的概念


从信息编码的角度来说,金、鼓、灯塔、烽火台类似电报的二进制编码。电报传输的信号有两种,一种是短促的点信号(dot 信号),一种是长一点的划信号(dash 信号)。我们把“点”当成“1”,把“划”当成“0”。这样一来,我们的电报信号就是另一种特殊的二进制编码了。电影里最常见的电报信号是“SOS”,这个信号表示出来就是 “点点点划划划点点点”

比起灯塔和烽火台这样的设备,电报信号有两个明显的优势。第一,信号的传输距离迅速增加。因为电报本质上是通过电信号来进行传播的,所以从输入信号到输出信号基本上没有延时。第二,输入信号的速度加快了很多。电报机只有一个按钮,按下就是输入信号,按的时间短一点,就是发出了一个“点”信号;按的时间长一些,就是一个“划”信号。只要一个手指,就能快速发送电报。而且,制造一台电报机也非常容易。电报机本质上就是一个“蜂鸣器 + 长长的电线 + 按钮开关”。蜂鸣器装在接收方手里,开关留在发送方手里。双方用长长的电线连在一起。当按钮开关按下的时候,电线的电路接通了,蜂鸣器就会响。短促地按下,就是一个短促的点信号;按的时间稍微长一些,就是一个稍长的划信号。


本文完

以上纯属个人观点,不喜勿喷

目录
相关文章
|
4天前
|
Linux 开发工具 C++
技术笔记:RustGUI编程
技术笔记:RustGUI编程
|
15天前
|
程序员
探索代码之美:编程的艺术与实践
【6月更文挑战第16天】在数字世界的编织中,代码不仅仅是一系列指令的集合,它是思想的载体,创造力的展现。本文将带你领略编程背后的艺术,探讨如何通过技术感悟提升我们的编码实践,以及如何将这种艺术性融入我们的工作中,让代码不仅运行无误,更充满美感和效率。
|
13天前
|
存储 人工智能 算法
计算机编程:从基础到实践,探索编程的奥秘
计算机编程:从基础到实践,探索编程的奥秘
10 1
|
2月前
|
算法 程序员 测试技术
探索代码之美:我的编程哲学
【4月更文挑战第23天】 在数字化的浪潮中,编程已成为一种艺术形式。本文将分享作者在编程实践中形成的技术感悟和哲学思考。从代码的简洁性到系统的可维护性,从快速迭代到持续学习,作者将阐述如何在追求技术卓越的同时保持对生活的热爱和好奇心。这不仅是一篇关于编程技能提升的指南,更是一次关于如何以程序员身份在快速变化的技术世界中寻找定位的思考之旅。
|
2月前
|
存储 设计模式 人工智能
程序设计:原理、实践与魅力
程序设计:原理、实践与魅力
36 0
|
7月前
|
存储 Python
跟我从0学Python——掌握编程的基石
Python基础语法 —— 掌握编程的基石
|
12月前
|
算法 Unix Java
初学者值得一看:什么是编程/C语言,编程学习建议,编程解疑与误区注意
初学者值得一看:什么是编程/C语言,编程学习建议,编程解疑与误区注意
138 0
|
设计模式 算法 IDE
学好编程的 4 个秘诀
学好编程的 4 个秘诀
147 0
|
自然语言处理 Java 开发者
又见套路:如果计算机是用中文编程,你能成为计算机编程专家吗?
对质疑中文编程的一篇网文的逐条驳斥. Detailed response to a post that's questioning programming in Chinese.
1139 0
|
程序员
第3章 有趣的编程 《丰富多彩的编程世界》
第3章 有趣的编程 《丰富多彩的编程世界》 丰富多彩的编程世界 作者 陈光剑 第1章 名可名非常名第2章 语言的构成第3章 有趣的编程第4章 编程语言大观第5章 编程语言的组成第6章 编程范式第7章 编程思想第8章 编程心理学第9章 程序员这群人第10...
886 0