السلام عليكم
تلبية لهذا السؤال
ساشرح بناء البرامج بعدة لغات برمجة
تمهيد
لايتم خلط اللغات في برنامج واحد لاكن يتم بناء برامج منفصلة بكل لغة
ساستخدام لغات ( 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). أما الطريقة التي كتبتها فهي ببساطة تشغيل برنامج عبر النظام. الأمر كفتح الطرفية وكتابة اسم البرنامج، هذا تنفيذ لبرنامج وليس "دمج لغات البرمجة"!.
نعم اعرف هذا من قبل انشات class لphp باستخدام c
لاكن هذا ان كنت تريد شي غير موجود في اللغة لاكن لو تريد انشاء برنامج ولديك العديد من المبرمجين هذه افضل طريقة
ليست أفضل طريقة لكنها عملية وسريعة، exec يتصرّف كما تتصرّف طرفيّة النظام مما يجعل الأمور واهنة وغير احترافية، منذ فترة كنت أعمل على التواصل بين git ومشروع Node.js وعثرت على حل مشابه يعتمد على إرسال أوامر git كما تُكتب بالطرفية وتنفيذها، الحلّ الآخر هو native bindings لـgit لـNode.js باستخدام libgit2، وهو حلّ مستقرّ ومتين (robust). انتهى بي الأمر باعتماد طريقة exec لأنها لا تتطلب بناء libgit2 على النظام التي تستغرق وقتًا. إ، كنت تريد حلاًّ عمليًّا (لكن ليس احترافيًّا) فقد تفي exec بالغرض.
كتابة برنامج بعدة لغات برمجة ممكن من خلال عمل ملفات DLL مثلاً بإحدى اللغات واستدعاء الدوال منها ببرنامج مكتوب بلغى أخرى .
أو من خلال عمل web service فمثلا يمكن بناء ويبسيرفس جافا واستدعاءها بالـ php أو C# وهكذا