用之则为虎,不用则为鼠-谈编程中的变量赋值

 前一段看王立群老师的百家讲坛说史记,谈到汉朝出现的另类奇才东方朔。东方朔一生嬉笑怒骂,只被当作武帝开心的小丑,而实际上他东方朔自认为怀才不遇!他就在有名、发牢骚的文章《答客难》中,谈到对于读书人的命运、读书人的价值,可以用一句话概括,就是“用之则为虎,不用则为鼠”。一个人的价值,可能往往在于在于他的使用价值、他有多少个地方被使用,留有他空间和舞台来建功立业。在历史的长河中,我们见到更多的读书人是被弃而不用,只剩下酸酸的白菜在肚子里面,也因此产生了很多“矫情”的诗篇。
 同样,在计算机编程中也存在这样的现象,不过对应于读书人角色的对象应该是变量、函数等!例如,如果一个变量只是一味的被赋值,而不存在任何一个被用的地方,我们就可以断定,这个量是毫无用处的,可以被废除掉。更外,具有计算机专业术语地被讲到的是,关于“左值、右值”的概念,也即如果一个量只是一味地充当“左值”,而没有机会成为“右值”的话,这个量就是没有用的。看到这里,计算机编程中量的使用和我们天下苦读寒窗的读书人是多么相似乃尔?
 我们发现,这个概念实际上是可以“递归”的!对于简单情况,在一个语句块中,没有成为右值、被使用的量,我们即可以它是没有用途的。而在一个划分范围更大的概念里面,如果 “ 被赋值的左值 =引用的右值”,“被赋值的左值”在更宽泛的范围内不能成为它人的“右值”,就可以断定这拔出一系溜的藤和瓜都是没有用的。如果我们把这个概念发展下去,就会发现象树一样的伟大的“结构”!呵呵,关于树在计算机里面绝对能够算上第一把交椅的数据结构。
 变量的价值在于被使用,可以被用在协议分析、接口分析上。如果此标记在协议的前端存在,那么我们就可以猜测它必在协议的后端被使用,这样我们就可以根据这样的标记,猜到后面的一些信息。就象大话西游紫霞仙子说的名言:“我猜到了前半段,没有猜中后半段!”。在计算机编程中,我们一般意义可以假定“如果猜中了前半段,后半段也会八九不离十的。因为,在现在计算机世界里面所有的东西都是确定性的!即使以后计算机发展到的超级万能,作为可控性核型的确定性,也一定会纳入到这样的计算系统。不然人类就没有存在的价值,这样的计算系统也会成为洪水猛兽!!”
  说到协议、接口分析,让我想起邓公在20多年前的改革开放。当时,我们很多人很反对邓公刚开始的改革开放政策,实际上对于一个民族来说进步最慢的是闭关自守,特别是自己还处于落后状态的时候。发达国家对我们开放一些不很重要的前端信息,依照确定性的分析,我们也可以猜中它的后端的一些信息,这样会更有利于我们整体上的进步,可能当时看来我们是吃亏的了。。。。

你可能感兴趣的:(杂谈&随想,编程,读书,数据结构)