Компилятор, который распознает разные языки и отправляет их соответствующим компиляторам. Возможный?

Я думал, можно ли соединить asp.net, php и java для формирования одной страницы.

На самом деле мне не нужна такая вещь, как сейчас. Это была просто идея, которая пришла мне в голову, так как некоторые функции некоторых языков хороши, а некоторые функции или некоторые другие языки хороши, поэтому я подумал, что если я объединю все эти функции в один

Я имею в виду, я создаю страницу, которая имеет код из всех 3-х языков asp.net php и java.

<asp code></asp code>
<php code></php code>
<java code></java code>

или же

<html>
    <asp code>
    <php code></php code>
    <java code></java code>
    </asp code>
</html>

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

Я не говорю, что все языки взаимодействуют друг с другом. Хотя они могут взаимодействовать друг с другом через XML. Но я только хочу сказать, что файл скомпилирован как одна сущность, имеющая код на разных языках программирования, который отправляется соответствующему компилятору для выполнения и, наконец, возвращается к родительскому компилятору.

Я имею в виду компилятор, который может быть разработан, который распознает код на разных языках и отправляет их компилятору, как это делается в.net framework, например MSIL

6 ответов

Решение

Является ли это возможным?

По словам преподобного Лавджоя из Симпсонов: "краткий ответ" нет ", если" да ".

Нет, в настоящее время это невозможно, если вы используете доступную в настоящее время технологию.

Да, но это требует, чтобы вы свернули свой собственный сервер, который действовал бы как прокладка, разделяя различные разделы кода и отправляя их на требуемые парсеры + компиляторы языка, а затем объединяли эти отдельные разделы для отображения страницы.

Редактировать:@Shantanu: мое удовольствие. Реализация полностью оставлена ​​на ваше усмотрение, так как я ничего подобного не исследовал.

В конечном счете, я чувствую, что это не самая продуктивная вещь, которую вы можете сделать, поскольку вы, вероятно, столкнетесь с большим количеством проблем.

Самое главное: код на одном языке не будет иметь понятия о том, что делается на других языках.

То есть, если у вас есть переменная, определенная значениями в вашем ASP, версии Java или PHP не будут знать об этом без огромных усилий, не говоря уже о том, что они не смогут получить доступ к памяти из процессов друг друга.

Однако, если вы действительно хотите пойти по этому пути, я предлагаю вам взглянуть на генератор синтаксических анализаторов, такой как ANTLR. Это поможет вам написать парсер, который будет искать ваши специальные теги (обратите внимание, это может быть сделано с помощью регулярных выражений или парсера, если это необходимо).

Получив код разделения, вы захотите отправить его компиляторам для каждого языка, с которого вы сможете получать текстовый вывод. После того, как у вас есть этот текст, он должен быть полностью html + javascript, который затем можно объединить для отображения страницы.

Я скажу, что если вы хотите, чтобы эти 3 языка взаимодействовали, вы создадите ОГРОМНЫЙ проект. Может быть проще использовать.Net Framework и написать для него языки PHP и JAVA (которые, вероятно, уже существуют), что позволяет отказаться от создания целого стека серверов.

Нет, нет. Сценарии на стороне сервера, весь файл будет передаваться на каждый из серверов (asp.net/php/java) по очереди, и я полагаю, что другой код вызовет ошибку разбора.

Это также было бы ужасно неэффективно.

Я смешал языки, используя ajax. Это может иметь смысл в вашем случае, но вы не предоставили достаточно подробностей.

Я думаю, что новый компилятор должен быть разработан, чтобы распознавать другой исходный код на основе некоторых тегов

сказать

<aspX> - значит asp.net
<php> - означает php
<C#X> - код C#

как это Когда этот компилятор видит этот код

Он должен отправить соответствующий код своему компилятору.

например

<aspX>
<asp: Textbox....../>
<C#X>
xyz=abc();
</C#X>
</asp>

что-то вроде того

Хотя это не совсем то, что я думаю, вы имеете в виду, но просто генерировать страницы, которые содержат несколько клиентских языков. Просто определите разные type атрибуты для тегов скрипта, например:

<html>
    <script type="text/javascript">...</script>
    <script type="text/vbscript">...</script>
    <script type="text/someothersupportedscript">...</script>

    <body>
        ...
    </body>
</html>

Если, с другой стороны, вы хотите генерировать HTML на стороне сервера из разных языков - ну, конечно, это возможно, но я не знаю каких-либо фреймворков, которые облегчили бы это. Дело в том, что почти каждая серверная библиотека, генерирующая страницы, должна сформировать полную HTML-страницу на основе содержимого HTTP-ответа.

Самый простой способ сделать это - назначить один язык в качестве "основного", сделать так, чтобы он действительно генерировал веб-страницу, а затем заставить его выполнять внешние вызовы, которые в конечном итоге обеспечивают части страницы, генерируемые другими языками (наряду с с логикой, чтобы сшить их все вместе). Это могут быть прямые вызовы процессов, RMI с обертками, вызовы веб-сервисов (локальным или удаленным хостам) и т. Д.

Тем не менее - я действительно не уверен, почему ты хочешь сделать это.:-)

ESI

http://www.akamai.com/html/support/esi.html

По сути, страница построена в виде серии плиток. Oracle реализует это в своих продуктах веб-кэша, но было бы достаточно просто написать синтаксический анализатор самостоятельно.

C.