语言是人类思维的文字表现 。有的人语言条理清晰 , 有的人杂乱无章 , 难以一概而论 , 其中所包含的信息量也不一致 。我们从小学就接受语文训练 , 反复练习每句中心词是什么?段意是什么?中心思想是什么?这种训练就是帮助我们建立起语言所包含语义的逻辑性 , 才能保证对方能够顺利地接受信息所包含的语义 。
我们所训练的这种表达就是一种算法 , 大家可以试着想象一下你周围的人算法处理能力 , 有的人啰哩啰嗦说不清楚 , 有的人词义准确、逻辑清晰、言简意赅、没有废话 , 这种人对这件事情的算法能力就很强 。
如何衡量一段文字所包含的信息量呢?前苏联科学家柯尔莫洛夫提出了信息量度量的新方法:除了基于组合和基于概率方法之外 , 他提出了基于最短程序长度的信息量度量方法 。算法信息论的代表 。
文章插图
柯尔莫洛夫发明了算法信息论
例如我们说:3.1415926..........和说一个pai“
文章插图
”在本质上是一样的 。
后面大家有机会可以深入了解熵这个概念 , 算法就是逆熵操作 , 算法的效率就是算法逆熵的能力大小 。
2、算法=控制+逻辑他发明了逻辑编程 , 他的学生研制了Prolog的编译器 。我们把公式代入:
英国计算机大师Robert Kowalski
文章插图
控制就是指程序将按照什么样的流程和顺序进行计算 。
顺序有简单的 , 也有非常复杂的 。例如人机交互的流程就比较复杂:
文章插图
复杂的控制过程
【一文看懂编程的本质,程序员有前途么?】控制就是指程序的计算步骤 , 先算什么 , 后算什么 , 如何跳转 , 如何回退 。
逻辑就是指数据结构按照什么规律如何相互影响 。
当翻开欧几里的《几何原本》这本书时 , 所有人都会立刻产生仰慕感 。这本距今2000多年前的书从定义出发 , 点、线、面逐步推进 , 明确了本书涉及到的公设 , 明确了其中的公理(不言自明的道理) , 然后就将我们初高中所学几何知识几乎一网打尽 。
文章插图
你的几何应该没有2500年前的欧几里得好
是的 , 我们初中、高中学的几何学就是典型的逻辑 。
1879年 , 德国科学家弗雷格出版了《概念文字》一书 , 这本书的副标题是”一种模仿算数语言构造的纯思维的形式语言” 。弗雷格的语言对于我们来说就很熟悉了 , 我们在大学数学中用到的很多符号 , 如存在
文章插图
, 任意等符号
文章插图
, 都是源自于这本书 。
傅雷格奠定了逻辑学的基础 , 罗素等人完善了命题逻辑和一阶逻辑 , 再往后冯诺依曼、图灵、邱奇、麦卡锡、巴克斯等人发明了计算机 。是的 , 这些人都是与世无双的逻辑学家 , 确切地说是数理逻辑学家 。
文章插图
数理逻辑发展简史
编程的本质是把人的思想变成计算机可执行的机器代码 。程序员工作的本质是什么?说到这里 , 很不幸 , 应该你已经猜到了?
程序员的工作性质的本质是翻译 , 把人类的思想需求翻译成机器可执行的代码 。任何高级语言都是用来表达思想的 。高级语言都会被翻译成机器语言 , 驱动计算机去执行 。
文章插图
程序员的本质
因此 , 你可以认识到软件的世界中有两个实质性的内容:思想和机器语言 。思想是我们希望计算机做什么?当前软件从业者:从业务人员、项目经理、架构师、程序员、测试人员、实施人员 , 他们都有一个共同的工作性质:翻译 。就是把思想翻译成机器语言 。
推荐阅读
- 一文掌握SQL基础
- 一文讲透 Python 协程
- 一文带你搞定TCP滑动窗口
- 交换机组网与PON组网哪个好?一文了解清楚
- 阿里架构师整理的 Netty 学习笔记之:Java NIO 网络编程
- 一文看懂"async"和“await”关键词是如何简化了C#中多线程的开发过程
- 一文看懂“超融合”和“虚拟化”的区别
- 获得网络安全工作所需的 5 种编程语言
- 踏上编程之路的必经之路之html篇
- 一张图看懂私域流量的底层逻辑