momoewang 的学习日记 …..

能者劳而智者忧,无能者无所求

Archive for 十月, 2006

更多 Smalltalk 和 Squeak 的文章请访问 Smalltalk.org.cn

最近开通了 http://www.smalltalk.org.cn ,里面有最新,最全面的中文 Smalltalk 和 Squeak 的信息,请随时访问!!

14 comments

漫 谈 地 震 (作者:秦馨菱)

当 我还在西安,中科院地球物理所二部工作时,有一年夏天我到北京探亲,暂住在北京积水潭医院的西宿舍内,有一天凌晨我被碰、碰……的声音惊醒,同时我觉得似 乎有人从楼下用一根大木杠子向上捅,我一看钟那是03点40多分,我心中还继续地数着:“…13,14,15…”一直到二十几下,后来我也忘了数了。这时 由上下捅的感觉又改成左右摇动,一直摇了二三十下,我又忘了接着往下数了,只是它每摇一下,我心中就说一个“该完了吧,该完了吧……”。事后估计总共摇动 了三四十下,摇动的方向大约是西北至东南,这时我的女儿和爱人也都起来了站在我床近旁,他们问:“这是怎么回事?”,我回答说:“可能是某处发生了地 震”。这时已经不摇动了,三人各拿了一个小板凳一同走出屋子,到医院的广场内暂坐。过了一会附近许多居民来看急诊,他们有的是自已走来的,有的是别人陪着 来的,有的人是头被落物打伤了,有些则是头上或臂上被砸伤的,逐渐地自已走着来的伤号就渐少了,而由人抬来或用车送来的伤号就渐多了,经打听我们知道是唐 山发生了地震,那是1976年7月28日。

回忆1975年2月4日辽宁省海城曾发生7.3级地震,那次地震震前发生小震很多,并首次向全世界表明地震是可以预报的,但这次唐山地震则未能预报出来,这表明地震是很复杂的自然现象,尚须我们继续加以研究。

地 震是怎样发生的呢?要说明这个应先谈一下地球的结构,地球可以大致比作一个鸭蛋的外壳,再往里是地幔,就好像鸭蛋的蛋青;最里面是地核好像鸭蛋的蛋黄。地 震都是发生在地壳里面,地壳中的岩石受到构造力的作用被挤压而变曲,倘如这个力很大,大于岩石的强度,岩石就会断裂或破裂,这就发生地震,这个震动以波动 的形式向外传播,倘如传到地面,大的震动人能感觉到,小的得用灵敏仪器才能感觉到。地震是非常多的,全球一年约有500万次,但多数是很小的,仅有约百分 之一的地震才能感觉到。

地震发生之后得用灵敏度的仪器才能感知并把它记录下来,世界上第一个这种地震仪是我国后汉时的张衡于公元132年发明的,很可惜其构造已经失传。

感 觉及记录地震的仪器叫地震仪,其主要和最根本的部分是传感地动的“摆”,它是一个可作为标准的静止不动的物体,平常都是用惯性较大的物体,例如,一个很重 的铁锤,当地震来时地和附近的房子动,而铁锤它不动,把此摆相对地面运动的信号设法记录下来。这个相对运动是可以用一套轻的杠杆加以放大,或把这个相对运 动变成电磁信号,(如一个线圈在一个磁场中的运动所产生的感应电流),把这个电流的变化经适当的放大之后用检流计把它记录下来。现在再回头来说一下重锤, 这是要看你用什么方法记录及放大倍数多大。假如你用一套杠杆放大,并用笔尖在熏烟的纸上作记录,则笔尖和纸的磨擦经杠杆放大,其实是缩小了之后,这磨擦力 就很大了,所以重锤也应作得较大。在南京的北极阁地震台的大维歇尔地震仪的锤重为17t(号称20t,是属于20t级的)。假如你是用光点在照相纸上作记 录那就没有什么磨擦,则锤重可以作得很小,例如1kg以下就很够用了。假如地震仪的重锤(平常叫摆)离记录部分较近,用电线把讯号送过去就行了;假如摆离 记录器较远,例如在一个电信传输的台网内,则摆与记录器可以相隔几10km,则为了加强在传输过程中的抗干扰性,有时需要先把地震信号(它是一种低频的交 流讯号)数字化一下。

地 震之前有时出现某些特异现象,它们与地震有关,这些现象叫做地震前兆。如重力的变化、地磁场的变化、地应力的变化。一个常见的现象是地下水位的变化,还有 和这个相连的如井水温度的变化、井水冒泡等等。温度(气温)的变化也是一种前兆,海城地震时(那是冬天)有蛇出洞,即本来它们应该蛰伏在地下的,但因地震 前地下的温度变高了,它们误认为到了天暖的节季了,就从地下出来了(可是那时是冬天,外面还很冷,有的蛇出来之后就被冻僵了)。震前有些别的动物行为的异 常可能也是和气温有关的,也有的则和地下冒出的气体的气味有关。有些地方还总结出了一些顺口溜如:“小震闹、大震到”等,它们代表着劳动人民总结出来的自 然规律。当某处发生上述的前兆之时,应对它加以注意,查明其理由,以证明是否本地将发生地震。

