Компилятор, который распознает разные языки и отправляет их соответствующим компиляторам. Возможный?
Я думал, можно ли соединить 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.