不同领域有时候总会共享相同概念。很多计算机编程中的概念被用于电影之中。其中有些电影非常酷,它们甚至还帮助程序员理解一些编程概念。下面这些电影是我的Top 10,还有我认为它们用到的计算机编程概念。
《The Matrix | 黑客帝国》 (1999)
关键词:在线/离线、递归、循环、矩阵等
一个文明的结束,也就是另外一个文明的开始。在黑客帝国之后,有一些类似主题的电影。
《Loopers | 环形使者》 (2012)
关键词:循环
如何生命突然进入了一个永无止境的循环,那该如何中断这个循环呢?
《Tron: Legacy | 创:光速战记》(2010)
关键字:现实世界、虚拟世界
很多到了一定年龄的计算机科学家都认为,就是这边电影,把他们引领到计算机(或《战争游戏》)。
【补充】:萨姆·费林是一位有着叛逆火爆个性的科技奇才,他父亲就是设计出电脑游戏:创(TRON)的天才凯文·费林。萨姆七岁的一天,凯文对萨姆说:“我发现了一个奇迹。明天,就带你去看。”但凯文当晚去城郊的工作室后就再未回来。二十年来,萨姆对父亲的失踪耿耿于怀,日趋叛逆,不愿参与管理父亲留下的英康公司。凯文的同伴艾伦作为萨姆的监护人,十分担心。某日,艾伦发现凯文留给自己的旧BP机收到一则来自于凯文以往工作室的留言,但传讯的号码自他失踪宝贝后早已停用。艾伦请萨姆去一探究竟,并表示他的父亲绝对不会无故离开他,这可能是寻找他的线索。
萨姆来到旧工作室,并看到当初父亲设计的程式,阴错阳差地进入虚拟世界:创界,被押入虚拟赛场进行死亡比赛。——维基百科
《Next | 预见未来 或 惊魂下一秒》 (2007)
关键词:递归
该片用到了递归概念,尤其是在最后的搜索部分,是在一棵树上做递归搜索。
《Final Destination | 死神来了》 (5部)
关键词: if else jump
《Inception | 盗梦空间》 (2010)
关键词:递归
《Cloud Atlas | 云图》 (2012)
关键词:并行
《Flatland 2: Sphereland | 二维世界》 (2012)
关键词:二维世界
《Source Code | 源代码》 (2011)
关键词:可重入(Reentrant)
我很好奇,这个源代码在哪里运行着?如果机器断电了,其他世界会消失么?
【补充】:可重入(Reentrant):若一个程序或子程序可以“安全的被并行执行(Parallel computing)”,则称其为可重入(reentrant或re-entrant)的。即当该子程序正在运行时,可以再次进入并执行它(并行执行时,个别的执行结果,都符合设计时的预期)。可重入概念是在单线程操作系统的时代提出的。一个子程序的重入,可能由于自身原因,如执行了jmp或者call,类似于子程序的递归调用;或者由于硬件中断,UNIX系统的signal的处理,即子程序被中断处理程序或者signal处理程序调用。重入的子程序,按照后进先出线性序依次执行。——?维基百科
《Triangle | 恐怖游轮》(2009)
关键词:死循环、嵌套循环
(译注:一部非常值得反复回看分析的电影。曾在@程序员的那些事 微博多次推荐过。)
上面这些都是我的最爱。当然了,肯定还有其他适合程序员看的好电影。欢迎各位留言,我会更新补充的。如果留言的时候,你能说明电影中用到的编程相关概念(比如递归),那是极好。
译注补充:《Total Recall | 全面回忆》
关键词:记忆、现实
(1990年首拍,2012年重拍)
读者在英文评论中推荐的相关电影
《黑客》
Hackers (1995) Poster
《战争游戏》
【补充】:1983年,电影《战争游戏》开黑客影片先河。电影讲述的故事发生在里根总统任期,当时正值冷战高峰。苹果Mac机尚未诞生,电脑还只是科学怪才专属玩具,影片用大众对核战争和未知新科技的恐惧好好地把观众吓了一把。影片主角是名叫大卫·莱特曼的电脑天才,可自由进入学校电脑系统改动考试分数,因此全无学业之忧,整日将时间耗在电子游戏上。一日误撞上了“北美空防系统”(NORAD)的一台超级电脑,大卫用它玩起了“第三次世界大战”的模拟游戏,他不知道的是,这个游戏比他想象的要来得真实:当大卫退出,游戏并没有结束,NORAD的电脑仍然认为苏联人发动了核战争,对两个超级大国的电脑而言,战争游戏并没有结束……?——百度百科
《Takedown | 骇客追缉令》
《A Beautiful Mind | 美丽心灵》
《Antitrust | 反托拉斯》
《Pirates of Silicon Valley | 硅谷海盗》
《The Social Network | 社交网络》
《Ghost in the Shell | 攻壳机动队》动画电影
译注:最后推荐两部纪录片
讲述网景公司1998年的故事,摄制组横跨了期间重要的几个时间点(Mozilla 项目的诞生),整整跟踪了程序员们一年的时间,最终制成这部纪录片
欢迎留言探讨,加关注持续更新!