谷歌大脑的胡麻和亚麻

谷歌的人工智能部门,谷歌大脑,有两种主要的深度学习产品:TensorFlow和Jax。虽然TensorFlow最为人所知,但可以认为Jax是一种高级语言,用于指定深度学习算法,同时自动删除不需要作为模型一部分运行的代码。

杰克斯由Autograd演变而来,是Autograd和XLA公司.Autograd“可以自动区分本机Python和Numpy代码。它可以处理Python's功能的一大子集,包括循环、ifs、递归和闭包,甚至可以提取导数的导数。它支持反向模式区分(也称为反向传播),这意味着它可以有效地获取标量值函数相对于数组值自变量的梯度,以及前向模式微分,并且这两者可以任意组合。Autograd的主要预期应用是基于梯度的优化。"

亚麻然后构建在Jax之上,允许更轻松地定制现有模型。

你认为AI领域特定语言的未来是什么?

经久耐用

马·希克斯。经久耐用.逻辑。第11期,“小心”。

正是这种紧缩政策导致的对人的投资不足,而不是州政府兜售的那种简单的虚构,那些技能过时的程序员退休了,在最近的危机发生前几年就解雇了COBOL程序员。事实上,有很多新的COBOL程序员可以胜任这项工作。事实上,COBOL程序员的脸书群组中的大多数人都是25到35岁,全球接受COBOL系统编程和维护培训的人数也在不断增加。许多使用COBOL的人毕业于20世纪90年代或2000年代,他们在21世纪的大部分职业生涯中都在维护和编程COBOL系统。。。

从这个意义上说,COBOL及其替罪羊向我们展示了高科技的一个重要方面,而硅谷或政府似乎很少有人理解这一点。旧的系统有价值,以牺牲现有基础设施为代价,不断构建新的技术系统以获取短期利润,这并不是进步。事实上,这是一个社会可以采取的最倒退的道路之一。

最近,技术史方面的工作变得越来越复杂,不仅讲述令人印象深刻的技术故事,还试图揭示影响广泛技术和技术系统的开发、部署和使用的社会、政治和经济力量。幸运的是,这种趋势开始在编程语言历史研究中显现出来。虽然这些研究并没有取代对影响编程语言开发的内部智力因素进行仔细、深入研究的需要,但它们为我们讲述的故事增添了一个迫切需要的方面。

应对反应式编程的尴尬团队

https://2020.ecoop.org/details/ecoop-2020纸张/19/Tackling-the-Awkward-Squad-for-Reactive-Programming-the-Actor-Reactor-Model

Sam Van den Vonder、Thierry Renaux、Bjarno Oeyen、Joeri De Koster、Wolfgang De Meuter

反应式编程是一种编程范式,其中程序在内部由依赖关系图表示,依赖关系图用于在程序的输入发生变化时自动(重新)计算程序的各个部分。实际上,反应式编程只能用于应用程序的某些部分:反应式程序通常嵌入到仍然使用JavaScript或Scala等普通命令式语言编写的应用程序中。在本文中,我们研究了这种嵌入,并将“反应式编程的笨拙团队”提取为三个关注点,这三个关注事项对于真实世界的软件开发至关重要,但不适合于反应式编程。它们与持久的计算、副作用以及命令式代码和反应式代码之间的协调有关。为了解决这些问题,我们设计了一个新的编程模型,称为参与者-反应器模型,在该模型中,程序被拆分为多个参与者和反应器。参与者和反应器对命令式代码和反应式代码进行了严格的分离,它们可以通过使用数据流的许多组合运算符进行组合。我们用一种叫做Stella的语言通过自己的实现来演示模型。

代数子类型的简单本质:主类型推理与子类型简化

代数亚型的简单本质:使亚型变得容易的主类型推理莱昂内尔·帕雷奥(Lionel Parreaux),ICFP 2020。

