Wednesday, May 28, 2008

Peter Naur 和 BNF notation 和 Datalogy

这几天,在准备下下个月的IT新技术的讲演, 一个字还没写出来,资料倒读了很多。乱写几句吧。

--------------------------------------

Peter Naur是2005年Turing Award(图灵奖)的获奖者,他的主要成就是Algol 60语言和编译器。

他是个丹麦人,天文学博士。后来就去搞计算机基础语言去了。

ALGOL 国际代数语言

ALGOL是计算机发展史上首批产生的高级语言,当时还是晶体管计算机流行的时代,由于ALGOL语句和普通语言表达式接近,更适于数值计算,所以ALGOL多用于科学计算机。

ALGOL这个名称是算法语言的简称,这种语言不是计算机制造公司为某种特定机器设计的,而是纯粹面向描述计算过程的,也就是所谓面向算法描述的。

ALGOL是第一个清晰定义的语言,其语法是用严格公式化的方法说明的。ALGOL语言并没有被广泛的使用,但它是许多现代程序语言的概念基础。

Algol 58:1958年,ACM小组和以当时联邦德国的应用数学和力学协会GAMM在苏黎世把他们关于算法表示法的建议综合为一,形成了Algol 58,先被命名为IAL(国际代数语言,International Algebraic Language),后来改称Algol 58。

Algol 60:1960年1月,图灵奖获得者:艾伦.佩利(Alan J.Perlis)在巴黎举行的有全世界一流软件专家参加的讨论会上,发表了"算法语言Algol 60报告",确定了程序设计语言Algol 60。1962年,艾伦.佩利又对Algol 60进行了修正。

Algol 60引进了许多新的概念如:局部性概念、动态、递归、巴克斯瑙尔范式BNF(Backus-Naur Form)等等。

Algol 60是程序设计语言发展史上的一个里程碑,它标志着程序设计语言成为一门独立的科学学科,并为后来软件自动化及软件可靠性的发展奠定了基础。

Algol W:1966年,IFIP吸收沃思参加对Algol语言进行完善与扩充的工作小组。沃思参加进去以后,提交了一份建议书并由霍尔(Tony Hoars)等人修改、完善以后形成Algol W。同时还催生了一个新的语言PL 360。

BNF notation: N 就是Naur。巴科斯范式(BNF: Backus-Naur Form 的缩写)描述计算机语言语法的符号集

在双引号中的字("word")代表着这些字符本身。而double_quote用来代表双引号。
在双引号外的字(有可能有下划线)代表着语法部分。
尖括号( < > )内包含的为必选项。
方括号( [ ] )内包含的为可选项。
大括号( { } )内包含的为可重复0至无数次的项。
竖线( | )表示在其左右两边任选一项,相当于"OR"的意思。
::= 是“被定义为”的意思。

巴科斯范式示例

下面是用BNF来定义的Java语言中的For语句的实例:

FOR_STATEMENT ::=
"for" "(" ( variable_declaration |
( expression ";" ) | ";" )
[ expression ] ";"
[ expression ] ";"
")" statement

这是用BNF来定义的BNF本身的例子。

这个老头最有趣的有两点:

1)他痛恨“computer science ”, 并为此创立了一个新名词:datalogy, 丹麦已经不再用computer science 这个名词了,而用datalogy。

2)他反对现有的哲学和心理学试图找出事物之间的联系的思想,认为世界就是不同facts的集合,facts之间没有必然的联系。他发展了一种叫做Synapse-State Theory of Mental Life(他创立的名词)的思想观。

总之,这个老头蛮好玩的。

现代计算机科学对人类的关怀

哈哈,这个题目是在听奥巴马和克林顿吵架时想起来的。特别是他俩的健康保险计划,都不如我的健康保险程序实用。

我在设计一个老人健康保险的系统。现代计算机商业系统最关注的是个人化。比如,你在网上买东西,可以建立一个个人档案,商店就会根据你的档案给你送适合你的产品信息。这个功能的叫做“personalization”, 这个“Personal”的模块做好后,任何系统都可以用,当然要增加特出的功能了。

