首页 > 解决方案 > 为转译而构建的抽象(编程)语言

问题描述

介绍

我经常遇到一种情况,即库是用特定的编程语言编写的。这很好,如果我想以相同的语言使用库,但如果我想使用不同的语言,那将是一个问题(这并不意味着可能会有或多或少的 hacky 方式)。
对于某些库,我感觉它们是用那种特定的编程语言编写的,仅仅是因为任何语言都可以(并且由于作者的个人偏好),这意味着没有使用特定语言的高级外部 3rdparty 库. 对于这些情况,我认为如果有某种抽象(编程)语言,库作者可以在其中指定算法,然后可以将其转换为许多其他编程语言,那将是整洁的。因此,如果我想使用该库,我可以简单地使用转译器以我选择的语言获取该库。


实际问题

所以我正在寻找的是一种语言,它专门用于转换成最流行的语言(例如Java、C/C++、Python)。我很感兴趣是否有人曾经努力创建过这样一种“通用”的转译器语言。

请注意,我不是在寻找从一种语言到另一种语言的特定转换器。我想知道是否存在一种(编程)语言,该语言被设计为可转换为许多不同实际编程语言的源代码。因此,我正在寻找的语言可能甚至不会自行运行(只有转译的代码才是真正的程序)。
虽然我很想听听这种语言存在的一般利弊,但这也不是这个问题的意义所在,因为这里有关于 SO 的规则。因此,我会问你,不要以这种风格写基于意见的答案。

这个问题的答案很可能是没有这种语言,但由于我的研究没有提出任何东西,我想也许这里有人知道这种语言,我可能会因为它不广泛而错过用过的。

标签: transpiler

解决方案


Haxe是一种旨在被转换为其他各种语言的语言
。在撰写本文时,它支持为以下对象生成源代码:

  • JavaScript
  • 动作脚本 3
  • PHP(包括 PHP7)
  • C++
  • 爪哇
  • C#
  • Python
  • 卢阿

(参考:https ://haxe.org/documentation/introduction/compiler-targets.html )

它还支持直接编译为特定 VM 的字节码


推荐阅读