MLsub用子类型扩展了传统的Hindley-Milner类型推断,同时保留了紧凑的主类型,这是一个令人兴奋的新发展。然而,依赖于双代换和极型的新概念,并利用抽象代数的高级概念,它在双统一方面的规范很难理解。在本文中,我们表明,这些事实上对于理解MLsub中起作用的机制并不重要。我们提出了一种称为Simple-sub的替代算法,该算法可以在under中高效实现500行代码(包括解析、简化和漂亮打印),看起来更熟悉,也更容易理解。

还有一个介绍性博客帖子和一个在线演示

Stephen Dolan的代数亚型(讨论)出乎意料地提供了一种将类型推理和分型相结合的解决方案,但使用了一些沉重而不寻常的机制。现在莱昂内尔·帕雷奥(Lionel Parreaux)表明,该系统可以以一种非常简单和令人愉快的方式实现。希望它能成为真正的语言!

区块链在程序设计语言理论中的应用

让我们来谈谈区块链。目标是使用这个论坛主题来强调它对编程语言理论和实践的有用性。如果你熟悉现有的研究成果,请在此分享。此外,您可以自由提出区块链如何提高语言和开发人员生产力的想法。

举一个很好的例子:区块链有助于正式思考相互了解常识,并可能考虑通过巨大的分布式计算结构共享星系间计算能力。如果我们能够以这样一种方式设计合同,即最大限度地利用相互间的知识,同时最大限度地减少您必须“证明您的抵押品”的情况下的共同知识,那么第三方交易可以消除大量后台负担。但是,这样的研究可能也会给计算机科学的其他领域带来好处。

一些语言研究者,如马克·S·米勒,一直梦想着Agoric和长达数十年的安全智能合同探索

一些人可能也意识到智能合约的验证是一个重要的研究领域,因为以太坊智能合约中的逻辑错误导致钱包被盗。

转门+:作为宏的从属类型系统

2017年,东北大学的一个团队发布了Turnstile,这是一个在Racket中实现命题类型语言的框架;cf.纳瓦什的故事将系统键入为宏这个系统真的很好,因为它允许类型系统以类似于理论PL研究人员在论文中所采用的方式来表示,并且因为它连接到Racket干净的编译器后端。

现在,该团队成员之一斯蒂芬·张(Stephen Chang)与新合著者迈克尔·巴拉滕(Michael Ballantyne)、乌萨米洛·特纳(Usamilo Turner)和威廉·鲍曼(William Bowman)发布了一篇改写稿,他们称之为“闸门+”(Turnstile+),以及一篇POPL文章,作为宏的从属类型系统从那篇文章的引言来看:

转门+代表着对其前身的重大研究飞跃。具体来说,我们解决了实现依赖类型及其附带DSL和扩展(Turnstele无法支持)所需的主要挑战,同时保留了Turnstelle的原始功能。例如,一个相当大的障碍是宏扩展阶段和程序运行时阶段之间的分离。由于依赖类型的语言可能在类型检查时对表达式求值,因此使用宏检查依赖类型需要新的宏设计模式和抽象来交错扩展、类型检查和求值。以下总结了我们的主要创新。

  • Turnstile+需要一个完全不同的API来实现一种语言的类型。它必须直截了当,并且具有足够的表达能力,以表示一系列构造,从基类型到∏-类型之类的绑定形式,再到索引归纳类型族的数据类型定义形式。
  • Turnstile+包含一个用于定义类型级计算的API,我们称之为宏扩展规范化。程序员使用类似于常见的纸面符号的语法编写简化规则,Turnstile+生成一个宏定义,在宏扩展期间执行简化。这允许轻松实现模块化类型级评估。
  • Turnstile+的新型API增加了一个通用型操作界面,实现了错误消息、模式匹配和重新聚集等功能的模块化实现。这对于实现诸如检查中间类型检查步骤和构造部分术语的战术系统等工具尤为重要。
  • 闸机+的核心类型检查基础设施需要大修,特别是在一流的环境中,以适应形状[x:τ]……的相关绑定结构等特征。。。,即望远镜[de Bruijn 1991;McBride 2000]。
  • 与此相关的是,Turnstile+的推理规则语法得到了扩展,使得在望远镜上或参照望远镜的前提上的操作可以作为折叠操作,而不是作为地图操作

该代码可在https://github.com/stchang/macrotypes网站

