智能应用 影音
工研院
ST Microsite

「教堂」的兰达

林一平手绘之邱奇(Alonzo Church)。林一平提供

我实作物联网平台IoTtalk,设计一个机制,很适合执行兰达函式(λ-function)。对于「兰达」,我一直情有独锺。

在1986年9月,我在西雅图的华盛顿大学接触到第一堂计算机理论课。授课教授Paul Yang一直提到「教堂的兰达、图灵的机」,彷佛是江湖黑话,帮派切口。左顾右盼,四周的白人同学听得津津有味,谈笑有鸿儒,频频点头,我则是一头雾水,犹如鸡立鹤群之白丁,也不敢发问,怕闹笑话。

下课后冲到图书馆翻书,想搞懂啥是教堂的兰达。最后搞懂,教堂 (Church)是人名,翻译为「邱奇」。邱奇(Alonzo Church)是数学家,也是图灵(Alan Mathison Turing)的指导教授。1930年,邱奇以数学逻辑为基础,提出兰达演算法(λ-calculus),以变量绑定和替换的规则,发展出基于函式(function)以及递回机制的形式系统。λ-calculus是一个通用的计算模型,强调函式变换规则的运用,而非实现它们的具体机器。

邱奇的学生图灵也发表了一个简单形式的抽象装置,后人称为「图灵机」 (Turing Machine),是能力和兰达演算法能力相同的计算模型。图灵机的执行龟速,没有实际用途,但引导后人想像,这种机器能解决运算问题。

图灵严谨的证明出,我们不可能用一个演算法来决定一部指定的图灵机是否会停机。邱奇在λ-calculus方面相等的证明比图灵的发表早了几个月(老师还是比较厉害)。不过图灵的做法比邱奇直观,更易于理解。

当年被认为不直观的λ-calculus衍生出λ-function,反而实际应用于现代程序语言如Java、C#及Python。原因是λ-calculus清晰地定义何谓「可计算函式」。任何可计算函式都能以λ-function表达并据以求值,相当于单一磁带图灵机的计算过程。λ-function是匿名函式,不需要定义名称,只有一行运算式,语法非常简洁,功能强大,适用于小型的运算。

我设计的IoTtalk物联网平台以Python实作,并以图形化使用者界面将物联网设备(传感器与制动器)以图符(icon)形式呈现。IoT图符间可连线,我在连线间画了一个小圈圈。当初设计这个小圈圈,是一个产生λ-function的机制,借此写出优雅的函式。只可惜部分IoTtalk使用者不晓得我的苦心,老是写冯纽曼(von Neumann)架构的驽钝函式,我的俏媚眼做给瞎子看,只能徒呼负负。

现为国立阳明交通大学资工系终身讲座教授暨华邦电子讲座,曾任科技部次长,为ACM Fellow、IEEE Fellow、AAAS Fellow及IET Fellow。研究兴趣为物联网、移动计算及系统模拟,发展出一套物联网系统IoTtalk,广泛应用于智能农业、智能教育、智能校园等领域/场域。兴趣多元,喜好艺术、绘画、写作,遨游于科技与人文间自得其乐,着有<闪文集>、<大桥骤雨>。