Как я могу сказать по-английски, что язык программирования может быть скомпилирован с другими языками программирования?
Примером может быть Haxe . На сайте язык расшифровывается как «Мультиплатформа»:
Мультиплатформенность: Haxe может быть скомпилирован для всех популярных платформ программирования с его быстрым компилятором - JavaScript, Flash, NekoVM, PHP, C ++, C # и Java (скоро)
но мультиплатформенность может быть неправильно истолкована как аппаратная или программная платформа (win, mac, linux).
Итак, какое слово наиболее подходит для описания этой способности?
Ответы:
Обычный термин «транскомпиляция» - не общий, а технически правильный. Это не только для модных новых языков сценариев (CoffeeScript -> JavaScript); первые компиляторы C ++ были фактически транскомпиляторами к C.
источник
Извините, господа, но слово для этого просто "скомпилировано" . Это означает превращение одного типа кода в другой тип кода. Не имеет значения, является ли этот код английским, C ++, машинным кодом x86, машинным кодом ARM, Java, байт-кодом или обратно на английский. Обычно мы используем его для обозначения перехода от языка программирования к машинному коду, но это аспект, который слово приобрело со временем. И, эй, если достаточное количество людей начинает неправильно использовать слово, оно действительно приобретает этот новый смысл. Но если вам нужно слово для превращения Haxe в C ++, это слово «компилируется» .
(Кроме того, я игнорирую Мерриам-Вебстер, потому что они глупы, потому что они не согласны со мной ... хммм)
источник
Возможно, это вопрос к https://english.stackexchange.com/, но я бы сказал, что процесс компиляции включает компиляцию на другой язык высокого уровня и не ограничивается только компиляторами, которые компилируются с использованием машинного кода.
Как слово «компиляция» вообще не относится к компьютерным компиляторам и является достаточно общим. Мне приходит в голову «компиляция таблицы» или «составление списка имен», поэтому она достаточно широка для многих целей (текстовые процессоры, такие как Latex compile, и т. Д.). Чтобы быть более точным в отношении цели компиляции, я бы использовал to-source-compiler
Теперь для конкретного примера, я думаю, что платформа является подходящим словом для использования. Поскольку человеческие языки по своей природе неоднозначны, вы должны использовать избыточность (примеры, перефразируя с другими словами, объясняя), чтобы понять суть в случае сомнений.
Я также прочитал бы утверждение «Haxe» таким образом, чтобы оно содержало стандартные библиотеки и подобные вещи. Т.е. в этом случае plattform была бы надмножеством «языка», и вы могли бы отделить его от этого, назвав его «платформой разработки программного обеспечения» и т. Д.
источник
Вы можете сказать, что компилятор имеет языки X, Y и Z в качестве целей перевода , или разработать язык с учетом этих целей.
источник
Я бы сказал, что компилятор по определению переводится на другой язык программирования (по крайней мере, это определение, которое я знаю - программа, которая переводит один язык в другой). Например, большинство компиляторов Си производят сборку в качестве вывода. Сборочные компиляторы принимают этот вывод и преобразуют его в двоичный код, который также является языком (конечно - вероятно, никто не пишет пишет в нем в течение последних 40 лет или более, но технически это язык) - который можно взять и перекомпилировать, чтобы сказать микро- операции процессоров (или есть определенные операции, выполняемые компоновщиком над объектными файлами). Точно так же
javap
компилируется в байт-код. Обычно в конце такой цепочки находится интерпретатор, который выполняет окончательный код (будь то CPU, GPU или исполняемая программа). Не существует такого понятия, как машинный код, поскольку современный x86 перекомпилирует программы во внутренние операции (микрооперации), и я вполне способен обрабатывать машинный код ARM как интерпретируемый язык на x86 или наоборот (в некоторых случаях даже перекомпилировать из одной формы в другую).Haxe - это компилятор исходного кода, поскольку он не преобразует язык более высокого уровня в язык более низкого уровня, как в предыдущих примерах. Похоже, это не решает непосредственно вашу проблему многоплатформенной неоднозначности, но, к сожалению, я не думаю, что существует практический способ разграничения между этими двумя вещами - API являются своего рода языками, которые в общем случае могут быть интерпретированы, перекомпилированы и т. Д.
источник
Перво-наперво: я не знаю, есть ли подходящее слово для этой функции.
Но, может быть, это можно назвать мультиязычным? Или языкогностный? Поскольку речь идет больше о языке программирования, то упоминание «языка» в названии может сделать его более очевидным, чем мультиплатформенное.
Конечно, язык также неоднозначен, так как можно понять, что исходный код может быть написан на любом языке реального мира (например, потому что переменные могут быть записаны в Unicode).
С другой стороны, каждый опытный программист, вероятно, распознает такую конструкцию как отличающуюся от локализации или интернационализации, так что он мог бы «получить» ее легче.
Просто мои 2 цента.
источник