近日,Google 工程师在其开源博客中介绍了 Logica,一种新的开源逻辑编程语言。
Logica 是 Yedalog(Google 早期开发的一种语言)的继承者,是一种类似于 Datalog 的逻辑编程语言。其代码会编译成 SQL,并在 Google BigQuery 上运行(实验性地支持 PostgreSQL 和 SQLite)。此外,Logica 支持 SQL 所缺乏的干净和可重用的抽象机制,支持模块和导入,可以在交互式的 Python 笔记本上使用。
文中提到,尽管 SQL 是处理数据的首选语言,但其并不是完美无瑕的,比如查询语句过长 —— 一个查询跨越数百行是经常发生的事情。然而,更关键的缺陷在于它对抽象的支持非常有限。好的编程通常是创建小的、可理解的、可重用的逻辑片段,这些逻辑片段可以被测试,被赋予名称,并被组织成包,这些包以后可以用来构建更有用的逻辑片段。但 SQL 抵制这种工作流程。
Google 工程师们认为 Logica 可以解决这些问题。其表示,逻辑编程语言通过使用数学命题逻辑的语法而不是自然英语语言来解决 SQL 的问题,形式逻辑的语言更是数学家专门为了使复杂语句的表达更容易而设计的,而 Logica 进一步扩展了经典逻辑编程语法,并重视聚合,其名字代表着 “Logic + Aggregation”。Logica 的目标之一是提高查询的可读性,并且更好地进行大数据处理。
目前,Logica 已在 Apache 2.0 许可下开源,关于它的详细信息可以查阅 Google 开源博客。