如何将自己的语言解析为java文件

时间:2017-04-17 01:26:03

标签: java compiler-construction

我正在尝试创建一个将我自己的格式解析为java文件的java程序。例如,当我用

编写文件时
show("Hello World");

并将此文件保存为hello。[my_own_extension]并从我的程序中读取并导出类似的内容,

class Hello {
 public static void main(String[] args) {
    System.out.println( "Hello World");
  }
}

我在网上看过很多文章。但他们正在写关于javacc,编译技术,词法分析等等。但我唯一想做的事就是 1.阅读文件
2.测试文件是否符合我的规则
3.写(输出).java文件和.class文件
我怎么能这样做?
我可以用以下方式做到这一点,
1.使用java.io或java.nio包(读取或写入文件)
2.为我的规则编写自己的逻辑(可能是简单的java代码)
我不是说,我正在创建一种新的编程语言,我不是一个java大师。我只是想知道。

1 个答案:

答案 0 :(得分:1)

  

我可以编写自己的程序来创建解析器,而无需使用任何工具,例如javcc吗?

是的,你可以 1 。实际上,在我的荣誉课程(近40年前)中,讲师为我们设置了一个从头开始为Pascal实现递归下降解析器的任务。 IIRC这是一项很多工作。

但是如果你认真对待它,解析器生成器会为你提供更好的解析器,而且工作量更少。

我上面提到的练习是关于编译器构建的~10周“荣誉”级别课程的一部分。因此,不要想象你必须从头开始阅读/学习更少的知识,而不是阅读/学习使用javacc。

1 - 计算机可以做的任何任务,人类......或者足够大的人类团队......都可以做到。这可能需要一个不切实际的长时间,并花费不切实际的金钱,但它是可能的。在这个的情况下,这是一个现实的任务。这就是first parser generators发明之前所有解析器的创建方式。事实上,即使在那之后PG也需要很长时间才能继续存在。