سمعت كثيرا ان هناك امكانية برمجة بعدة لغات، ك c++ و بايتون لإنشاء برنامج. فهل تعلم كيف هذا؟
وكيف تكون منظومة البرامج الكبيرة؟
تكون المنظومة مكونة من عدة برامج كل برنامج بلغة معينة, وربما عدة سيرفرات, تتعامل مع بعضها عن طريق webservices او غيرها .. لكن لا يتم خلط لغات البرمجة مع بعضها !
في احيان اخرى يتم كتابة مكتبات مثلاً بلغة C واستدعائها بلغة اخرى مثل python او كتابة مكتبات بلغة جافا, والتعامل معها من لغة اخرة,
وهكزا ..
مثال بسيط علي ما قلت للتوضيح
سنقوم بانشاء برنامج بسيط بلغة C
#include <stdio.h>
int main(int argc,char *argv[])
{
if(argc = 2)
printf("%d",atoi(argv[1])+atoi(argv[2]));
}
بعدها سنقوم ببنا البرنامج باسم calc
cc program.c -o calc.exe
البرنامج عند استدعائه يجمع العددين الاول والثاني من الاستدعاء ويخرجهم مثال علي استخدامه
calc 1 2
اذا سيكون استدعائه سهل باستخادم بايثون
import subprocess
subprocess.call(["calc","1","2"])
حاول فهم ما اوضحت واذا هناك شي غير واضح تفضل ستسعدني مساعدتك
اتمني لك التوفيق
المخرج الناتج من برنامج C أين يتخزن وكيف لبايثون تستدعيه ؟ لم افهم المخرج الذي وضعته وكيف استدعيته
يمكن ذلك بعدة طرق، مثلاً في البرامج المكتبة يمكن للغات مثل سي++ ودلفي إنتاج مكتبات DLL (مكتبات الربط الديناميكي)، تحتوي على دوال يمكن إستدعائها بنفس هذه اللغات أو لغات أخرى مثل VB ودوت نت، ويمكن إنتاج نوع أخر من مكتبات ال DLL وتسمى Com DLL، ويمكن إستدعئها بلغات أصغر مثل VB Script أو ضمن الأكسل.
أما في الويب فالأمور أسهل ويكون الدعم على مستوى اللغات وأنظمة التشغيل مثلاً لو قمت ببرمجة Web Services بإستخدام برتوكول SOAP بسي# مثلاً تحتي بيئة ويندوز و IIS فيمكن إستدعائها من خلال لغة الجافا على لينكس أو بايثون على لينكس أو بلغة أخرى مثل بي أتش بي أو روبي أو أي بيئة برمجية تدعم إستخدام الويب سيرفرس، ويتطور الأمر أكثر حاليا مع ال Rest services فيمكنك حتى إستدعائها بالجافا سكريبت وهكذا.
لكن دائما الأحتياج هوا ما يحدد طبيعة ال architectural التي تحتاج لبنائها لموقعك أو برنامجك
التعليقات