10 编程语言解析
[美] 保罗•格雷厄姆
所有机器都有一张操作命令清单,让你可以控制它。有时这个清单非常简短。电水壶就只允许两种操作:打开和关闭。CD 播放器稍微复杂点,除了打开和关闭以外,还能调节音量、播放、暂停、快进、快退和随机播放等。
计算机和其他机器一样,也有一张操作命令清单。比如,可以命令计算机把两个数相加。这种操作命令的总和就是计算机的机器语言。
机器语言
在计算机刚被发明的时候,所有程序就是一条条机器语言的命令。没过多久,程序就改成使用汇编语言了,它要比机器语言写起来稍微方便一点。命令清单还是一样的,就是每个命令换了一个更人性化的名字。机器语言的加法命令是 11001101,这可能就是计算机内部的加法表达方式,但是在汇编语言中,这条命令就改成了add。
机器语言和汇编语言的共同问题就是,只能让大多数计算机做一些很简单的事情。假定你想让计算机的蜂鸣器响 10 次,但是不存在一条直接的机器语言命令让计算机重复进行n次操作,所以只能用机器语言写出下面这样的程序:
a 将数字10存入内存地址0
如果内存地址0的值为负数,跳到b行
蜂鸣器发出声音
将内存地址0的值减1
跳到a行
b ……程序的其他部分……
如果只是为了让蜂鸣器响 10 次就不得不写这么多代码,不难想象写出一个文字处理器或电子表格将是一项多么浩大的工程。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
![](https://static001.geekbang.org/resource/image/d0/e4/d0880927e2a522a038be2d04bf19dfe4.png)
编程语言的发展历程和现状展现了技术的不断进步,从机器语言到高级语言的演进使编程变得更加便捷和灵活。高级语言的强大命令使程序更简洁易读,也更具可移植性。开放源码的软件增强了软件的可控性和可靠性。大多数程序员现在使用高级语言编程,而不同的高级语言适用于不同的开发需求。文章还提到了开放源码的优势,以及程序员对于不同语言的偏好和争论。高级语言比汇编语言更接近人类语言,而某些高级语言又比其他语言更进一步。抽象能力强的语言有可能走错方向,而低层次语言则更关注效率问题。语言设计者之间的分歧在于,有些人认为编程语言应该防止程序员干蠢事,另一些人则认为程序员应该可以用编程语言干一切他们想干的事。静态类型语言与动态类型语言之争、面向对象编程等也是当前热点争论。最近出现了很多新的编程语言,这种现象被称为“编程语言的文艺复兴”,并且导致了语言的多样化。文章指出,程序员活在这个文艺复兴时代可能是一件好事,因为如果所有人都使用同一种编程语言,反而可能是坏事。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《黑客与画家》
《黑客与画家》
立即购买
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论