Friday, August 31, 2007
这是故事最后的答案<1>
开学的第一天,偶认识了当时还是小萝莉的someone w,映像是文静+上进的正统优秀mm,只是很可能偶当时的夸张表现吓到她了- -
1997年10月底到11月初的某一天~
班上准备129艺术周的节目,舞蹈,自然不会有男生想参加,偶白痴一样的建议班委带头,却忘记了偶自己也是班委= =值得一提的是,小萝莉w是舞蹈编排的两位mm之一,而偶从来都认为跳舞是非常抽的事情
1997年11月的某一天和那之后的每一天~
舞蹈的美丽远远超越了偶的想象,当然更可能是因为她那些专注的温柔的神情,以及某些超越偶的文字的感觉,偶被深深的shock了,估计她也被偶之后抓狂的举动深深的shock了
1997年底不知道什么时候~
偶听说她很讨厌偶,偶很伤心
1998年的整个春季~
偶躲起来偷偷看她,因为偶那时候基本为0的EQ,班上的同学都很讨厌偶
孤单么?可能偶早些时候就习惯了,孤单的时候自己YY就好了
1998年春季学期的期中过后的某个时候~
英语老师说要去买听力磁带,偶在一个周末的下午去买的,那个时候偶们那里只有一家新华书店,偶在门口看到了她的自行车
其实在那之前偶走在路上都回偷偷去看停在路边的单车,YY某一天可以碰见她,然后说什么什么
所以到现在我还清楚的记得那个时候的心跳的感觉,以及之后看到她的身影的时候心跳到窒息的感觉,嗯嗯,笨笨的小正太当然是不会搭讪的
只不过自己偷偷开心了很久而已
1998年春季学期的另外某个时候~
学校要求剪头发,男生要板寸,女生不能披肩,于是小萝莉w剪短了她的长发,那天她从后门走进教室,也许是为了低调一点= =不过很快偶就听到后面传来的惊呼声,回头看见用手挡着后脑勺的她,就做了一个不算很夸张的吃惊的表情...其实她的新发型也很漂亮,真的,她有看我的眼睛,而且有对我笑,这是我的印象中最早的一次她对我有这么温柔的表情
1998年的夏天,7月31日清晨~
老爸老妈他们的高中同学会,头天晚上他们出去干妈家迎接同学,偶以为他们不回来了就很熟练地翻进他们的房间玩游戏,嗯嗯,是sc的人类战役第一关,偶的第一个补给站还没修好他们就回来了= =结果可想而知...
于是心情超低落地去参加他们的同学会,出发前来接我们的大叔提到他女儿,偶这么单纯的孩子当然不会在意= =
那会儿偶正好看了一下表,所以记得,8点29分,白色网球衫+白色短裙的someone g钻进了偶们的那辆大面包,有阳光的味道,就好像时间都停顿了那么一小会儿
1998年7月31日晚至8月1日凌晨~
偶被同样还是小萝莉的someone g的哥特睡衣造型深深的萌到了= =
其实她是很久以来的第一个和偶开心地交谈的ppmm
1998年8月2日~
告别的时候偶有偷偷打听到她的学校和班级,之前忘了说,她的城市和偶们相隔大约200km
1998年9月初的某一天~
偶偷听到someone w的生日是9月11日
1998年9月11日~
有些模糊了,应该是在这一年吧~早晨她走进教室的时候,偶用积攒了好多天的勇气走过去,她在第一排,教学楼二楼中间的某间教室门口的位置,偶脑中一片空白,只听见偶的声音再说:那个,今天还没有人给你说过生日快乐吧?那我就是第一个...其实当时的句子应该更加没有逻辑一些,总之就是这么个意思,偶没有看清她脸上的表情,偶逃掉了
下午在楼梯上碰到正上楼的她,她对我笑了...很灿烂的,属于偶的笑容
从那以后,偶也能好好和她说话了,会打招呼,就像朋友一样
她也会很专注地听偶说话,让爱现的偶感觉像国王一样
很梦幻,即使绝大部分时间里我依然只能偷偷看她的背影
1998年9月的某一天起断断续续估计有3个月~
偶想给someone g写信,草稿打了超长时间,弄出一篇及其恶的文章= =恶是指内容,EQ啊EQ...文笔方面么已经尽了偶的最大努力了...
貌似偶的那篇草稿被某邱mm看到了,某邱mm是偶的朋友,也是someone w的朋友,于是偶被嘲笑了= =
那封信偶没有收到回信,偶等了很久
1998年底~
偶还是给someone g寄去了圣诞卡片,却意外地收到了她的回信和卡片,也知道了她其实有回复偶的第一封信,只是貌似被弄丢了,偶很开心
偶还有第一次收到someone w的卡片,只有很短的两行字,但是,这是她写给我的第一份文字
而且她有小心的修改过
1999年春季学期~
偶在初中时代最快乐的一个学期了,一边和老师打仗,座位在最后一排后面的空地上游动,一边继续上课偷看someone w的背影,一边和someone g通信,说到通信,偶总是很认真地先花上一个月的时间打草稿...
1999年的暑假~
偶有和看、老爸老妈一起去someone g的城市,又是他们的同学会= =
someone g不在
1999年不知道什么时候开始的,也不知道是不是99年,也不知道什么时候结束的~
偶们貌似是从二年级下半学期开始有晚自修的,以前偶只知道someone w住在河的那一边,而偶和她回家的方向实在相差太远,可是某个晚上偶突然很舍不得看着她离开偶的视野,于是偶猥琐地偷偷跟在她后面,一路躲躲闪闪,但是看着她回家偶真的很开心,随后在三倍于平时回家的路上随意的遐想,夜晚很安静
后来偶经常做这件事,再后来偶也不再躲开她的视线,一副无所谓的样子,很久很久,再后来她终于忍不住对偶说请偶不要再这样了。sigh,不考虑别人的感受还真是偶的习惯= =再后来偶就失去了这个每天最大的乐趣,虽然偶在长达一年多的时间里不知道多远的路途上貌似从来没有和她说过一句话,或者也许有的?我忘了
1999年9月11日~
偶借口说学校要做大扫除,5点多就起了床,6点不到出门,在someone w家门口躲起来等着她,偶很紧张
最后偶几乎以为偶错过她的时候,她骑着那辆偶很熟悉的单车出来了
不知道偶有没有发抖
偶追上去叫住她,看着她惊奇的眼睛说生日快乐,递上卡片和偶的礼物-一支HB的铅笔,意思是happy birthday
那是偶第一次和她一起去上学,偶已经忘了说过什么,计划好的台词全忘了,只是还记得偶的满足,就像拥有了她,就像拥有了偶的梦想,就像拥有了全世界
事实上,因为我们快要迟到了,所以骑车很快,时间不长的说
1999年到毕业的一段时间的好多事情~
思绪有些乱了,时间在偶的头脑里拧作一团,抱歉
偶很高调地在班上的黑板上画上很大很大的G
1999年的圣诞节偶是第一个收到w mm的卡片的人,不过随后有人说那是她去年剩下的一张,嗯嗯,偶还是很开心
偶经常和某邱mm聊起她,某邱说她并不相信偶喜欢她这件事情
偶还有去过她家门口等她,这次偶到半路才出来给她打招呼,以偶能做到的最自然的口气问她对偶的感觉,她看起来很郁闷,说这个还是用书面表达回答偶比较好,后来就写了好多东西给偶,有对偶5个学期的评分,好多A^_^还有那句对某些不可更改的事情,感觉淡一些,生活得更轻松
其实偶应该也知道,她也是对自己很差的人
1999年的129~
入团的第一批,班上有6个名额,前5个貌似都毫无问题,问题是第6个,偶们的班主任不知道哪根筋不对了居然放上了偶和她这种及其扯的2选1
偶们两个的年龄都不够,偶实在不了解以偶的表现(除了成绩)和她有什么好比的...
不过,偶还是很认真地在某个放学后的时候走过去怯生生地问她,关于入团...
可是她很冷淡地看了偶一眼,不耐烦地说她爸爸到了高中还没入团呢
她的语气让偶很难过,所以偶直到高中毕业才被迫入团
1999年冬天的某一天和另外一个某一天~
前者是偶被someone w戴手套的可爱小爪子萌到= =
后者是班上众人围观不知道什么,偶凑过去的时候刚好碰到转过身的w mm,偶在好近好近的距离对上了她的眼睛,偶...
2000年的夏天,毕业前的某个时候~
早上外面下很大的雨,偶突然很不安,很想看看她,就前往她家的方向了,其实偶明明知道,这么晚出门,不可能碰见她啦
很辛苦,最后当偶全身湿透狼狈不堪的站在教室门口的时候,早自修已经几乎结束了
不知道为什么,那天偶的感觉就像是,是自己编造的内容
偶会感觉她对偶好冷淡,偶会因为喜欢她的男生好多而自己只是如此平凡的一个而难过
偶还没有意识到,偶已经在心中把她放到了一个错误的位置
毕业了
Monday, August 06, 2007
Laugh,and Grow Fat~楔子
这种感觉一定不会是真实的,因为我是在笑着,因为我的脑子里会有很多纷繁的杂乱的噪音一般的念头在来回折腾着,因为即便是YY,我生活着也如同伟大的冒险。
可是写作文依然很困难,那些有趣的念头总是很快就被我忘掉。有时候就会很羡慕那些会作曲子的人,在我看来,音乐就如同思想的流淌,再自然不过,而文字最多也不过是像金字塔一般死气沉沉愚蠢的矗立着。
所以我会说,我根本不明白。
偶尔的,写作也会很快乐,因为我不再去想象那些金字塔,让思绪随便地飘啊飘。我固执地相信只有流动的才美丽,即使最后的结果不堪入目,但也终究是快乐的。
更多的时候,我依然在寻思从哪里讲起好呢。
记得我是这么说的,纪念偶混在大学的第一个4年,可是我要从哪里讲起好呢?
2003年的非典,教学楼的某个午后,一封信,一句问候,一个眼神,或者数学考场上的一杯水?
毕业的相片,告别的夜晚,某个尴尬的清晨,或者更早些时候?
早到蹒跚的年代,那些遥望,那些得意的时刻,失意的时刻,蛋糕和雨伞,教学楼的另一个午后,校园里的银杏树和皂角树,在阳光下美丽的像诗一样,让我察觉不到窗外的雨就快要停了。
早到年少的心跳,早到三亚的阳光,早到轻狂的笑,三棵树牛肉巷,那些卡片那些信那些心情那些邂逅那些夜晚,早到唱给自己的歌,独自骑行的大雨和等待,或者那些字条和无聊的自习课,早到十年前的存在书店。
如果整个乐曲就是这莫名其妙的十年,那么,那些前奏太长,让我放在这里纪念的最后的4个主乐章显得单薄。
音乐和文字都不该有这样的前奏,可是我依然坚持要演奏她,即便只是在我心里。
回忆,那么多回忆,想要铭记的,想要忘却的。
Friday, July 06, 2007
另一个Nana
第一次听她的歌是04年貌似?钢之炼金术士的ED无法消弭的罪,17岁的mm,歌声很赞~
其实也没怎么关注这个mm到底长啥样,只是继续追钢炼的动画的时候,无意中找到一段这个家伙的访谈节目~偶被萌到了。。。Orz~
不管是什么原因,我想我是开始迷恋这个玩摇滚的萝莉了~囧
后来有很长一段时间,菜奈mm被我遗忘在一角,再后来,我却变得不敢再去听这个mm的音乐了
有时候,记忆被锁在门的那一边,好像不存在了。
生活总是给人一种错觉,就是它好像会一直这样继续下去。
其实门的钥匙还在我们手中,生活也是会改变的。
菜奈mm的摇滚居然成了这把钥匙
希望のカケラ
Kiss
Kiss or Kiss
我没有也不会忘记,有些沉重但是那或许就是代价吧,铭记的代价,幸福的代价……
我依然不明白…
触动我的,是Nana的华丽,还是单纯的记忆?是Nana还是她?
其实我明白…
Sigh,其实这并不是一篇关于音乐的帖子,不过~anyway,就用了这个标签吧~
上面的3个链接么
第一个非萝莉控不要轻易尝试= =,但确有难言的魅力=]
第二个是哥特风格的~华丽的人偶~没有恶趣味也可以尝试=]
第三个比较正常,Nana唱kiss or kiss那一句电力惊人=]
Thursday, July 05, 2007
水树奈奈!
甲贺忍法帖~wild eyes by 水树奈奈!
首届声优赏歌手大赏的获得者~看上去很亲切的mm,粉喜欢她的声音^_^
想写点什么来表白一下偶的无限admire,很囧地发现找不到什么词儿= =
既然叔本华同学曾经曰过:音乐和文字的结合,就好像王子和乞丐结婚……偶也就不挣扎了~
音乐其实简单到一无所有,音乐是一种回响,音乐里是每个人自己灵魂的影子,音乐里的人拥有最完美的自由。或许最单纯的才是最复杂的,一滴清水就可以照出整个世界。
音乐可以是纯粹的娱乐,也可以是最晦涩的哲学;音乐的美妙只为了在乎它的人而存在;我不知道音乐是什么,也没有资格在这里教育大家应该如何欣赏,无论如何华美的文字相对于音乐的无限也只能是肤浅干瘪的束缚~
或许这就是我们所听不懂的外文歌曲的好处,其实人的声音也只不过是一种乐器,我听不懂,也不在乎^_^
所有的理论,所有的歌词,所有的映像,一切一切通通扔掉,剩下那个最飘渺的精灵,就是那些,音乐既不更多,也不更少=]
也许我们看见的并不是同一样东西,不过,那也不重要
就像我对Mizuki mm的声音的倾慕,恕我实在难以言传~
Monday, July 02, 2007
安静
有时候想一个人待会儿也不容易,就算做到了,我们也赶不走心中那些纷繁的念头~~
安静么。。
亲爱的R60很安静,任凭我胡乱写着这些无聊的文字,她什么都不用想不是?
安静么。。
我的blog很安静,安静得寂寞
安静和平凡是要好的朋友么?
小时候幻想这样的生活,快乐的混迹于一个既不太好也不太坏的学校,毕业后找一份薪水不高也不低的工作,在一座不大也不小的城市,遇见一个不太漂亮也不太难看的女人,我记不太喜欢也不讨厌她,就这么结婚啦,有一个不豪华也不简陋的小窝,每天下班回家,妻子在厨房中炒菜,我要么打打下手帮帮倒忙,要么就那样呆在阳台上,看。。。看那天边的浮云。。。
那会是多么的安静。。。
或许人生就是不断退而求其次的过程,那样的生活实在太完美,我们不配拥有。
安静
要经过太多的考验
我们曾相信这是最好的生活吗?即使我们相信,我们能接受吗?我们有勇气去追求吗?
其实我自己就不相信,那是我向往的生活,却不是我想要的生活
其实我也不能证明她,因为这样的生活不可能是稳定的,她既不处于平衡态,也不是耗散结构,更不像混沌
只是有时候我会想,我们要追求自由,这便是最大的不自由
所以自由便不是安静的吧~
Friday, June 29, 2007
纪念一下最近的RP
偶心里一凉。。。难道。。。
慌忙开机test之,莔,自检不过。。。
好吧,又不是第一次了~考虑到最近天气,偶拆开机箱帮忙散热之~再重启~滴!自检通过~oyeah~
慢着。。。检测不到硬盘。。。这。。。
好吧,话说那个时刻,偶第二天就要考马哲,这马哲木有课本,所有的复习资料都是电子版的~话说第二天还要交java大作业,偶搞出来的东西都在那块倒霉的硬盘中。。。啊。。。
偶惶恐了~
奔向机房,嗯,开机,啊?不能上网?靠,换~还是不能。。。靠,再换~。。。以上步骤重复n次之后偶终于想起ping一下网关。。。丢包率50%。。。life sucks。。。always。。。
回寝室继续发呆,等他们睡觉了,偶开始复习。。。
。。。
考过马哲,偶借来电脑开始弄java学期作业。。。糊弄了一下午,糊弄过助教~他给了我满分= =囧~好吧,偶承认偶sourceforge了。。。
终于有空去修电脑了~修理店的JS同学给偶说:嗯,大约需要500大洋恢复数据,修复的几率高达5%~。。。
偶的漫画,偶的电影,偶的程序资料。。。偶的程序资料。。。。。。。各种珍贵文档。。。偶的音乐。。。偶mm录的歌。。。偶的exile smitedin。。。。偶的无敌骑射手。。。无数dota录像。。。珍贵视频。。。偶的。。。。。。。。。。。。。。。。
Oh my lord。。。kill me。。。。
囧,偶的怒气终于满了。。。偶。。偶买笔记本了。。。
Thursday, June 14, 2007
小小庆祝一下~
幸运的是初审通过……作为唯一的单人团队~
咔咔,唔,项目的实力我还是很有信心的,当然还有偶的实力@@哼哼^_^
Monday, June 11, 2007
请别为此困扰…Just simply ignore it,please^_^
其实我很少为别人着想,却总也挂念着自己的感觉,所以我做过什么,没做过什么,对你来说,本来就应该是无所谓的东西。如果你不记得,请别为此困扰,本该忘记。
如果努力就足够...
如果你还记得,那么,也请不要为此困扰,本该如此。
或许你本来就没有理由记它们吧~没关系的,还记得我的礼物吗?在很久之前,当我走在你身边,偷偷凝视你的脸庞,风很温柔地吹拂这你的头发…不经意间,这些年,已经记下了那么多属于你的无法被忘记的美丽…但是那一刻,我所想的不过是,你就是我的女神,本来就应该永远地放在我心里~其实我一直都明白…
所有的不甘心,只是因为自私罢了,我很怕因为我无聊的情绪或是小孩子一样的委屈打扰你的生活,因为你是那么善良的mm,我会说,很抱歉,请别为此困扰…I've never meant that...
其实,这些话也是说给我自己的,弄得很悲情的实在不像我
囧rz
Tuesday, June 05, 2007
非确定语言Pandaria的设计与具备并发自动搜索机制的编译器开发:项目企划文档
① 项目来源背景或目的
多核技术是近期非常热门的话题,这在一定程度上是由于各大CPU厂商的卖力宣传,更多的也体现出一种趋势:尽管我们使用的集成电路技术还在不断的发展,但是芯片的集成度不可能无限提高,人们认识到光依靠提高主频的方式来提高处理器性能的做法已经越来越低效率了,我们需要优化CPU的内部结构,使用新的架构。
1996年Stanford的一篇论文提出SCMP(Single-Chip Multi-Processor)模型,并论证这样的结构比传统的效率更高。实际上经典的VLSI复杂度模型也有类似的理论:用超大规模集成电路芯片计算问题的算法复杂性的下界应当用芯片面接(A)和计算时间(T)的平方的乘积(AT^2)来表示更为合理。如果对于某个问题我们已经得出这个下界,并且有一个面积为(n^2)*A的硅片用于制造计算这个问题的芯片,我们可以有至少2种方案:1,制造n^2个面积为A的部件,计算时间为T;另一种我们考虑把计算时间缩短为T/n,根据对下界的估算,我们实现这个算法的芯片面积就至少为A的n^2倍,也就是说,我们只能做一个这样的新片了。如何选择方案其实很简单:当这个计算问题是大量的并且是可以同时做的,前者的总效率将为后者的n倍。
实际上这也正是软件界如此关注多核的原因。这一次的CPU进化方式和以前都不同:曾经当你完成一款软件,性能上的瑕疵可能并不那么重要,因为明天CPU就会更快而你的软件也会自然而然地运行得更好;然而,如果你的软件没有任何并发的成分,它在单核和100核的CPU上的运行速度将会是相同的。有人将此总结为一句话:免费午餐的时代结束了。
在另一方面,相对于多核趋势对于并行计算的需求,尽管多线程的编程已经出现很长时间了,尽管目前存在很多的多线程软件和工具,但总体上看,大部分的应用软件还依然是单线程的,大部分的程序员对多线程的了解也比较少。
还需要指出的是,多线程程序设计的思想方法与常规的思维和编程训练相去甚远,被最广泛使用的命令式程序设计语言在线程间的变量共享等方面存在较大的缺陷,这些都是软件界进入并发时代的障碍。可以考虑的解决思路大致上有三类:一种不改变现有的语言基础,依靠辅助工具处理框架中的多线程部分;第二种也不改变现有的语言基础,甚至也不用改变现有的单线程编程习惯,靠并行化编译器将单线程程序转化为并发的;第三种为设计适应多线程程序开发的语言。
本项目实际上是一种第三类的解决方案,系统的主要构成为Pandaria语言的设计,编译器和虚拟机。Pandaria设计为函数式语言,可以避免线程间的变量共享带来的一系列问题。她的语法类似于lisp,支持lambda演算。目前的构想是没有显式地支持多线程,而是通过对表达式的非确定性的支持,在编译期转化为并发程序。这样设计是希望避免过多的对线程和线程间通信关注,而让程序员把主要的精力放在软件设计上,同时在不对原有的编程思路进行太大改变的基础上让多线程的引入真正意义上的带来语言表达力的提高。编译器为项目的核心内容。虚拟机由于技术上的难度,目前的计划是暂时采用爱立信公司的开源平台Erlang(http://www.erlang.org)的虚拟机(非常优秀的并发平台)。
② 当前同类软件横向比较
目前并没有和这个项目完全类似的软件。所以我在这里进行的比较都是和其他多线程软件开发工具或者平台之间进行的。
首先的代码分析工具Intel VTune Performance Analyzer,它通过采集、分析并显示上至系统范围、下至源代码范围的性能数据,帮助查找并消除软件性能瓶颈。无论用 Fortran、C#、C/C++、Delphi还是用Java编程,Intel® VTune Performance Analyzer均能帮助优化您的软件。分析器支持包括Microsoft Visual Studio.NET、Intel® C/C++ 与Fortran 编译器、Compaq Visual Fortran、Java、Borland 编译器(Delphi、C++ Builder)以及IBM Visual Age。Linux 支持通过远程代理提供。
主要功能包括:采样功能、调用图功能、计数器监视器以及经过改进的Intel® 调优助手。Intel® VTune Performance Analyzer在Windows平台上同时提供图形化与命令行界面;允许选择是否与Visual Studio .NET 集成;为基于IA-32与Intel® 安腾® 处理器的Linux应用程序提供远程支持;还可以对基于Intel® PXA250、PXA255 与 PXA26x 处理器的应用程序进行采样。
产品特点
* 采样功能使开发人员用几乎可以忽略不计的开销换来对软件实际性能的最准确表示;
* 调用图评测功能用图形显示程序流程,帮助开发人员快速确定重要的函数与调用序列;
* 计数器监视器可供开发人员跟踪运行时系统活动,帮助确定系统级性能问题;
* 远程代理,针对Linux的远程代理具备采集远程 Linux 系统性能数据的功能,同时保持Windows图形用户界面的易用性,方便分析与诠释数据;
* Intel® 调优助手根据丰富的知识库自动建议代码改进办法,提高开发人员工作效率;
* Visual Studio .NET 集成,提供在Visual Studio .NET IDE中使用Intel® VTune Performance Analyzer的能力,帮助改善易用性、提高工作效率;
* Windows命令行功能在VTune分析器图形用户界面之外提供一种强大、灵活的数据采集手段,支持自动采样;
Vtune的功能确实非常强大,但是当我们在项目中大量使用代码分析工具进行辅助开发的话,不必要的细节过多将会导致我们对软件设计本身的关注降低,同时使项目开发的系统复杂性大幅度提升。
编译器方面,Stanford的SUIF研究组(http://suif.stanford.edu)的SUIF编译器在优化和并行化方面作了很多有益的探索,我对此关注并不多。编译器层面上实现的并发化是最理想的,可以完全隔离底层硬件的影响,只是可能在生成的程序的效率和缺陷控制上存在一些问题。
③ 项目可行性分析
首先此项目显然并非一个商业项目,可行性方面不需要考虑任何经济因素。剩下来需要关注的问题第一是项目能否完成,第二是完成后的应用价值。
首先,Pandaria的语法设计并不复杂,所谓非确定性表现为表达式的多值性,这正是并行计算的一种非常自然的表达方式。同时作为函数式的语言,在并行化的时候不存在任何变量共享,锁,序列化的问题,系统核心编译器的结构不会过于复杂。
其次关于应用前景的问题,在项目来源或目的已有阐述,这里不再赘述。
④ 初步拟定的设计规划和实现方法
选用开发语言为C++,选择的出发点是我对语言的熟悉程度。
Pandaria的语言设计
数据类型:整型数,amb(非确定数据l类型)
运算符:整型数所支持的算数运算和部分逻辑运算
数据结构:只有一种,序对。序对由2个任意数据元素(包括lambda表达式)构成,序对本身也是数据元素。创建方式为(cons operand_left operand_right),若c为一序对,则(car c)的值为operand_left,(cdr c)的值为operand_right。
表:一个表可以表示为(cons list_element1 (cons list_element2 (cons list_element3 (…(cons list_elementN nil)…)))),nil定义为空表。或者简单的表达为(list element1 element2 …elementN)。一个表的car为一个element,cdr为一个表。
名字:(define name val)将名字name绑定于val,val为数据元素。
Lambda表达式:(lambda (operand1 operand2 … operandN) exp )为lambda表达式,其中exp为表达式。
表达式:数据元素(整数,序对,表,lambda,amb)是表达式,运算符表达式是表达式,表达式序列是表达式,if表达式是表达式。表达式都可以求值,求值结果为一数据元素。
运算符表达式:(op operand1 … operandN)为运算符表达式,当op为运算符或lambda表达式,并且operand1…N都是表达式。
表达式序列:(begin (exp1 exp2 … expN) )为表达式序列,当exp1…N都是表达式。其值为最后一个表达式的值。
If表达式:( if(exp) branch_true branch_false )为if表达式,exp,branch_true和branch_false都是表达式。若exp的值为0,则if表达式的值为branch_false的值,否则为branch_true。banch_false可以为空,那样的话如果exp为0,则整个表达式的值没有定义。
Amb:(amb val1 val2 … valN)定义为amb,其含义为可能返回val1…N中的任意一个,对amb求值将导致对val1,val2…valN的并发求值。(当线程过多时系统提供回溯方式求值的缓冲机制)。对空amb求值将导致求值失败,不会返回任何值。
Amb约束:(require exp)定义为(if(not exp) (amb))。
编译器的结构与一般编译器类似,大致上lexical analyzer—(tokens)àparser---(syntax tree)àtarget code generatoràdone。其中lexical analyzer和parser已经基本完成。目标代码方面由于目前对Erlang虚拟机的指令集了解非常有限,暂时直接选用erlang语言本身作为目标语言。
系统的重要特性:
处理amb时的并发性:回溯是单处理器机器上实现的对并发的模拟。而将自动搜索结合到程序设计语言中有着悠久的历史,代表机制有按历史回溯,依赖导向回溯和后者的改进真值保持。这些都可以通过并发更好的实现。
require语句的处理:处理为定义的形式实现简单,也可以考虑作特别处理,检查程序中的每一个amb对require的依赖性,即时检查require条件的成立与否,减少并发分支。
线程过多时候的回溯缓冲。
Erlang程序示例(8皇后问题用并发替代回溯):
%queens.erl
-module(queens).
-export( [start/0,val_list_gen/2] ).
start()->
val_list_gen( [], [ [0,1,2,3,4,5,6,7],[0,1,2,3,4,5,6,7],[0,1,2,3,4,5,6,7],[0,1,2,3,4,5,6,7],
[0,1,2,3,4,5,6,7],[0,1,2,3,4,5,6,7],[0,1,2,3,4,5,6,7],[0,1,2,3,4,5,6,7] ]).
val_list_gen( Val_list, [ [First|Rest] | Rest_list ] )->
Tmp = test_queens:start_test(Val_list),
if
Tmp == true ->
%---注释部分的程序如果替代现有的语句的话就会变成按历史回溯
spawn( queens, val_list_gen, [ Val_list++[First], Rest_list ] ),
%val_list_gen( Val_list++[First], Rest_list ),
%---
val_list_gen( Val_list, [Rest|Rest_list] );
true->ok
end;
val_list_gen( Val_list, [ [] | Rest_list] )->ok;
val_list_gen( Val_list, [] )->
Tmp = test_queens:start_test(Val_list),
if
Tmp == true ->
io:format("~w~n",[Val_list]);
true->ok
end.
%test_queens.erl
-module(test_queens).
-export([start_test/1,test_loop/2,test_set/2,comb_gen/4]).
get_list_item(N,[])->unfilled;
get_list_item(0,[Head|Rest])->Head;
get_list_item(N,[Head|Rest])->get_list_item(N-1,Rest).
start_test(Val_list)->
Tester = spawn(test_queens,test_loop,[Val_list,self()]),
spawn(test_queens,comb_gen,[nil,[0,1,2,3,4,5,6,7],outer,Tester]),
receive
false->false;
true->true
end.
test_loop(Val_list,Pid)->
receive
{Q0,Q1}->
Tmp=test_set({Q0,Q1},Val_list),
if
Tmp==true->test_loop(Val_list,Pid);
true->
Pid!false
end;
done->Pid!true
end.
test_set({Q0,Q1},Val_list)->
Tmp0 = get_list_item(Q0,Val_list),
Tmp1 = get_list_item(Q1,Val_list),
if
(Tmp0 == unfilled )or( Tmp1 == unfilled )->true;
true->
(Tmp0 /= Tmp1) and
(Tmp0+Q0 /= Tmp1+Q1) and
(Tmp0-Q0 /= Tmp1-Q1)
end.
comb_gen(Pos,[Head|Rest],inner,Tester)->
Tester!{Pos,Head},
comb_gen(Pos,Rest,inner,Tester);
comb_gen(Pos,[],inner,Tester)->done;
comb_gen(nil,[Head|Rest],outer,Tester)->comb_gen(Head,Rest,outer,Tester);
comb_gen(Pos,[Head|Rest],outer,Tester)->
comb_gen(Pos,[Head|Rest],inner,Tester),
comb_gen(Head,Rest,outer,Tester);
comb_gen(Pos,[],outer,Tester)->Tester!done,done.
⑤ 团队人员构成
南京大学软件学院06级 毛海鉴 061251105
Monday, June 04, 2007
Saturday, June 02, 2007
隐晦的句子
一边写一些莫名其妙的东西,一边幻想别人看了会如何如何懂,毫无诚意,言之无物,空洞乏味,可恶之极。
好吧。
我承认我没有勇气。
其实会看懂某些句子的人并不存在,至少不存在于我的blog的有限的几个读者中。我并不需要逃避什么。
刚刚和她通过电话,现在的感觉,怎么说呢,很平静。也许应该说很安静,听到她的声音很开心,真的。其实很多事情我并不像我想象中的那样在意。
终于还是忍不住说了一句其实很舍不得放下电话,但是想说的东西依然还是没说。其实她和我心中的她完全不同,也许我可以在梦中在心中对她说一千句一万句,可是在她面前,或是拿起电话……一想起就忘记,只剩下常讲的话语。
因为你太美了,所以不敢大声说喜欢你。
怎么样也好,我追逐的是幻象也好,有些感觉它就是那样的……
好吧。
也许我告诉自己说怕让你困扰那都是骗人的,其实一开始就在逃避,或者根本不懂得有些心情应该怎么去表达。。。这些都不重要,爱情是什么也不重要,人就是这样的动物,相互需要或者相互伤害都会是有意义的。
能遇见你真的很好,虽然我总感觉还欠你的。我不知道这到底算不算一种错过,只是,我很希望你知道,我很在意你…你对我很重要……
可能,也不过如此罢了。
很委屈,其实我很努力的…可是那又怎么样…
Sunday, May 27, 2007
Sunday, May 20, 2007
从未响起的铃声<3>
昨天晚上做了一个梦,梦见我做了一个梦,梦中的我做了个很好的梦,可是梦总是会醒的,于是梦中的我醒了,发现那是梦,就很郁闷,所以我也醒了,更郁闷。。。
我想把那些梦里的影像保存下来,因为或许今后不会再梦见了。
梦中的梦中,我在做什么呢?……好吧,有兴趣自己去猜吧,或者推理。。。唔,这两个词的意思差别不大呵。。。
Friday, May 18, 2007
从未响起的铃声<2>
我们的学校在一个很荒凉的地方,怎么形容呢?引用我用来介绍给别人的话大概就是“荒凉得连田都木有”。。。貌似把这里称作suburban不是很恰当,无所谓啦~随便买一张南京市的地图,看到没有,最北边,贴着地图边儿的那条路不是叫学府路么?我们学校就在这条路的北侧。。。也就是恰好落在地图外面的那一坨。。。
学校的正门口有一座不知道原来是什么的3层建筑物,唔,房子,它很自然地被一些网吧杂货店小黑吧崴(wai3)饭馆之类的东西填满了~大家可以随意想象一下那种贴白瓷砖但是被弄得脏兮兮的那种楼%%那个,小破楼的背后是一个约摸2个篮球场那么大的院子,好像也许大概似乎差不多可能原来是废弃的。
不知道从什么时候开始,至少比我来这里的时间要早啦,一伙四处流串作业的黑摊团伙,当然或者还要加上些许被和谐城管们追得实在没办法的善良小贩们发现了这一处风水宝地,便争先恐后地涌将过来,拉起不知道从哪里弄来的破木板烂油布,堆砌来倒也似模似样的整出扭曲的两排窝棚状建筑。张罗起招牌,烧烤盖浇肉夹馍鸡蛋灌饼麻辣烫小火锅XX名小吃,颇有些美食广场的气势。
可惜这个看起来和传说中的平民窟没什么两样的社区外表方面实在不怎么争气。姑且不论泛着厚厚油腻的地面,熏得发黑的破旧倒塌的棚顶,拥挤的涂抹着汤水的桌椅,散发着强烈鱼腥味的垃圾堆,你都一概无视并且随便找家店坐进去,老板娘随手在黑得发白的围裙上擦擦手,从热火朝天的角落里端出一碗来,又抓了些不知道什么黑乎乎的玩意儿洒上递给你,你实在很难把这种东西和所谓美食联系起来。。。
烧烤还是不错的~虽然我实在对这个地方没什么好印象。
学校附近有很多鸟儿,来这里觅食的尤其猖獗,某日经过的时候,恰巧有一小搓掠过这些窝棚,阳光很刺眼,当时的画面突然是那样富有生活感,让我有些心动,或许这个地方并不是一个被上帝抛弃的角落~
最后是在一个冬日的雨夜,我和朋友归来的时候经过这里,雨下得那是哗啦啦的,让这里比平时更加显得乱糟糟的:污水横流,湿漉漉,脏兮兮,龌龊。。。总之就是这么些词啦~只是在冰冷的空气里,这些词也一样有着生动温暖的面孔,那些热气腾腾叫卖着的食物格外诱惑。于是我们停下来叫了些串,小心地找了块没有积水的地面站好,又去招呼卖麻辣烫的老板,那人有着亲切的笑容,不停唤我站里边一点,可以躲雨。我抬头看了看窄小谓屋檐和顺着他淌下来的奔腾的流水,唔。。。继续站在雨里吧,心里还是更暖了。
呼吸,食物或是炉火的热气混得雾蒙蒙的,雾么。。。其实如果我们不带任何成见地接受这一切,或许更能发现其中的真谛:在这里肮脏破败的皮肤下,却充满张力和暗藏的火焰;而遥远那些洁白的街或是整齐的商店,虽然坚固漂亮,却像铁壳一样生硬。
纪念完了,那个院子里的黑摊现在消失了,嗯,他们其实是转移到路上来了。。。Anyway。。。
其实我也是在说我们的生活。
Wednesday, May 16, 2007
从未响起的铃声
话说有时候太长时间没有做某件事就会让它变得仿佛生疏起来,这本身又会减少你想去做这件事的兴趣~不能说是恶性循环,只是当你有非做这件事不可的理由的时候,之前所积累的惯性就会爆发成一种恐惧感,紧紧地抓住你的心。。。唔,说得严重了些,或者还是说得轻巧了些~
最好的情况和最坏的情况,貌似往往同时出现,不分彼此。意志是我最坚硬的部分,当然也是最柔软的。热情和野心的区分也并不像我曾经想象的那样明显,况且热情本身甚是单薄,在最需要咬牙的时候是脆弱的,甚至也可以是一种逃避的理由。
野心没什么不好,过剩不会比不足更糟糕。
唔~~~~~~~~~~是我前段时间又开始怀疑了吧,怀疑我拥有不适当的才能,超越我的心的才能,困扰,就像以前曾经困扰的那样,我并不想要更多,可是却不得不追求更多,我错过的那些东西,真的值得么?
生活,身边的世界真的是无比美丽。Suburban的天空是那么晴朗的蓝色,校园里的绿色是那么生机勃勃,环绕着的小山丘让人总有些向往,幻想着有一处柔软的草地,可以躺下来眯起眼睛打量那些透过叶子的隙洒下来的阳光~即便是在晚归的夜,小径上不经意的抬头,满目都是幼竹柔软的腰肢,夜是清清的,散漫的路灯,淡淡乳白的光~~~~~
美不是这个样子的么?我想把他们画下来,无奈手中的画笔琢磨不透我的意图,文字亦然如此。。。想起我在补习的时候才有好好听过的语文课,同样也是那时让我那么惊讶的熟悉而陌生的语文课本,真的有些遗憾,抱歉了,真的。。。
Sigh,越写越低落了~~~~其实劳动节耶的来访连同他带来的他的话,让我豁然。唔,可惜我自己总没发觉,嘿嘿,知识学得太笨拙了罢~那
我总是太笨拙,不过我也向往轻灵的舞,sigh,叹气很多,无奈也很多,其实每个人都不懂得别人。
(待续~)
(很久以前就想写一篇文章来纪念一下学校门口的黑摊群,一直也没憋出来,唔,多少有些只言片语就放在这里好了~下一篇文章)
Saturday, April 28, 2007
What I've Done
There’s no blood,
There’s no alibi.
‘Cause I’ve drawn regret,
From the truth,
Of a thousand lies.
So let mercy come,
And wash away…
...What I’ve Done.
I’ll face myself,
To cross out what I’ve become.
Erase myself,
And let go of what I’ve done.
Put to rest,
What you thought of me.
While I clean this slate,
With the hands,
Of uncertainty.
So let mercy come,
And wash away…
...What I’ve Done.
I’ll face myself,
To cross out what I’ve become.
Erase myself,
And let go of what I’ve done.
For What I’ve Done
I'll start again,
And whatever pain may come.
Today this ends,
I’m forgiving what I’ve done.
I’ll face myself,
To cross out what I’ve become.
Erase myself,
And let go of what I’ve done.
What I’ve done.
Forgiving What I’ve Done.
Wednesday, March 28, 2007
Welcome back!
看上去的确如此,只是~偶没错在恢复访问之后便回来继续写,显然是感觉有点意思啦~然而偶的blog其实不管可不可以访问都是没有啥人访问的=。=所以说呢,绿色的论断是不正确的...正确的是红色的这句:没有人看得到的blog写起来没什么意思啦~
区别还是很大的=。=我是想说,至少对于我来说,写blog的乐趣更多的在于被别人看到的可能。blog并不完全是写给自己的日记,或许我只是在等待,等待某一天它被某些人看到~~~这些话看上去也许是不知所云,或者毫无逻辑…木有关系啦=。=子曾经曰过么:blog的存在是为了满足读者的偷窥欲和作者的被偷窥欲~子还曾经曰过么:人类的全部智慧就集中在这5个字上(居然是汉字…):等待与希望~~
上面的话看起来有些像怨念,其实偶最近心情很好^_^阳光明媚的日子么,郊区的天还是很蓝的,也没什么挡视线的高大混凝土块~多么happy,残冬的寒意也终于消失,mm们都换上了pp的衣装~我不是诗人,只是春风真的是醉人的~
Welcome back
Wednesday, March 21, 2007
Monday, March 12, 2007
Saturday, March 10, 2007
The Paradoxical Operator.
注意我的语气~按照套路作文写到这个地方就应该话锋一转:但是^^云云~没错~我就是会这么写……= =周二的离散课多多少少改变了我的这个印象,那个看上去完全想象不出他笑是什么样子的陈老头讲课的时候也可以笑得很自然嘛…喜欢说无厘头的笑话让我仿佛又回到了王殿军同学的课上~~~Anyway,希望偶的Discrete Math也能95哈~~~
设计Pandaria的时候偶然遇到匿名函数的递归这么个问题,就在离散上课前用教室的电脑随便Google了一下,居然读到了一些无比好玩的关于Lambda Calculus的文章~~记得以前接触这个还是在一本Programmer上,函数的Fix-point和递归的关系什么什么的,尽管现在看来这篇文章有点扯(Programmer上有点CS意味的文章一贯如此),当时还是勾起了我很多想法= =,呵呵,所以才会买那本The structure & interpretation of computer programs~~~唔,很美好的感觉^_^
For example, a factorial program can be written with no recursive declarations, in fact with no declarations at all. First note that YF=F(YF); YF is a fixed-point of F.Y = lambda G. (lambda g. G(g g)) (lambda g. G(g g))
The Paradoxical Operator.
Using this observation it is possible to evaluate factorial(3) as follows.Y F
= (lambda G. (lambda g.G(g g)) (lambda g.G(g g))) F
--> (lambda g. F(g g)) (lambda g. F(g g))
--> F( (lambda g. F(g g)) (lambda g. F(g g)) )
/*notice this step is also a beta-reduction...cool*/
= F( Y F )
let F = lambda f. lambda n. if n=0 then 1 else n*f(n-1)太酷了
in Y F 3
--> Y (lambda f. lambda n. if n=0 then 1 else n*f(n-1)) 3
--> F(Y F) 3
= (lambda f.lambda n.if n=0 then 1 else n*f(n-1)) (Y F) 3
--> (lambda n. if n=0 then 1 else n*(Y F)(n-1)) 3
--> if 3=0 then 1 else 3*( (Y F 2) )
--> 3*( Y F 2 )
...
--> 6
Tuesday, March 06, 2007
2007的第一篇文字
= =
But I can't always find a justified excute for my fault,尽管我看上去总是对了,那也只是因为我非常讨厌承认我错了罢了~
~Anyway,让我的blog archive上迟迟不出现2007的印记不代表2007就不会来~时间并不会因为我的讨厌而停下来。