13

بناء برمجيات بعدة لغات برمجة : الدرس الاول

السلام عليكم

تلبية لهذا السؤال

ساشرح بناء البرامج بعدة لغات برمجة

تمهيد

لايتم خلط اللغات في برنامج واحد لاكن يتم بناء برامج منفصلة بكل لغة

ساستخدام لغات ( c , python or php or c#)

اهلا بالعالم

#include <stdio.h>
int main(){
printf("hello world !");
}

اعرف ما تقول الان "ما هذا انا لاانشي برنامجي الاول !" اعرف لاكن انا اريد ان اضح شي :} قم ببناء البرنامج باسم hello او اي اسم اخر

الان بعد بناء البرنامج اذا فتحت سيخرج لك عبارة "hello world !" لاكن هذا ليس مهم

الان قم بفتحه من نص الاوامر عن طريق انشاء ملف بصيغة .bat او اي طريقة اخري وقم بادراج هذا

hello

حيث hello هي اسم البرنامج بعد البناء يجب ان يكون الملف التنفيذي للبرنامج بجوار ملف bat

الان جرب فتح ملف bat ستجد اخرج لك hello world

رائع الان يمكنك استدعاء البرنامج باي لغة برمجة اخري

python

 import subprocess
 subprocess.call(["hello"])

php

<?php
  echo exec("hello");
 ?>

c#

class Program
{
   public static void Main()
   {
       var proc = Process.Start("hello.exe"):
        proc.WaitForExit();
      StreamReader myStreamReader = proc.StandardOutput;
              string myString = myStreamReader.ReadLine();
       System.Console.WriteLine(myString);
    }
 }

او اي لغة اخري والبرنامج نفسه يمكن بنائه عن طريق اي لغة اخري باستخدام الconsole


البارامترات

لم اجد ترجمة جيدة للكلمة

لااقصد في الدوال اقصد في البرامج مثلا عند فتح برنامج يتم ارسال للبرنامج المعلومات مثال

#include <stdio.h>

int main(int argc,char *argv[]){
    printf("%s\n",argv[1]);
    printf("%d\n",argc);
}

بعد بناء البرنامج جرب فتح به ملف عن طريق open with ستجده اخرج مسار الملف في سطر والسطر الاخر 1 ما معني 1 هوا حجم المصفوفة argv الان تطبيق

سطر الاومر

 hello helloWorld

python

 import subprocess
 subprocess.call(["hello","helloWorld")

php

<?php
  echo exec("helloWorld");
 ?>

هذا ما وفقني فيه الله في هذا الدرس الي اللقاء في اكمال الدرس باستخدام الويب سيرفر

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

يمكن كتابة بعض لغات البرمجة مع بعضها إذا كانت الثانية تتحول إلى الأولى في سياق التنفيذ، مثلاً يمكنك كتابة Assembly في لغات مثل C++ وC ويمكنك كتابة JavaScript في CoffeeScript، ويمكنك في Node.js كتابة الإضافات بـC++ وعمل Bindings لها في JavaScript، لأن محرّك V8 مكتوب بـC++ (وربّما مع C). أما الطريقة التي كتبتها فهي ببساطة تشغيل برنامج عبر النظام. الأمر كفتح الطرفية وكتابة اسم البرنامج، هذا تنفيذ لبرنامج وليس "دمج لغات البرمجة"!.

من الممكن أيضًا إن كنت تصمم تطبيقًا على الخادم أن تجعل البرامج تتواصل عبر بروتوكول ما مثل HTTP، مثلاً تشغّل خادمًا للبحث يعمل بـApache Luecene (المكتوبة بـJava) على أحد المنافذ وتفتح واجهة برمجية له لتتلقى الطلبات من خادم على منفذ آخر مكتوبة بلغة أخرى (مثل JavaScript في Node.js) وتستجيب لها.

نعم اعرف هذا من قبل انشات class لphp باستخدام c

لاكن هذا ان كنت تريد شي غير موجود في اللغة لاكن لو تريد انشاء برنامج ولديك العديد من المبرمجين هذه افضل طريقة

ليست أفضل طريقة لكنها عملية وسريعة، exec يتصرّف كما تتصرّف طرفيّة النظام مما يجعل الأمور واهنة وغير احترافية، منذ فترة كنت أعمل على التواصل بين git ومشروع Node.js وعثرت على حل مشابه يعتمد على إرسال أوامر git كما تُكتب بالطرفية وتنفيذها، الحلّ الآخر هو native bindings لـgit لـNode.js باستخدام libgit2، وهو حلّ مستقرّ ومتين (robust). انتهى بي الأمر باعتماد طريقة exec لأنها لا تتطلب بناء libgit2 على النظام التي تستغرق وقتًا. إ، كنت تريد حلاًّ عمليًّا (لكن ليس احترافيًّا) فقد تفي exec بالغرض.

كتابة برنامج بعدة لغات برمجة ممكن من خلال عمل ملفات DLL مثلاً بإحدى اللغات واستدعاء الدوال منها ببرنامج مكتوب بلغى أخرى .

أو من خلال عمل web service فمثلا يمكن بناء ويبسيرفس جافا واستدعاءها بالـ php أو C# وهكذا

أو من خلال عمل web service فمثلا يمكن بناء ويبسيرفس جافا واستدعاءها بالـ php أو C# وهكذا

هذا ان شاء الله موضوع الدرس القادم

في اخر كود باستخدام PHP بدل

 <?php
 echo exec("helloWorld");
 ?>

ضع

 <?php
 echo exec("hello helloWorld");
 ?>