Tel*_*ian 35 .net compiler-construction parsing visual-studio
我使用了一些可用的解析工具创建了一些不同的完整编程语言.但是,有人会如何创建运行.Net框架的编程语言?我是否必须输出.Net IL并编译它或是否有更高级别的抽象?
此外,是否有一种简单的方法可以在Visual Studio中使用该语言?
Han*_*ant 15
您将需要查看Microsoft Research Common Compiler Infrastructure(CCI)项目.它提供了生成元数据所需的一切,以及程序集的MSIL.调试.pdb文件对于让你的语言变得非常重要.
有一个姐妹项目,CCI代码模型和AST,也可能有用,取决于你有多远.
Ner*_*ury 11
有一个用C#构建的LOLCode编译器可能是一个很好的起点.
http://code.google.com/p/lolcode-dot-net/
至于在Visual Studio中实现,有一个名为Spark(http://www.sparkviewengine.com/)的开源视图引擎,它可以帮助智能感知工作.背景是不同的,但是教训是相同的,它很难,而且它不是一个记录良好的过程.
您的编译器负责将其获取的代码转换为ILCode.ILCode是所有.net语言编译的通用语言.此代码在运行时由JIT-Compiler解释.当然,如果你用C#编写编译器,它可以依赖框架中的CodeDom类来实现它.
不确定这是否是您正在寻找的,但在我有一个问题之后,我已经创建了一个.net编译器,用于Brainf**k作为excersize(第6部分包含实际的编译器源代码,也在GitHub上))
本质上,实际的编译器可以用任何.net语言编写,并使用System.Reflection.Emit命名空间来创建程序集,类,方法等,并将IL发送到它们中.
创建一种新语言的实际工作显然包括编写一个解析器/词法分析器/分析器/任何可以将你的程序分解成类并"喂"你的编译器的东西 - 抱歉,我没有经验,但查看这个资源列表如何编写一个编译器.
您确实希望阅读ECMA-335以了解CLI的工作原理:它支持哪些数据类型以及它实际执行的命令.
您的编译器可以输出CIL汇编语言,也可以输出汇编(.dll
/ .exe
)文件。
看一下CLI(通用语言基础结构)标准,该标准描述了CLI(目标平台),CIL(汇编语言)和汇编的二进制文件格式。
顺便说一句,该标准也可以作为带有注释的书使用。
归档时间: |
|
查看次数: |
10186 次 |
最近记录: |