1.2自然的和人工的语言 BACKWARDFORWARD


语言首先被人类发明,受益于人类。在计算机科学的历史上, 有时已忘记这个事实[1]。自从一个语言学家设计了Perl语言, 它就被设计成与自然语言一样流畅。自然,对于这个有许多方面,因为自然语言同时在许多级别都能很好地起作用。我们能模拟许多这些语言规则,但最重要的语言设计规则简单地归结为:容易的事应该是容易的,而难的事应是可能实现的。这看起来是明显的,但许多计算机语言在前一种情况或后一种情况无能为力。   

  [1]更精确地是, 这个事实有时被重新想起来。

自然语言在这两方面都擅长,因为人们一直努力去表达容易的事情和难的事情,所以语言进化为能处理这两方面。Perl首先被设计成是进化的, 而事实上它已进化了。

许多人们多年来已为Perl的进化作出贡献。我们经常开玩笑,虽然一峰骆驼是由委员会设计的一匹马,但如果你仔细地想,这峰骆驼能很好地适合于沙漠生活。这峰骆驼已进化为相对自足的[2]。   

  [2]另一方面, 这个骆驼并没有成为好事情的。Perl也同样不是好事情。

现在,当有人说“语言学”,许多人想到两件事之一。或者他们想到词,或者他们想到句子。但词和句子只是易说的两个方便的方法。或者能被分解为有意义的更小的单元,或者组成更大的有意义的单元。而任何单元的意义强烈地依赖这个单元所在的语法,语义和编程的上下文。自然语言有各类词,名词,动词等。如果我单独说“狗”,你就把它作为名词,但我也能以其他方式使用这个词。即,当上下文要求时,一个名词能象一个动词,一个形容词或一个副词一样起作用。如果你在夏季假日里跟随一只狗,你将成为一个累极了的狗看守者(If you dog a dog duringthe dog days of summer,you'll be a dog tired dogcatcher)[3]。

  [3]你可能对这种语言学的目的在于博得赞美的言语感到厌倦。但我们愿意让你明白为什么Perl不同于典型的计算机语言。

Perl也根据各种不同的上下文使用词。我们后面将看到它是怎样的。只要记住,Perl象任何好听众, 明白你所说的一切。Perl也很刻苦工作以保持其生意。只要说出你所指的,Perl总能"得到它"。(当然, 出非你谈论无意义的事--Perl分析器比English或Swahili更明白Perl。)

回到名词。一个名词能命名一个特别的对象, 或它明名一类对象而不指定当前所指的某一个。大多数计算机语言使得这个是不同的,我们只把特定的事物称为值,一般的事物称为一个变量。一个值只在某个地方存在,而一个变量在其有效范围内和一个或多个值相联结。所以无论谁解释这个变量,必须跟随那个联结。那个解释可能在你的脑中,或在你的计算机中。


Copyright: NPACT BACKWARDFORWARD