Compilateur qui tiennent compte des langues différentes, différents et les envoyer à leurs compilateurs correspondants. Possible?

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

Question

Je pensais s'il est possible de combler asp.net, php et java pour former une seule page.

En fait, je ne demande aucune chose telle que maintenant. Il était juste une idée qui stiked à l'esprit que certaines caractéristiques de certaines langues sont bonnes et certaines caractéristiques ou d'autres langues sont bonnes, donc je pensais que si je combine toutes ces caractéristiques dans un

Je veux dire, je suis la création d'une page qui a le code de toutes les 3 langues asp.net php et java.

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

ou

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

ou quelque chose comme ça complier reconnaître les différents segments de code et les envoyer à exécuter leurs compilateurs à exécuter. Et la sortie peut être reconnue et utilisée par d'autres langues en XML

i ne dis pas que toutes les langues d'interagir les uns avec les autres. Bien qu'ils puissent interagir les uns avec les autres grâce à XML. Mais je ne veux dire que le fichier est compilé en une seule entité ayant different- code différent des langages de programmation qui sont envoyés à leur compilateur respectif pour s'exécuter et enfin revenir en arrière au compilateur parent

Je pense à un compilateur qui peut être développé whcih reconnaître le code des langues différentes et les envoyer à leur compilateur fait par NET Framework, par exemple MSIL

Était-ce utile?

La solution

Est-il possible?

Pour citer Reverend Lovejoy de The Simpsons "réponse courte pas avec un si. Réponse à long oui, mais avec un."

Non , il est actuellement impossible si vous utilisez la technologie actuellement disponible.

Oui , mais il vous oblige à rouler votre propre serveur qui agirait comme une cale, le fractionnement les différentes sections de code et de les envoyer aux parseurs linguistiques requises + compilateurs, puis mettre ces sections séparées de retour ensemble pour afficher la page.

Edit: @Shantanu: Avec plaisir. La mise en œuvre est complètement laissé à vous que je n'ai rien étudié comme ça du tout.

En fin de compte, je pense que ce n'est pas la chose la plus productive de faire ce que vous allez probablement rencontrer un grand nombre de questions.

Le plus grand être: Code d'une langue aura aucune idée de ce qui se fait dans les autres langues.

i.e.. Si vous avez une variable définie avec des valeurs dans votre ASP, les versions Java ou PHP ignoreraient sans effort énorme, sans parler qu'ils seraient totalement incapables d'accéder à la mémoire des processus de l'autre.

Cependant, si vous ne voulez aller dans cette voie, je vous suggère de regarder dans un générateur d'analyseur comme ANTLR . Il vous aidera à écrire un analyseur qui pourrait rechercher vos balises spéciales (note, cela pourrait se faire avec ou regex un analyseur filé à la main si besoin est).

Une fois que vous avez le code partagé, vous voulez l'envoyer aux compilateurs pour chaque langue, que vous devriez être en mesure de recevoir la sortie textuelle à partir. Une fois que vous avez ce texte, il devrait être tous les fichiers html + javascript, qui peut ensuite être combiné de nouveau ensemble pour afficher la page.

Je dirai que si vous voulez avoir les 3 langues interagissent, vous allez créer un projet énorme. Il peut être plus facile d'utiliser le framework .Net et écrire le PHP et JAVA (qui existe probablement déjà) langues pour, vous permettant de renoncer à la création d'une pile de serveur entier.

Autres conseils

Il est pas, non. Les scripts étant côté serveur, le fichier entier seraient transmis à chacun des serveurs (asp.net/php/java), à leur tour et je crois que l'autre code provoquerait une erreur d'analyse.

Il serait également être affreusement inefficace.

Alors que pas tout à fait ce que je pense que vous avez à l'esprit, il est facile de générer des pages qui contiennent plusieurs côté client langues. Il suffit de définir différents attributs de type pour les balises de script, par exemple:.

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

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

Si, d'autre part, vous voulez générer le code HTML du côté du serveur de langues différentes - bien, bien sûr, il est possible mais je ne suis pas au courant des cadres qui vous faciliter la tâche . La chose est, à peu près toutes les bibliothèques côté serveur de génération de la page attend pour former une page HTML complet basé sur le contenu d'une réponse HTTP.

La meilleure façon d'aller à ce sujet pourrait être de désigner une langue comme votre « primaire », ont qu'un génèrent en fait la page Web - puis l'obtenir pour faire des appels externes qui finalement alimentent les parties de la page générée par d'autres langues (ainsi que la logique pour les coudre tous ensemble). Ces appels pourraient être appel de procédé direct, RMI avec des enveloppes, des appels de service Web (aux hôtes locaux ou distants), etc.

Encore - Je ne suis pas sûr pourquoi vous voulez faire. : -)

ESI

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

Essentiellement, la page est construite dans une série de tuiles. Oracle met en œuvre ce dans ses produits WebCache mais ce serait assez simlpe d'écrire vous-même analyseur.

C.

Je pense qu'un nouveau compilateur doit être conçu pour reconnaître différents code source sur la base de certaines balises

dire

<aspX> - signifie asp.net
<php> - signifie php
<C#X> - code C #

comme celui-ci Lorsque ce compilateur voir ce code

Il doit envoyer le code correspondant à son compilateur.

par exemple

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

quelque chose comme ça

J'ai langues mixtes utilisant ajax. Il peut être judicieux dans votre cas, mais vous n'avez pas fourni suffisamment de détails.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top