The GraphAlg domain-specific language for graph algorithms enables user-defined algorithms in graph databases. In this work we show how GraphAlg is built on top of the formal MATLANG language for matrix manipulation. Starting from MATLANG, we describe the extensions to MATLANG needed to derive GraphAlg Core, a simplified version of GraphAlg that is used as the internal representation in the GraphAlg compiler. Furthermore, we prove that any GraphAlg Core expression can be simulated in an extension of for-MATLANG that supports simultaneous induction.
翻译:GraphAlg是一种面向图算法的领域特定语言,支持用户在图形数据库中定义自定义算法。本文展示了GraphAlg如何建立在用于矩阵操作的正式MATLANG语言之上。从MATLANG出发,我们描述了推导GraphAlg Core所需对MATLANG的扩展——GraphAlg Core是GraphAlg编译器内部表示所用的简化版本。此外,我们证明了任何GraphAlg Core表达式均可在支持同步归纳的for-MATLANG扩展中进行模拟。