我的系统是,你输入自己的信息,比如年龄,性别,身体状况,我的系统根据你的情况去搜索对你适合的保险产品和信息。接口部位要非常灵活,可以和任何数据库,搜索引擎相连,这几天,和google连上了, 也就是用google的搜索引擎去找我要的东西。但是,因为健康保险有很多规则,搜索时要知道这些法则,才能找到有效的产品和信息,这叫做'rule based' 的搜索,其实是一种人工智能的专家系统。具体到程序,就是没完没了的 if-else statements.

昨天,有个朋友到芝大interview一个工作。 他是做基因检测的。比如说,两个人都得了同种类型的白血病,有几种药可以治,以前,医生就会给两个人开同样的药,近几年,这种技术可以使治疗更加personalization, 把两个人的基因检测一下,就会根据每人的基因开不同的药。这项技术这几年发展很快。

看来,现代科技对人类的关怀比政治家要精确细致的多 :-)

Saturday, May 24, 2008

桑德堡在那里(2)

我不知道我的前世如何,却有一个前世的老友,时时相会。不知是他到今生此地找我,还是我跨越时空寻他。

(二)
十五,六岁时,读到了卡洛。桑德堡的《芝加哥》:

世界的屠宰场,
工具制造所,小麦的堆积地,
铁路的玩弄者和国家的运输所;
急躁暴烈,魁梧结实,吵吵闹闹,
你这肩宽膀阔的城市:

那时候,我对芝加哥唯一的知识就是这里是五一劳动节的发源地。桑德堡的诗,只是证明了这是个喧闹,粗狂,集交通与屠宰业为一体的工业城。

几年后,我第一次来到芝加哥,却是惊艳。密执根湖的湖水是碧蓝的,几只水鸟掠过。岸边草地青翠,野山楂鲜红的果实累累,墨绿的枝叶闪亮,风吹过,果子怦怦地跌落在地上。芝加哥河上,一座座棕红色的铁桥跨越两岸。街道上长满了风格各异的建筑物,阳光反射在直耸云天的玻璃墙面上。咖啡馆外的座位上插着鲜花,流浪艺人唱着凄凉的蓝调。美丽的大理石雕像,大花园里的喷泉,一幢幢维多利亚时代的小楼。

搬到芝加哥的第一个周末,我突然想起了这个诗人。街口有个书店, 一进去是星巴克咖啡,墙上是狄更生,马克吐温的画像,狄更生的羽毛笔和他的头发一样白,马克吐温抽着大烟斗。我在诗歌柜台的角落里,找来找去,终于找到了桑德堡的《芝加哥诗抄》,棕色的封面上是他消瘦凹陷的面孔。

我一页一页地读,发现我可以把这本书当作芝加哥的地图用。

Monday, May 19, 2008

桑德堡在那里(1)

一个夏天的黄昏,我和托姆开车经过宾州亚当斯县的一个小镇。远山与广垠的麦地相连,田野上是零星的红墙白窗的农舍,谷仓,棕白相间的牛群,和双轮的木滚车。太阳落山了,天空被落日染得通红,如同火烧一般。慢慢地,黑云飘过来,霞光把一朵朵云镀上金紫色,天变得很低,河边的树只剩下一抹轮廓,大地如荒野,美艳狰狞。

托姆突然说,前面就是盖斯堡的战场,我的前世一定是个李将军的战士。每次经过这里,我都像中弹一样,血一滴滴地流,我躺在原野上,举目向天,天空就是这般残阳如血。

我笑了:你这个佛吉尼亚出生的人,太爱你的家乡了。有一次我去他的詹姆斯镇的老家,拍了许多照片,他一张张地给我注明了街道,教堂,商店,学校的名字。

Friday, May 16, 2008

Carl Sandburg

