计算机语言的能力

计算机语言是程序员和计算机沟通的桥梁,旨在实现人的意志和算法。程序员

  1. 变量命名

汇编语言的变量个数是有限的,就是寄存器的数量。其余语言因为命名的限制,变量的命名也有不一样的风格。 Lisp 语系的命名最为灵活。boolean? float->int one-two 均可以用于变量的名字。算法

常量也是一种变量,只是对变量命名的一种保护,表示一旦命名,不能更改,这个保护机制不是变量自己的能力。闭包

Ruby 用首字母大写的形式命名类常量,命名空间常量。Perl 语言用前导 $ 来表示标量,也就是容纳一个固定值的容器,而 NEWLISP 则用 $ 表示全局变量。函数

  1. 局部变量

因为循环,函数的设计,须要大量的变量资源,许多变量名称被反复的使用,为了让这些变量名称彼此不冲突,许多语言使用了局部变量。Javascript 的局部变量只存在于函数的设计中,而 大部分的高级语言则在循环,闭包,类声明之间,命名空间声明之间,都自动设置了局部变量的能力。工具

也有一些语言用特殊的声明来区分全局变量和局部变量,而临时变量(Perl5中的 local )则是另一种局部变量的变种。设计

  1. 循环 几乎全部的语言都会有循环处理一段代码的能力,除了最原始的汇编语言。没有循环能力的语言是用 goto 程序指针跳转的能力来实现循环。而条件设置是全部语言的基本特性,就好像变量设计同样。甚至 Arm 汇编语言每一条语句都暗含了一个条件设置。X86的每条语句一样暗含了一个条件位的保护。指针

  2. 命名空间 命名空间是变量设计的一种演化,是高级语言的一个特性。对象

  3. 函数设计 几乎全部的语言都有函数设计的能力,但一些函数式语言为了彰显本身函数设计的能力,甚至声明不存在变量,其实这是扯淡,它们所说的消除了变量,只是消除了一个命名变量被赋值两次或以上的能力,这是做茧自缚的作法,虽然自得其乐,但却严重限制了语言的灵活性。由于这些人把程序员当成了不被信任的对象。实际上,程序员才是语言的设计者,使用者和灵魂,而不是相反。ip

计算机语言做为表达程序员思想的工具,应当有最精巧的设计,无限升级的可能。不少语言在发明的时候,就让人看到了消亡的样子,这样的语言只会是昙花一现,终将消失在计算机语言的历史长河中。资源

道可道,非长道。也许被表现出来的语言,都不是真正能长久的语言,事实真是这样吗?

相关文章
相关标签/搜索