柱状图:你必须了解过去才能理解现在

柱状图:你必须了解过去才能了解现在作者:Tomas Petricek,肯特大学

程序是通过各种交互创建的。程序员可能会编写一些代码,以交互方式运行它以检查它是否工作,使用复制和粘贴,应用重构或从自动完成列表中选择一项。编程研究经常忘记这些,并将程序表示为结果文本。因此,思考这种互动往往超出了范围。本文将重点从程序转移到一个更有趣的编程问题。

我们将程序表示为交互列表,例如触发自动补全和选择选项、声明值、引入变量或计算代码段。我们探讨了这种思考程序的方式的一些后果。首先,如果我们通过使用样本输入编写具体代码并应用重构来创建函数,我们不会丢失样本输入,可以在以后使用它进行调试。其次,如果我们将以交互方式执行代码视为一种交互并存储结果,我们可以稍后使用此信息在自动完成中提供更精确的建议。第三,通过摆脱文本表示,我们可以显示与文本相同的程序,但也可以显示在受电子表格启发的视图中。第四,我们可以让程序员通过直接与实时预览交互来创建程序,因为这些交互可以被记录下来,并作为程序历史的一部分。

我们在一个简单的数据探索编程环境中通过示例讨论关键思想。我们在本文中的重点是原则,而不是提供微调的用户体验。我们使我们的环境更加明确,特别是当这揭示了幕后发生的事情时。我们的目的是表明,将程序视为交互列表是一种强大的视角变化,可以帮助我们构建具有新颖功能的更好的编程系统,使编程更容易、更容易访问。这篇互动文章中的数据探索环境可能还不是这样,但它让我们看到了未来。

应用范畴理论-新兴的构成学

25分钟精彩的介绍性演讲:哟!Lambda Jam 2019-Ken Scambler-应用范畴理论(幻灯片)

编程、量子物理、化学、神经科学、系统生物学、自然语言解析、因果关系、网络理论、博弈论、动力系统和数据库理论有什么共同点?

作为函数式程序员,我们知道范畴理论对我们的工作有多有用,或者它看起来有多深奥和遥远。不太为人所知的是,将范畴理论应用于现实世界是一个令人兴奋的研究领域,在过去几年里才真正兴起。事实证明,我们与其他领域和行业分享了一些重要的东西——我们希望从小事中做大事情,而不是让一切都陷入地狱!关键是组成性,这是范畴理论的中心思想。

之前:构图中的七幅素描:对应用范畴理论的邀请

(通过布莱恩·麦肯纳)

紧张情绪被认为有害

紧张情绪被认为有害亚历山大·拉什

TL;DR:尽管Tensor在深度学习中无处不在,但它已经崩溃了。它强迫人们养成一些坏习惯,例如暴露私有维度、基于绝对位置广播以及在文档中保留类型信息。这篇文章提供了一种替代方法的概念证明,命名张量,具有命名维度。此更改消除了索引、dim参数、einsum样式的解包和基于文档的编码的需要。原型PyTorch库此博客帖子附带的内容如下命名传感器

感谢Edward Z.Yang向我介绍这份“被认为有害”的立场文件。

构图中的七幅素描:对应用范畴理论的邀请

构图中的七幅素描:对应用范畴理论的邀请

2018年:Brendan Fong和David I.Spivak

范畴理论正在成为所有纯数学的中心枢纽。这是无与伦比的它能够组织和分层抽象,找到各种结构之间的共性,并促进不同数学结构之间的交流社区。但它也一直在向科学、信息学和工业领域拓展。我们相信它有潜力成为世界上主要的凝聚力在理论和实践两个不同世界之间架起桥梁。麻省理工学院的座右铭是mens et manus,拉丁语表示心意和手。我们相信范畴理论和纯粹一般来说,数学在思维领域停留的时间太长了;时机成熟了到手。
这是对范畴理论的一个非常平易近人但很有用的介绍。它避免了《锡拉》和《查理迪斯》在第二页之后变得难以理解(许多学术文本都是这样),也几乎没有触及表面(许多流行文本都是如此)。