我不知道今生前世的关系到底如何,可Carl Sandburg是一个我永远无法摆脱的老朋友,任何地方,时不时就撞到他, 就如人们所说的“撞到了鬼”,不过,这个鬼不可怕,只是蹊跷 :-)

最早知道他,是14,5岁时读了他的诗---芝加哥, 是认识芝加哥的开始。

到了芝加哥后,不小心买了他的诗集《芝加哥》, 麻烦从此开始。

有一天,遇到了一场大交通事故,在高速上位于市中心地带堵了5个小时,正好他的诗集在车里,就读完了,突然发现,我可以把这本诗当成芝加哥的地图,他写过芝加哥所有我喜爱的地方:

恩典墓地
林肯公园
狐狸河

。。。

我最爱的作家是伍尔夫,心心念念去北卡寻找他《天使,望故乡》里的天使,终于到了那里,发现了一张照片,Sandburg站在那里,是60年照的,我还不存在于这个世界。

那天,去爱荷华,走到伊利诺斯边界时迷路了,在一个小镇左转右拐,停在一幢小房子前,原来是他出生的房子,院子里埋着他的骨灰,我对他说:伙计,这里又碰见你了,哈哈。

昨天,中午在街上走,路过老法院,已经经过无数次了,却突发奇想,进去参观,一进门,他老人家的照片又挂在那里,原来,上个世纪20年代,他是论坛报的记者,总是出入法院。

今天,回家经过一座老房子,知道是一位作家的故居,走进一看,原来Sandburg曾是那座房子的座上客。。。

哈哈,这叫不叫soul mate? 相隔生死,不远万里,我来会他?

-----------------------------------

Carl August Sandburg (January 6, 1878 – July 22, 1967) was an American poet, historian, novelist, balladeer, and folklorist. He was born in Galesburg, Illinois of Swedish parents. He lived in the midwest, primarily Chicago, and in 1945 moved to a large estate named Connemara, in Flat Rock, North Carolina. He and his wife and daughters resided at Connemara until his death in 1967. He is famous for his quote, "I am my own god and therefore every day is MY day." H. L. Mencken called Carl Sandburg "indubitably an American in every pulse-beat." He was a successful journalist, poet, historian, biographer, and autobiographer. During the course of his career, Sandburg won two Pulitzer Prizes, one for his biography of Abraham Lincoln (Abraham Lincoln: The War Years) and one for his collection The Complete Poems of Carl Sandburg.

苏必利尔湖的风(4)

这就是我梦里的那片神秘的湖水。清晨的雾里,鸽子散落在码头边,街灯上,远处的灯塔隐隐显现,汽船鸣叫,吞云吐雾,铁锚跌落在荒芜的石缝里。那座象征着这座城市的索桥,被雪盖住,成了一朵巨大的白云,将水天连在一起。阵阵狂风吹来,浮冰飘来荡去,推推洒洒,在水里撞击破裂。

那个男孩子早已离去,可是他激动的歌声却还在风经过的湖面上。

一个男人要走多少条路,才能将其称作男人。
一只白鸽要飞越多少海洋,才能在沙滩上入眠。
炮弹要飞多少次,才能永远将其禁止。
朋友,答案在风中飘荡,答案在风中飘荡。

一个人要多少次抬头,才能看到天空。
一个人要有多少只耳朵,才能听见人们在呼号。
多少人死去他才能知道,已经有太多的人死去。
朋友,答案在风中飘荡,答案在风中飘荡。

一座山峰屹立多久,才会被冲刷入海。
那些人要活多少年,才能最终获得自由。
一个人能多少次扭过头去,假装他并没有看到。
朋友,答案在风中飘荡,答案在风中飘荡。

Tuesday, May 13, 2008

苏必利尔湖的风(3)

