编写数值线性代数的编译器

时间:2011-05-12 08:03:10

标签: java compiler-construction clr

我正在开发一个小项目,该项目的主要目的是为数值线性代数创建一个编译器。我正在计划的方法是,

  1. 使用Java编程语言创建编译器
  2. 这将生成原生汇编代码
  3. 我将使用一个切除的数值线性代数包(用C语言编写),并将与编译器生成的汇编代码链接。
  4. 此外,我正在考虑支持我将要创建的新语言中的多线程。

    我对汇编语言很陌生并且有以下问题。

    1. 为了支持多线程,我是否需要使用单独的线程库,或者是否需要使用生成的汇编代码来完成?
    2. 由于我是在Windows平台上开发的,所以用C#语言开发它并生成CLR,IL而不是生成本机汇编语言是值得的。
    3. 谢谢,

      Upul

2 个答案:

答案 0 :(得分:4)

最好先将“编译”输出生成为C代码并使用C编译器生成汇编代码

这比直接到汇编程序更容易开发,因为您可以检查中间代码是否有错误,而且您不必担心将程序包链接到生成的代码中,因为这将由编译器完成

答案 1 :(得分:1)

答案1.已预先假定您选择的汇编程序是好的。但我强烈建议不要在以下方面劝阻它:

如今,汇编程序再也无法打败用C语言,C语言或D语言编写的优化程序。但是,作为编译器编写器,您可以通过使用这种语言而不是汇编程序生成输出来避免麻烦。最重要的是:你没有固定在si8ngle平台上。

当您对此做出决定时,您的第一个问题将转换为:“(如何)我的目标语言是否支持多线程?”