gpt4 book ai didi

java - Haskell 的语法是什么,哪种类型的解析器可以解析它?

转载 作者:行者123 更新时间:2023-12-05 01:14:13 24 4
gpt4 key购买 nike

我正在尝试为 JDK 11.x 创建一个解析库,该库读取 Haskell 代码作为输入,然后将其转换为 Java 以由 JVM 执行。我称它为 Jaskell,但我需要知道 Haskell 的正式语法结构才能确定 Jaskell 需要什么样的解析器(即 LL 或 LR 解析器)。

最佳答案

I need to know Haskell's formal grammar structure

Haskell's grammarcontext sensitive由于significant indentation .在词汇语法和上下文无关语法中,有一些歧义需要由 longest match 解决。 (“最大咀嚼”)规则。

syntax specification 之间的差异和实现确实存在,据说它们都没有精确地实现规范。还有很多 language extensions .

有一个 ready-made scanner definition在那里用旧版本的 Antlr 扫描 Haskell , 但仍然 no parsing grammar .我猜你必须从上述项目(Frege、Eta)或 ghc 中获取解析器。本身。

查看 source treeghc-lib-parser package 的描述,我们感谢this post GHC 的解析器是由 happy parser generator 生成的, 生成 LALR (1)解析器。这意味着 Haskell 的语法是明确的,不需要 happy 的 GLR -生成能力。

make a parsing library that reads Haskell code ... then translates it into Java

您想创建一个 Haskell-Java 交叉编译器。只是看看我会说的类型系统的差异,这是非常牵强的。可以将 Haskell 压缩到 JVM 字节码中,但我无法想象,任何一种生成的 Java 都可能非常有用。另一方面,Haskell 编译 internally对于称为“核心语言”的东西,基本上是类型化的 lambda 演算。这可能是一个更直接的起点。

如果您有兴趣,这里有一个 Haskell-Javascript交叉编译器(基于 ghc),并且有一个 javascript-java交叉编译器。问题解决了!或者不是吗?

关于java - Haskell 的语法是什么,哪种类型的解析器可以解析它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59092560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com