识别不同语言并将它们发送到相应编译器的编译器.可能?

Sha*_*pta 4 language-agnostic compiler-construction programming-languages compiler-development

我在想是否有可能将asp.net,php和java连接成一个页面.

其实我现在不需要任何这样的东西.由于某些语言的某些功能很好而且某些功能或其他一些语言都很好,所以这个想法让我大吃一惊,所以如果我将所有这些功能合并为一个,我就会想到

我的意思是,我正在创建一个页面,其中包含来自所有3种语言的asp.net php和java的代码.

<asp code></asp code>
<php code></php code>
<java code></java code>
Run Code Online (Sandbox Code Playgroud)

要么

<html>
    <asp code>
    <php code></php code>
    <java code></java code>
    </asp code>
</html>
Run Code Online (Sandbox Code Playgroud)

或类似的编译器识别不同的代码段并将它们发送到其编译器上运行以执行.并且输出可以被XML中的其他语言识别和使用

我不是说所有的语言互相交流.虽然他们可以通过XML互相交流.但我只想说该文件被编译为具有不同编程语言代码的单个实体,这些代码被发送到各自的编译器以执行并最终返回到父编译器

我正在考虑一个可以开发的编译器,它可以识别不同的语言代码并将它们发送到编译器,如.net框架所做的那样,例如MSIL

Dar*_*ord 5

可能吗?

引用"辛普森一家"中的牧师Lovejoy"简短的回答no with if.很长的回答是的,有一个但是."

,如果您使用当前可用的技术,目前无法实现.

是的,但是它需要你自己的服务器作为填充程序,拆分代码的不同部分并将它们发送到必需的语言解析器+编译器,然后将这些单独的部分重新组合在一起以显示页面.

编辑: @Shantanu:我很高兴.实施完全由你完成,因为我根本没有调查过这样的事情.

最终我觉得这不是最有成效的事情,因为你可能遇到很多问题.

最大的问题是:来自一种语言的代码将不具备其他语言所做的概念.

即如果你的ASP中有一个用值定义的变量,那么Java或PHP版本就不会毫不费力地意识到它,更不用说它们完全无法从彼此的进程中访问内存.

但是,如果你想沿着这条路走下去,我建议你研究像ANTLR这样的解析器生成器.它将帮助您编写一个可以查找特殊标记的解析器(注意,如果需要,可以使用正则表达式或手动解析器完成).

一旦你有分割代码,你将希望将它发送到每种语言的编译器,你应该能够从中接收文本输出.一旦你有了这个文本,它应该是所有html + javascript,然后可以将它们组合在一起以显示页面.

我会说,如果你想让3种语言互动,你将创建一个巨大的项目.使用.Net框架并为其编写PHP和JAVA(可能已经存在)语言可能更容易,允许您放弃创建整个服务器堆栈.