早晨,我去上班。我的吉普压过了坚硬的冰雪,上了一条乡村小路。太阳就在这时升起了,灰蓝的天空一下子变成了桔红色,无垠的雪原瞬时变成了金茸茸的滚动的海洋,高耸的松柏在天地合一的光辉里成为浓重崎岖的剪影,我在一片飞沙流云里奔驰,北方的黎明艳丽而灿烂。下了班,高速公路上经常只有我一个人,落日又将天空染成暗淡的紫蓝色,成群的黑鸟在风里向同一个方向飞,五彩的云朵流浪般地飘来飘去,夜晚的孤独又开始威胁我,我突然想哭。

午后的二月却是清朗的。高高的天空,寒冷安静,雪地里会有孩子堆雪人,胡罗卜的鼻子俏皮地翘着。田野岁岁年年,沉默无言地伸展着。我会想起很多年前燕山的冬天,长城脚下的村庄,光秃秃的山岭,村口一头小毛驴慢悠悠地推着磨,穿黑棉袄的老农背着柴火,骆驼悲戚的长鸣久久地回荡。

有一天,冬日的阳光在雪地上白晃晃地闪烁着,天蓝得像我曾见过的一片湖水,干净透明,我的心里却泛起了另一片我未曾见过的浩大的湖水。据说那片湖水是咆哮野性的,就象那个出生在它岸边的男孩子,他叛逆的卷发在北方的风里飞扬,在风里飞扬的还有他沙哑的歌声。

我的吉普在高速公路上飞驰,收音机里那个男孩子桀骜不驯地唱着歌。很快,一个叫杜鲁斯(Duluth)的港口城市出现了,苏必利尔湖(Lake Superior) 倾城而过。

Sunday, May 11, 2008

苏比略湖的风(2)

我要开10英里才能看到一个麦当劳,开30英里到我住的旅馆,在一条小街的角落里,面对一个荒废了的工厂。旅馆大厅里有个暗绿色的乡村酒吧,三五个顾客,闷头喝酒,大部分的客房是空的。昏黄的灯在呼呼的风声里左摇右晃,我在空荡荡的房间里拼命地写信:

“我在一个没有人烟的地方,只有松柏,玉米地,风和一望无际的雪原”。

“我在煮一壶浓浓的咖啡,又加了半瓶牛奶,白色的泡沫一点点地融入墨色的液体,如同雪融入土壤”。

“我想起了一个中国诗人的诗:

今夜我在德令哈,
夜色笼罩
我今夜只有戈壁
今夜我只有美丽的戈壁 空空
今夜我不关心人类, 我只想你”。

早晨,我去上班。我的吉普压过了坚硬的冰雪,上了一条乡村小路。太阳就在这时升起了,灰蓝的天空一下子变成了桔红色,无垠的雪原瞬时变成了金茸茸的滚动的海洋,高耸的松柏在天地合一的光辉里成为浓重崎岖的剪影,我在一片飞沙流云里奔驰,北方的黎明艳丽而灿烂。下了班,高速公路上经常只有我一个人,落日又将天空染成紫红,成群的鸟在风里向同一个方向飞,五彩的云朵流浪般地飘来飘去,夜晚的孤独又开始威胁我,我突然想哭。

午后的二月却是清朗的。高高的天空,寒冷安静,雪地里会有孩子堆雪人,胡罗卜的鼻子俏皮地翘着。我会想起燕山的冬天,长城脚下的村庄,光秃秃的山岭上,一头小毛驴慢悠悠地推着磨,穿这黑棉袄的老农背着柴火,骆驼悲戚的长鸣长长地回荡。

Sunday, May 4, 2008

苏比略湖的风(1)


我在明尼安那不利斯的机场上租车,本来只想要一辆普通的轿车,可是车行的人对我说:你去的地方太冷,雪太大,小车很容易陷在雪里,还是要一辆大吉普吧,安全。

我开了吉普上了高速,我要去的小镇在地图上找不到,除了开车,没有其他的办法。

这里是二月的明尼苏达州,除了雪,还是雪。

