## 无极生太极
最早的计算机是图灵计算机(机械计算机),后来电学发展成熟,就出现了电子计算机,后来晶体管技术成熟,制造大规模集成电路成为可能,于是就有了我们今天方便的便携笔记本和手机。
计算机的核心是CPU,但是CPU只认识0101,图灵计算机的运算需要扳动计算机庞大的面板上无数的开关来向计算机输入信息,然后来进行运算操作,这实在是太麻烦了。电子计算机就方便很多,最早是使用穿孔纸带来编写程序,但是这也非常麻烦。
于是就发明了汇编语言,但是汇编编写大型程序还是很费力,于是发明了高级语言C语言,后来觉得C语言还不够高级,于是有C++,C#,java,后来为了适应各个领域,在特定的领域还诞生了很多语言,比如web之王的php等等。
那么问题来了:
php是基于C语言的,也就是php使用C语言写的,用C语言实现的,那么C语言是用什么实现的呢?
C语言使用汇编实现的。
好,那么汇编是用什么语言实现的。
汇编使用机器码实现的。
那机器码是用什么实现的?
这似乎陷入了一个无限循环。
* * * * *
其实这个问题要这样去思考:
假设混沌初开,上帝让你创造世界,但是只给了你一堆废铁,你要怎么做?
首先你要利用这些废铁创造出一把锤子当做工具。
但问题是,在什么都没有的情况下,利用一坨废铁创造出一把锤子是何其艰难啊。
不过没什么,尽管这第一步非常的困难,但是由于一开始这把锤子不需要造的有多好,只要能用就可以了,所以简陋一点没事。
于是经过一段时间的艰辛努力,你的付出终于换来了回报,锤子造出来了,尽管还不够好,但是造出来了就已经很了不起了。
然后你利用这把锤子来制造更多的工具,由于使用了工具之后,你造别的东西的速度就很快了。
然后,扳手,斧头,锯子,……,等等各种工具都创造出来了,这时候利用工具,你造出来的东西不光质量好,还更快。而这一切,你不会忘记都是最初的那一把烂锤子,一堆破废铁的功劳,没人比你更明白这一切,和其中的艰辛。
所以,计算机语言也是这么来的。
>[danger] 所谓实现计算机语言,或者说是发明一个语言,一般来说,至少包含两个东西:1. 语言规范,2. 语言的编译器(编译型语言叫编译器,解释型语言为解释器或者是运行环境)。
题外话:编程使用26个字母和10个数字,再加一些符号,有这些就足够了,组合起来能创造出一切!
### 参考
[第一个 C 语言编译器是用什么语言编写的?](https://www.zhihu.com/question/19934285)
> 无极生太极,太极生两仪,两仪生三清,三清化万物。
[编程语言是如何诞生的? - 知乎专栏](https://zhuanlan.zhihu.com/p/26696434)
> 因此,早期的计算机通过翻转开关进行编程。
[极简编程语言](http://mp.weixin.qq.com/s/xgVC-pI9fEVn2FT1LPPBbw)
* * * * *
使用C语言,很大程度上依赖于头文件,printf函数就是头文件提供的。
C语言的打印的函数是头文件中定义实现的,那头文件中的打印函数又是怎么实现的呢?
汇编,不是吧。这又是一个鸡生蛋,蛋生鸡的问题了。
有时间再实验,只有看头文件的源代码才能知晓了。
待续:2017-9-20 13:08:05
* * * * *
> ……其他类似的古老的语言有 FORTRAN, COBOL, LISP, BASIC, 和ALGOL 家族,这些语言的唯一不同之处在于,他们为谁设计,FORTRAN是为科学家和工程师设计的,他们在计算机上编程的目的是是为了解决问题.COBOL是为了商业设计的,最好的体现在于让商人们可以利用电脑时代.LISP是了计算机科学研究设计的,最突出的体现在计算机基本原理研究.BASIC是为初学者设计的.最后,ALGOL语言是有计算机程序员修改,演变成其他流行的语言,如C,Pascal和Java的一个庞大的家族。
作者:匿名用户
链接:https://www.zhihu.com/question/24447820/answer/123307128
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
* * * * *
[软件是用编程软件编的,编程软件又怎么来的?-悟空问答](https://www.wukong.com/question/6480260387840196877/?share_ansid=6481189367464329486&wxshare_count=1&tt_from=weixin&utm_source=weixin&utm_medium=topic_android&utm_campaign=client_share)
~~~
无极生太极,三清化万物。
让你徒手盖一栋房子你会怎么做?
首先你需要砖块,你需要铁锹等工具。
但是你只有一双手,除此之外什么都没有。
不过大自然还是有些东西供你使用的,比如沙土,石头等。
你开始可以用手挖泥土做砖。
有一天你挖到了铁矿。
甚至你学会了锻造钢铁的技术,于是你用石头捶打赤铁,得到一把简陋的铁锤。
这个过程异常艰难,不过你还是做到了。
慢慢的,用这把铁锤,你制作出了更高级的工具,铁锹之类的。
有了先进的工具,继续利用工具制作更先进的工具。你建造房子的速度就快了。
于是你的房子就建成了。
~~~
* * * * *
last update:2017-11-9 22:54:09
- 开始
- 开发工作流
- 优秀的设计资源
- 网站权限的思考
- 好习惯
- TODO
- 你就是想得太多,做得太少
- 思考
- 产品设计
- 为什么需要设计
- 使用体验
- 插画设计
- 产品价值
- 时间机器
- 有迹可寻
- 设计怎么做的高大上?
- 交互状态
- 过度效果
- 把用户体验做到极致是种什么体验?
- 用户都是没有耐心的
- 用户是小白
- 默认头像
- 用户价值的沉淀
- 专注-极致
- 简洁
- 界面的思考
- 聆听用户反馈
- 常见问题
- 匿名私密性
- 产品与心理学
- 用户心理
- 人性
- 商业
- 容错性
- 回归本真
- 权限-隐私
- 简单就是最好的
- 个性化
- 无负担使用体验
- 用户消息通知系统
- 用户私信会话系统
- 友好的提示设计
- 从细节之处让用户爱上你
- 拟人情感化
- 任务机制
- 网赚模式
- 好看的颜色
- 免费激励
- 操作记录
- 用户动态
- 回收站
- 二级密码
- 产品与人的思考
- 产品运营
- 解决方案
- 项目立项
- 鸡贼设计
- 空头支票营销法
- 阴暗设计
- 信息与大脑
- 驱动性
- 安全
- 解决方案与产品的区别以及关系
- 自动修正用户错误
- 产品研发的三个阶段
- 什么是好的产品
- 运营
- 警惕设计上的漏洞
- 心得体会
- 无极生太极
- 回归本质
- 设计可以不用那么纠结
- 业务与技术
- 开发感想
- 人生苦短,来不及找寻所有答案?
- 人活着的意义
- 谈开源
- 代码与诗
- 心理
- 困扰
- 关于纠结
- 其它思考
- 兽爷|疫苗之王
- 记录