python 图灵完备_微软:进化版Excel已是图灵完备的语言

自1980年以来,Microsoft Excel重塑了人们组织、分析和可视化数据的方式。它是世界上使用最广泛的编程语言。C,C ++,C#,Java和Python的程序员加起来,人数也没有Excel的使用者多。

尽管Excel如此成功,但它作为一种编程语言仍存在短板。Excel有两大缺点:(1)Excel公式语言实际上仅支持标量值——数字、字符串和布尔值;(2)不允许用户定义新函数。

现在,Microsoft Research Cambridge的Calc Intelligence项目与Excel团队将Excel升级为成熟的编程语言。

在2019年ACM SIGPLAN编程语言原理研讨会(POPL 2019)上,合作团队宣布了两项重大进展:数据类型超越了文本和数字,单元格可填写的内容包括链接到外部数据的实体以及动态数组——允许普通公式计算溢出到相邻单元格中的整个数组。

2020年12月,团队又发布了LAMBDA。它允许用户定义以Excel公式语言编写的新函数。新定义的函数可以调用其他函数,甚至可以递归调用。

借助LAMBDA,Excel已成为Turing完备的语言。

在可计算性理论里,如果一系列操作数据的规则(如指令集、编程语言、细胞自动机)可以用来模拟单带图灵机,那么它是图灵完备的。

现在,原则上您可以使用Excel公式语言编写任何程序。

作为实例,联合团队编写了下面的函数,用于计算直角三角形的斜边的长度:

= LAMBDA(X,Y,SQRT(X*X + Y*Y))

= LAMBDA(X,Y,LET(XS,X*X,YS,Y*Y,SQRT(XS + YS))))

/*函数有两个名为X和Y的参数,将X*X的值赋予变量XS,将Y*Y的值赋予变量YS,并返回SQRT(XS + YS)作为结果。

Excel中现有的名称管理器允许为任何公式命名。如果我们将函数命名为PYTHAGORAS,则诸如PYTHAGORAS(3,4)之类的公式的结果为5。命名后,您可以按名称调用函数,那无疑比每次键入函数完整表达式要方便得多得多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值