gpt4 book ai didi

java - 使用 ASM 库在 JVM 上编写自己的编译器,如何?第一步?

转载 作者:太空宇宙 更新时间:2023-11-04 15:08:47 25 4
gpt4 key购买 nike

我想创建自己的 jvm 语言作为大学项目!

经过调查我发现了ASM库HERE

似乎世界上有些语言使用它来创建自己的 jvm 语言但我的问题是

为此目的的第一步是什么?

例如我想创建这样的语法:

public class A : B,IC,ID // Inheritance,Interfaces 
{
public A(z:Integer) = // Constructor
{

}

public Method(x:Integer,y:String):Float = // Method
{

}
}

我该如何开始?关注自己的语法或关注语言特性

ASM 库对此有用吗?

如果是,我怎样才能找到好的教程?ASM 4 用户指南好复杂

是否有任何入门教程?

请指导我的第一步谢谢

最佳答案

通常编译器由3个阶段组成:

  • 解析源代码并收集内部表示(通常是树)中的所有信息

  • 分析内部表示以计算缺少的信息和/或优化代码

  • 将内部表示转换为目标机器代码(例如 java 字节码)

ASM 库只能帮助构建 3d 舞台。

你应该从第一阶段开始。首先,尝试编写Recursive Descent Parser,如 http://journal.stuffwithstuff.com/2011/03/19/pratt-parsers-expression-parsing-made-easy/ 所示。 。更复杂的例子是 Dart Analyzer - 解析 dart 语言的源代码并创建内部表示,但不生成字节码。

查看编译器-编译器,例如 ANTLR来决定对于新手来说,手工制作的解析器是否比掌握如此复杂的工具更容易编写。

然后看List of JVMlanguages ,找到一个语法与您的语言接近且开源的,并根据您的需要更改其解析器。

关于java - 使用 ASM 库在 JVM 上编写自己的编译器,如何?第一步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21625205/

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