Just as the $λ$-calculus uses three primitives (abstraction, application, variable) as the foundation of functional programming, inheritance-calculus uses three primitives (record, definition, inheritance) as the foundation of declarative programming. It trivially embeds the $λ$-calculus, although the entire semantics rests solely on naive set theory; as a consequence, all constructs including inheritance are inherently commutative, idempotent, and associative; the linearization problem of multiple inheritance does not arise. This induces a fully abstract semantics of the lazy $λ$-calculus with respect to Böhm tree equivalence~\cite{barendregt1984lambda}. Inheritance-calculus is distilled from MIXINv2, a practical implementation in which we observed further emergent phenomena: the same code acts as different function colors~\cite{nystrom2015color}; ordinary arithmetic yields the relational semantics of logic programming~\cite{vanemden1976semantics}; self-reference resolves to multiple targets; and programs are immune to the Expression Problem~\cite{wadler1998expression}. This makes inheritance-calculus strictly more expressive than the $λ$-calculus in both common sense and Felleisen's sense~\cite{felleisen1991expressive}. These properties suggest applications to configuration languages, dependency injection, object-oriented programming, composable effect systems, modular software architectures, file-system-as-compiler, general-purpose programming, and no-code development.


翻译:正如$λ$-演算以三个基本要素(抽象、应用、变量)作为函数式编程的基础,继承演算以三个基本要素(记录、定义、继承)作为声明式编程的基础。它平凡地嵌入了$λ$-演算,尽管其整个语义完全基于朴素集合论;因此,包括继承在内的所有构造本质上都是可交换、幂等且可结合的;多重继承的线性化问题不会出现。这导出了关于Böhm树等价~\cite{barendregt1984lambda}的惰性$λ$-演算的完全抽象语义。继承演算提炼自MIXINv2——一个实用的实现,在其中我们观察到更多涌现现象:同一段代码可作为不同的函数颜色~\cite{nystrom2015color};普通算术产生逻辑编程的关系语义~\cite{vanemden1976semantics};自引用解析为多个目标;程序对表达式问题~\cite{wadler1998expression}免疫。这使得继承演算在常识层面和Felleisen意义~\cite{felleisen1991expressive}上都严格比$λ$-演算更具表达力。这些特性表明其在配置语言、依赖注入、面向对象编程、可组合效应系统、模块化软件架构、文件系统即编译器、通用编程以及无代码开发等领域具有应用潜力。

0
下载
关闭预览

相关内容

继承是面向对象软件技术当中的一个概念,与多态、封装共为面向对象的三个基本特征。 继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。
【牛津大学博士论文】可微分编程的结构基础,176页pdf
专知会员服务
26+阅读 · 2023年8月20日
【2023新书】并行算法,Parallel Algorithms ,400页pdf
专知会员服务
72+阅读 · 2023年8月6日
【2023新书】程序证明,Program Proofs,642页pdf
专知会员服务
67+阅读 · 2023年3月29日
【Cell】神经算法推理,Neural algorithmic reasoning
专知会员服务
29+阅读 · 2021年7月16日
【经典书】计算理论导论,482页pdf
专知会员服务
86+阅读 · 2021年4月10日
伊利诺伊《算法》书籍,集20年之大成,附472页pdf
专知会员服务
65+阅读 · 2020年9月27日
【经典书】算法C语言实现,Algorithms in C. 672页pdf
专知会员服务
82+阅读 · 2020年8月13日
【Java实现遗传算法】162页pdf,Genetic Algorithms in Java Basics
专知会员服务
44+阅读 · 2020年7月19日
【AAAI2021】对比聚类,Contrastive Clustering
专知
26+阅读 · 2021年1月30日
可视化理解四元数,愿你不再掉头发
计算机视觉life
31+阅读 · 2019年1月2日
换个角度看GAN:另一种损失函数
机器之心
16+阅读 · 2019年1月1日
448页伊利诺伊大学《算法》图书-附下载
专知
15+阅读 · 2018年12月31日
【论文】变分推断(Variational inference)的总结
机器学习研究会
39+阅读 · 2017年11月16日
并行算法演进,从MapReduce到MPI
凡人机器学习
10+阅读 · 2017年11月5日
GAFT:一个使用 Python 实现的遗传算法框架
Python开发者
10+阅读 · 2017年8月1日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
3+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Arxiv
0+阅读 · 3月16日
Arxiv
0+阅读 · 2月18日
Arxiv
0+阅读 · 2月16日
Arxiv
0+阅读 · 2月7日
VIP会员
最新内容
技术、多域威慑与海上战争(报告)
专知会员服务
3+阅读 · 今天15:04
“在云端防御”:提升北约数据韧性(报告)
专知会员服务
2+阅读 · 今天14:54
人工智能及其在海军行动中的整合(综述)
专知会员服务
2+阅读 · 今天14:07
美军MAVEN项目全面解析:算法战架构
专知会员服务
16+阅读 · 今天8:36
从俄乌战场看“马赛克战”(万字长文)
专知会员服务
10+阅读 · 今天8:19
相关VIP内容
【牛津大学博士论文】可微分编程的结构基础,176页pdf
专知会员服务
26+阅读 · 2023年8月20日
【2023新书】并行算法,Parallel Algorithms ,400页pdf
专知会员服务
72+阅读 · 2023年8月6日
【2023新书】程序证明,Program Proofs,642页pdf
专知会员服务
67+阅读 · 2023年3月29日
【Cell】神经算法推理,Neural algorithmic reasoning
专知会员服务
29+阅读 · 2021年7月16日
【经典书】计算理论导论,482页pdf
专知会员服务
86+阅读 · 2021年4月10日
伊利诺伊《算法》书籍,集20年之大成,附472页pdf
专知会员服务
65+阅读 · 2020年9月27日
【经典书】算法C语言实现,Algorithms in C. 672页pdf
专知会员服务
82+阅读 · 2020年8月13日
【Java实现遗传算法】162页pdf,Genetic Algorithms in Java Basics
专知会员服务
44+阅读 · 2020年7月19日
相关资讯
【AAAI2021】对比聚类,Contrastive Clustering
专知
26+阅读 · 2021年1月30日
可视化理解四元数,愿你不再掉头发
计算机视觉life
31+阅读 · 2019年1月2日
换个角度看GAN:另一种损失函数
机器之心
16+阅读 · 2019年1月1日
448页伊利诺伊大学《算法》图书-附下载
专知
15+阅读 · 2018年12月31日
【论文】变分推断(Variational inference)的总结
机器学习研究会
39+阅读 · 2017年11月16日
并行算法演进,从MapReduce到MPI
凡人机器学习
10+阅读 · 2017年11月5日
GAFT:一个使用 Python 实现的遗传算法框架
Python开发者
10+阅读 · 2017年8月1日
相关基金
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
3+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员