我对编程语言翻译是完全陌生的,不知道如何开始。我想将用PL/SQL编写的存储过程转换为Java,以使我们的应用程序数据库独立。如何将用SQL编写的存储过程转换为Java。参考了ANTLR
大约有50个存储过程,每个存储过程大约有10000-15000行代码。我正在寻找一种方法来实现这一点。
我已经得到了ANTLR解析器的参考资料,并且在GitHub上发现了一些解析器,但没有线索,怎么去解决它。
我对编程语言翻译是完全陌生的,不知道如何开始。我想将用PL/SQL编写的存储过程转换为Java,以使我们的应用程序数据库独立。如何将用SQL编写的存储过程转换为Java。参考了ANTLR
大约有50个存储过程,每个存储过程大约有10000-15000行代码。我正在寻找一种方法来实现这一点。
我已经得到了ANTLR解析器的参考资料,并且在GitHub上发现了一些解析器,但没有线索,怎么去解决它。
首先你必须知道一些理论,并且你还必须学习一些关于ANTLR的知识。 ANTLR解析器会给你“仅”AST(抽象语法树),这只是第一步。其余的由你决定。有一篇名为“Life after parsing”的文章描述了自动翻译的问题。如果你没有这方面的经验,你可能不应该这样开始。
可以使用ANTRL为:
我其次。鉴于Java和PL/SQL的*完全*不同的范例,即使您在转换器中付出了很多努力,并且在经过无数个月的努力之后以某种方式使其工作,您将最终得到大量糟糕的Java代码无论如何,这对于人类来说是不可读的。只需从头开始。 –
忘掉这种方法。从头开始写。您可以使用ANLR从SQL过程中提取SQL,从SQL中获取表名以获得一些总览。但就是这些。 PS:我是这些解析器的合作者之一。 – ibre5041
PL/SQL和Java是完全不同的语言,所以你的问题是“我如何自动重写500,000 LOC”,这是不可能的。你需要雇用人员。 – Ben
@ ibre5041你是说我应该开始写一个新的解析器或使用现有的解析器?一个解析器会将代码从sql转换为java吗? – Nidhi