التحويل البرمجي الذي يتعرف على لغات مختلفة مختلفة وإرسالها إلى محمائطها المقابلة. المستطاع؟

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. لكنني أقصد فقط أن أقول إن الملف يتم تجميعه ككيان واحد يمتلك رمز لغات البرمجة المختلفة التي يتم إرسالها إلى مترجم كليتها للحصول على تنفيذها وأعادت أخيرا إلى برنامج التحويل البرمجي الخاص به

أفكر في مترجم يمكن تطوير whcih يتعرف على رمز لغات مختلفة وإرسالها إلى مترجمها كما فعلت بواسطة .NET Framework مثل MSIL

هل كانت مفيدة؟

المحلول

هل هو ممكن؟

إلى اقتباس Revendend Lovejoy من Simpsons "إجابة قصيرة لا مع وجود إجابة طويلة نعم، مع A ولكن".

رقم, ، ليس من الممكن حاليا إذا يمكنك استخدام التكنولوجيا المتاحة حاليا.

نعم, لكن يتطلب منك تقويم الخادم الخاص بك الذي سيعمل كشيم، وقم بإيقاع الأقسام المختلفة من التعليمات البرمجية وإرسالها إلى محيطات اللغة المطلوبة + المترجمين، ثم جلب تلك الأقسام المنفصلة معا لعرض الصفحة.

يحرر:shantanu: من دواعي سروري. يتركك التنفيذ تماما لك لأنني لم أحقق أي شيء مثل هذا على الإطلاق.

في النهاية أشعر أن هذا ليس هو الشيء الأكثر إنتاجية للقيام به لأنك ستشارك في عدد كبير من القضايا.

أكبر كونه: الكود من لغة واحدة لن يكون له مفهوم لما يتم القيام به في اللغات الأخرى.

أي إذا كان لديك متغير محدد بقيم في ASP الخاص بك، فإن إصدارات Java أو PHP لن تكون غير مدركة لها دون جهد ضخم، ناهيك عن أنها ستكون غير قادرة على الوصول تماما إلى الذاكرة من عمليات بعضنا البعض.

ومع ذلك، إذا كنت ترغب في النزول في هذا الطريق، أقترح عليك أن تنظر إلى مولد المحلل antlr.. وبعد سيساعدك في كتابة محلل محلل يمكن أن تبحث عن علاماتك الخاصة (ملاحظة، يمكن القيام بذلك باستخدام Regex أو Gand Spun Garper إذا كانت الاحتياجات).

بمجرد أن يكون لديك رمز تقسيم، سترغب في إرسالها إلى المحاميلات لكل لغة، والتي يجب أن تكون قادرا على تلقي إخراج نصي من. بمجرد أن يكون لديك هذا النص، يجب أن يكون كل HTML + JavaScript، والذي يمكن بعد ذلك مجتمعة معا لعرض الصفحة.

سأقول أنه إذا كنت ترغب في الحصول على 3 لغات تتفاعل، فسوف تقوم بإنشاء مشروع ضخم. قد يكون من الأسهل استخدام .NET Framework واكتب 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 مع الأغلفة، ومكالمات خدمة الويب (إلى المضيفين المحليين أو عن بعد)، إلخ.

لا يزال - أنا لست متأكدا حقا لماذا تريد القيام بذلك. :-)

esi.

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

أساسا تم بناء الصفحة في سلسلة من البلاط. تنفذ Oracle هذا في منتجات Webcache ولكن سيكون Simlpe بما يكفي لكتابة محلل نفسك.

جيم

أعتقد أن مترجم جديد يجب تصميمه للتعرف على شفرة المصدر المختلفة على أساس بعض العلامات

قل

<aspX> - يعني asp.net.
<php> - يعني PHP.
<C#X> - C # رمز

مثل هذا عندما يرى هذا المحول البرمجي هذا الرمز

يجب أن ترسل التعليمات البرمجية المقابلة إلى مترجمها.

على سبيل المثال

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

شئ مثل هذا

لقد خلطت اللغات باستخدام أياكس. قد يكون له معنى في قضيتك، لكنك لم تقدم تفاصيل كافية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top