愛伊米

Google 工程師談論開源邏輯程式語言 Logica

出品|開源中國

文|御坂弟弟

近日,Google 工程師在其開源部落格中介紹了 Logica,一種新的開源邏輯程式語言。

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 許可下開源