倘 若有人对你说,你们这里要发生地震,我们觉得你应仔细听听他是怎样说的,他是听谁说的,这个说法是从哪里来的?是从一个很有权威性的单位传出来的,还是从 街上一般的路人那儿传来的。这种传言一般是由于好奇或是兴奋,往往有越传越夸大的情况。例如有人在街上看见两三个老鼠跑,传了几次或几个人之后,可能就说 成一群老鼠在街上跑了,……再往下传可能就变成一大群老鼠在街上跑了……。所以听到各种说法之后,不要一下子就信以为真,要仔细听听,并加以分析,最后再 判断它是否可信。

地 震是一种突然发生的自然现象,有时还可能造成人员的伤亡及财产的损失,因而地震能不能预报是大家很关心的问题。已经发生的地震有些在它发生之前已作了预 报,但还有很多则未能作出预报。我们认为地震之前是有许多前兆,如事前对这些前兆加以注意,加以研究是有可能作出预报的,但地震预报这个问题还未完全解 决,还须继续研究,人类预报地震的能力是会逐渐提高,地震预报的问题是迟早可以解决的。

地 震也有它有用的一面,它可以帮助人们了解地球内部的情形。夏天买西瓜的人常用手把西瓜拍几下,凭这声音可以知道这个瓜是否熟了。地震时我们记录下地震波在 地球内传播的情形,也可以了解地球内部的情形。例如现在我们知道地球外面有一层岩石其厚度各处不一,我们算它平均约8km厚吧。再往里直到2900km深 处是地幔,它是一个潜在的流体,平常因它是处在高温和高压之下,看上去似乎是固体的,但如果这个高压一去,它立刻就表现为液体,可以流动。它主要由四种元 素组成,即:氧、硅、铁、镁。简言之地漫之组分有点像石质的陨石。再往下,即从2900km深处直至地心是地核(地核半径为3471km)。现在的研究我 们知道地核又分为两层,从地心算起到1300km是内核,内核是固体的,其成分主要为铁、镍等。再住外至2900km深处为外核,其厚度为2170km, 此外核是潜在液体的。这些数据都是从地震倒着算出(又叫反演)来的。要研究地震很多问题是靠计算(特别是反演),所以高速计算机是必不可少的。

No comments

对象通过消息通讯

在 Smalltalk 里,对象通过发送给另一个对象消息来使某事发生。对象如何响应特定的消息,是由对象所属的类决定的;很重要的是,并非任何对象都能对任意消息成功响应。一个对象可以理解的消息集合及其对这些消息的响应,决定了 Smalltalk 系统中对象的行为。

所有对象知道它自己可以理解的消息集合。这个消息集合由对象所属的类来管理的。

下面是一些典型的消息实例:

  • +
  • -
  • new
  • show
  • exit
  • includes:
  • asSortedCollection

你可以用 Smalltalk 语言创建对象和发送消息给它。打开一个新的工作空间,你可以通过运行下面每行代码,来查看结果。

3+4

‘Hello world’ reverse

5 factorial

No comments

什么是对象?

从最简单的层次上来说,对象不过是一片内存区域,它包含着描述对象状态的数据字节。例如,代表文本字符串“ hello ”的对象,包括下述字节:

104 101 108 108 111

当然,这里的每个字节代表字符串里的每个字符。然而,每个对象都包含额外的信息,让它知道自己是什么类型的对象。这里不讨论这些信息是如何编码成为对象的一部分的,但它非常重要,对象要借助它才知道自己具有什么样的行为。例如,我们有两代表数字的对象,则我们就能够从一个对象减去另一个对象;然而对于两个代表字符串的对象来说,就没法进行简单的减法操作。正因为数字对象知道自己是个数字,所以它才知道减法是其相关操作,并知道如何处理这个操作。

在 Smalltalk 里,

  • 一切都是对象;
  • 对象知道自己是什么类型的对象,或者隶属于什么类( class )。

在 Smalltalk 的语法里,类( class )是一个非常重要的概念。对象所隶属的类让它知道自己的行为方式。

提示:“在 Smalltalk 里一切都是对象”的意义是非常深刻的。它使得 Smalltalk 成为一个纯的面向对象的编程语言,比其他诸如 C++, Java 等编程语言要纯粹的多。这种纯粹让系统具有一致性,使得这种语言简单易学、功能强大。

用 Smalltalk 编程,有些对象可以直接表达自己,这叫做文字对象 (literals) 。下面是一些文字对象的例子:

‘Hello world’ -是一个文本字符串对象;
$H -字符 H ;
517 -一个整数;
789.45 -一个浮点数字;
#(1 2 3) -包括三个整数的一个数字;
#show -一个特殊对象,称为记号。

No comments

下一页 »