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

StackOverflow https://stackoverflow.com/questions/2007762

Вопрос

Я думал, можно ли объединить asp.net, php и java в одну страницу.

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

Я имею в виду, что я создаю страницу с кодом на всех трех языках: 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.

Это было полезно?

Решение

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

Цитируя преподобного Лавджоя из «Симпсонов», «короткий ответ «нет» с «если».Длинный ответ «да» с «но».

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

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

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

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

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

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

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

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

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

Другие советы

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

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

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

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

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

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

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

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

ЭСИ

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

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

С.

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

сказать

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

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

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

например

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

что - то в этом роде

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top