加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

用软件工程方法解析《盗梦空间》

(2010-09-11 04:26:36)
标签:

盗梦空间

分类: 温酒乱批书(评论)

庄周梦蝶,中国人从古代开始就在考虑的这个哲学问题,西方人也在琢磨,到了现代大家在钢筋水泥里耍心眼掐架、精神迷失,这个“我是谁”的问题就更想不明白了。东方哲学讲究的是含蓄,说的是意境,两句你为我与、我为你与,留给大家无数瞎想的空间;西方哲学讲的是逻辑,就像编软件一样编出来一个《盗梦空间》,不过有很多Bug。

我们不妨就用软件工程的思想来分析一下这部电影:

1、每个梦境就是一个进程,这个进程有一个所有者对象(就是这个梦的拥有者),同时可以接受其他参与梦境的对象(梦的参与者),对象退出进程可以是正常退出(kick),或者异常退出(死在梦里),所有者退出进程就结束了;

2、进程可以嵌套(梦里还可以做梦);

3、对象的属性定义好了,就自动在进程里反应(潜意识产生的防卫者);

4、梦境定义的太深了(超过三层),用动态方式分配内存就不行了,堆栈不够大,要用静态内存分配(用特别的催眠剂),这样异常退出就不行了,因为内存不能正常释放,系统就异常了(如果参与者在梦里死了,就会进入迷失域,就是程序跑飞了);

5、为了确保嵌套的进程一层层正常退出,设置了一个全局信号量(音乐),又为了判断进程是否嵌套,每个对象也设计了一个全局信号量(陀螺、骰子、国际象棋。。。)。

你看看:静态内存、全局信号量,犯了软件工程的大忌,最后怎么可能不出现程序跑飞的异常?美国人软件编得太差了。

第一次做梦:

1、第一层梦境是那个最后不知道怎么被KO的助手的,第二层梦境是齐藤的;

2、第二层里小帅哥助手比较郁闷,先被Cobb的老婆开了一枪(Cobb的潜意识还非常了解怎么打痛人还不让人醒,比较强悍),再被Cobb一枪直接KO回第一层,齐藤是药效过了自然苏醒,Cobb被浸到第一层的浴缸里闷醒(不知道是不是药配错了,怎么比齐藤醒得晚?);

3、第一层梦境里大家都被打死,就回现实的火车上了。

第二次做梦:

1、第一层梦境是那个长得像黑人巫师的助手的,助手水喝多了要小便,梦里下大雨(不知道这哥们后面10个小时是怎么在真实世界里熬过来到,有没有在飞机上尿裤子),齐藤中了一枪(其实齐藤是个好人,在梦里帮了很多忙,简直就是舍己为人的雷锋,但是好人没好报,进门就是一枪);

2、第二层梦境是富二代的,Cobb又装大尾巴鹰,骗倒了涉世未深的富二代;

3、第三层梦境是非洲混混的,结果Cobb老婆出手,一枪放倒富二代,齐藤也用完了半条命,内存泄漏,跑飞到迷失域里了;

4、Cobb相信他潜意识老婆就是把富二代绑架到自己的潜意识里去了,所有和造梦小美女下了第四层(我不同意有些观点认为这里是迷失域,因为他们下去的时候是可控的,创了一个进程而已,程序还没有跑飞);

5、在第四层里,问题来了,造梦小美女和富二代是在坠落的时候醒了,回到第三层,但是按照原理,只有在第三层里坠落才能唤醒第四层里的人,这个退出条件很混乱,也可以理解成富二代是被电击唤醒的(但是如果电击唤得醒,还费那事到第四层找什么?);

6、第四层富二代先退出到第三层,按照程序走完最后那段自己骗自己的代码,然后造梦小美女退出,和非洲混混三个人借助第二层的电梯恢复重力后坠落回到第二层,再借助第一层里汽车撞击水面一起回到第一层,只是不知道为什么第一层里的防卫者都不见了,可以解释为富二代已经消除了所有怀疑,没有防卫心理了;

7、Cobb怎么到的迷失域?可能是和潜意识老婆一起死在第四层,然后在迷失域找到死循环了N年的齐藤(这样看来迷失域就是内存管理工具清理出来的垃圾内存簇,所以所有跑飞的数据都在这里能找到),对开一枪,回到现实(这个怎么回来的?直接把内存清了?这里分层结构很混乱)。

虽然有点小Bug,现在看还没有太多致命逻辑(导演能编到这个程度,不容易了),但是影片我认为一个最大的逻辑漏洞,一个会影响整个影片基础的漏洞,是在Cobb和他老婆在程序跑飞过程中发生的:Cobb和他老婆因为进的梦境太深(估计是内存不够了,指针混乱),直接进了迷失域。影片描述他们出不去,因为绝望,他老婆故意让自己不再纠缠是不是在梦境,就把陀螺锁到保险箱(不判断信号量),Cobb为了说服老婆他们在梦里,就把陀螺旋转起来(信号量设成1),结果退出梦境后,但是忘了把信号量设回0,他老婆就混乱了,一直把现实当梦,自杀了。这里的最大漏洞是:如果他老婆从一开始就知道在梦里,自杀就可以回来了,为什么不自杀呢?如果他老婆不知道在梦里,为什么要把陀螺锁起来,让自己不去想是不是梦呢?这个地方如果导演不能自圆其说,整个电影的逻辑就不成立了。

 

不过,电影无非是想说人是在梦里过幸福生活好,还是直面惨淡的人生强。西方逻辑是扯不清了,东方哲学在这方面比较实在:只要开心就行,别深究了吧,看开些,看开些。这样看的话,最后那个结果到底是不是梦,也不怎么重要了吧?

 

昔者庄周梦为蝴蝶,栩栩然蝴蝶也,自喻适志与!不知周也。俄然觉,则蘧蘧然周也。不知周之梦为蝴蝶与,蝴蝶之梦为周与?

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有