Абстрактный (программирующий) язык, созданный для перехода - PullRequest
0 голосов
/ 06 января 2020

Введение

Часто я сталкиваюсь с ситуацией, когда библиотека написана на определенном языке программирования. Это здорово, если я хочу использовать библиотеку на одном языке, но если я хочу использовать другой язык, это будет проблемой (это не значит, что может быть более или менее хакерский способ).
Для некоторых библиотек у меня есть ощущение, что они были написаны на этом конкретном языке программирования, просто потому, что подойдет любой язык (и из-за личных предпочтений автора), что означает отсутствие специфики языка c высокоуровневая внешняя 3-я сторона -библиотеки используются. Для этих ситуаций я подумал, что было бы неплохо, если бы существовал какой-то абстрактный (программирующий) язык, на котором автор библиотеки мог бы определять алгоритмы, но который затем можно было бы перенести на многие другие языки программирования. Таким образом, если я хочу использовать эту библиотеку, я могу просто использовать транспортер, чтобы получить эту библиотеку на моем языке по своему выбору.


Актуальный вопрос

Итак, я ищу язык, специально предназначенный для перевода на самые популярные языки (например, Java, C / C ++, Python). Меня интересует, пытался ли кто-то создать такой «универсальный» язык транспортера раньше.

Обратите внимание, что я не ищу конкретный переносчик с одного языка на другой. Я хочу знать, существует ли (язык программирования) язык, который был разработан для того, чтобы его можно было перенести в исходный код многих различных актуальных языков программирования. Таким образом, искомый язык, вероятно, даже не запускается сам по себе (только переданный код будет реальной программой).
Хотя мне было бы интересно услышать общие плюсы и минусы существования такого языка, это также не то, о чем этот вопрос из-за правил здесь на SO. Поэтому я бы попросил вас не писать основанные на мнении ответы в таком стиле.

Ответ на этот вопрос вполне может состоять в том, что такого языка нет, но, как моя речерча не принесла что-нибудь, я подумал, что, может быть, кто-то здесь знает о таком языке, что я мог бы пропустить из-за того, что он не используется широко.

1 Ответ

1 голос
/ 06 января 2020

Один язык, который был разработан с целью переноса на другие языки, это Haxe
На момент написания он поддерживает генерацию исходного кода для:

  • JavaScript
  • ActionScript 3
  • PHP (включая PHP7)
  • C ++
  • Java
  • C#
  • Python
  • Lua

(ссылка: https://haxe.org/documentation/introduction/compiler-targets.html)

Также поддерживается компиляция непосредственно в байт-код для указанных c ВМ

...