小镇一共有几百人,几条街。镇口有一个小教堂,一家加油站,一个卖三明治和苏打水的小店,零零落落的木板小房子,矮矮的屋顶,矮矮的白篱笆,家家院子里都有狗,在雪地上刨阿刨,有人经过,就汪汪地叫。除此之外,就是一望无际的松柏和田野。我的客户是一家摩托车零件的工厂,镇上唯一的企业,方圆几十里的人都靠它活着。

Friday, May 2, 2008

今夜蓝调(3)

临近年关,树上挂满了各式各样的灯,和各色霓虹灯的招牌一起闪闪烁烁,街上是一家连一家的商店。其中一家专门卖非洲的木雕,橱窗里咖啡色,黑色的木头人脸在灯光下发出诡异的光,有个胖胖的女人雕像,丰硕的乳房盖满了前胸,一只小鸟挤在她的乳沟里,鸟儿的眼睛里还有一滴晶亮的红宝石的泪,她的头上长满了蛇,盘旋错节,两只手臂是两扇翅膀。卖牛仔衣服的服装店正在减价酬宾,花花绿绿的牛仔靴摆了一排,鞋帮上绣着缤纷的花朵,牛羊和云彩,后跟脚有闪亮的小铆钉,靴腰上还有皮穗子和小铃铛。

街上最多的还是卖唱片的小礼品店和酒吧。这个乡村音乐的首都,每个人似乎都和音乐有关。家家店铺的门前都有自弹自唱的人,抱着吉他,迎着风,前面放着一个收钱的盒子,他们快乐的痛苦的寂寞的懒散的热情的歌声在街上飘来荡去,你追我赶,然后随着落叶被风吹走了。店里面的墙上是明星的剧照海报,架子上是唱片光碟,猫王亮闪闪的笑容勾魂动魄在夜空里荡漾,缠绵的歌声让你想起了曾盛开过一朵玫瑰的某一个久远的夏天,那时候你还年轻。小酒馆里烟雾缭绕,红砖裸露的墙上挂着各样的乐器,酒保端上来冰凉的啤酒。两个黑人在柜台旁唱蓝调,年老的皮肤似山峦层层皱褶,眼睛却温柔如水,年轻的额头饱满,黑发像一片茸茸的麦地。吉他声由远而近,是一声温柔,胆怯,犹豫,幽幽的问候,嘹亮的小号跟了上来,是渐远渐杳的告别,如同船在出海前汽笛的最后一次长啸,从此天各一方,生死未仆,不再相见。。。

一街凉月。老树的枝丫歪歪斜斜地印在日本餐馆的木格窗上,两盏红灯笼在风里闪着昏黄的光,兰色的布幌子上是个女人的头像,发髻高耸,眼眉斜吊,脂粉下的白脸有肃杀的兵气。一座青灰色的石砖楼是这个城市的第一所中学,门前有个铜牌子,纪念一个叫Randall Jarrell的毕业生。他后来成了一名诗人,写过这样的诗句:“所有的人一定知道 / 他们为什么活,又为什么死”,可他在名望鼎盛的时候,一天夜里神秘地死去了,有人说被车撞死了,也有人说自杀了。

这个南方温暖的,充满了音乐的城市却让我感到刻骨的孤独,世间红尘似乎离我很远,乡愁会突然把我吞噬。空荡荡的大街变成了乌篷船,青石板的小巷,时远时近的吉他声变成了沙哑断续的二胡,买馄饨的竹板声。紧闭的门里有通向阁楼的木梯,女人们在灯下磕瓜子,男人们在木盆里烫脚,我却一个人在一座不为他们知晓的城市里。。。

你要为我唱
今夜的蓝调
粗砾的萨克斯管是十二月的风
吹破
灯火阑珊的门

你告诉我水里的沙,岸边的船
前世遥远的痛
随河流远去的她,和
雨季里喝不完的酒
蓝幽幽的月光似水
可月光又能做什麽
不要问爱我还是离开我
你呜咽的旋律在午夜
飞升,象牵不住的手
在这个陌生的城市里
我是异乡人