سلام عليكم
انا مبرمج بمتبدء ارغب في بدء في مشروع صغير وهو برمجة محرر الأكواد code editor للغة معينة بسي شارب
هل هناك من يساعدني
اتوقع ولست متأكداً ان هذه المحررات تستخدم خوارزمة trie .. يوجد قناة على اليوتيوب اسمها مصطفى سعد شرح هذه الخوارزمية
واتوقع انك ستحتاج الى التعامل مع الـ Graph
وعليكم السلام،
إن كنت فعلا تعلمت #C فيمكنك البدء من أحد المشاريع مفتوحة المصدر:
ثم عدّل عليه. أو اختر غيره:
وإن كنت متمكن من البرمجة فيمكنك الانطلاق من أحد المشاريع الكبيرة للمشاركة أو للتعديل:
كانطلاقة سريعة ومجانية يمكنك البدء مع lazarus ومكونات synedit
بالتوفيق.
لكتابة محرر اكواد عليك الالمام ب3 أشياء :
لا يمكنك الاعتماد على محرر نظام التشغيل الافتراضى TextBox, او RichText, لأنك تحتاج الى تقديم تجربة أكثر متعة و ثراء للمستخدم, لذا عليك بتصميم محرر (مكان للكتابة و التعديل) خاص بك.و هذه هى أسهل مهمة.
يجب ان تكون ملما بالParsing, يجب ان تقرأ عن المفسرات و المترجمات (لكن اكتفى بجزء الParsing) و هذا ضرورى لأنك تحتاج الى تحليل الاكواد لاستخلاص الClasses و الاجراءات و أيضا لتلوين و تغيير البنط للIdentifiers و الStrings و غير ذلك.
بما انه محرر, فسوف تحتاج أيضا الى الString Searching Alghorithms لاتاحة خدمات البحث و الاستبدال.
و هذه هى أسهل مهمة.
بل هي الأصعب على الإطلاق، وأحسبها تشكل ما بين 90 إلى 70 في المئة من شفرة المحرر.
بالطبع هى الأطول و تحتاج الى شيفرات طويلة, لكن قصدى ان التكنيك و اللوغاريتمات فيها بسيطة الى حد ما.
عموم شفرة المحرر بسيطة، ولكن عند المقارنة بين شفرات البحث، وشفرة واجهة المحرر النصية (وما يرتبط بها من أمور، مثل ثنائية الإتجاه، والتفاعل مع المستخدم؛ سواء بتحديد أن نسخ أولصق، وحجز الذاكرة وتحريرها بالنسبة للنص وتغيراته)، فالواجهة النصية هي الأصعب. وشفرة كشفرة البحث مثلًا يمكن أن أكتبها لك بلغة التجميع في أقل من 10 أسطر!
لو أردت نصيحتي فأنصحك بلغة السي؛ فهي بسيطة، وسهلة، والبرامج المبنية بها سريعة، ولكن يعيبها تعقيد البرمجة بها.
وإن كان ولا بد لغة أعلى منها: فأنصحك بلغة السي ضعف زائد (ما رأيك في هذه التسمية؟)، فهي قوية ولا تختلف كثيرًا عن سابقتها من حيث السرعة. بالإضافة إلى أنه يمكن بالغة السابقة يمكنك إنشاء برامج تعمل في عدة أنظمة (طبعًا بعد ترجمتها على كل نظام)، وذلك بستخدام مكاتب عابرة للمنصات (مثل كيو تي).
أما السي شارب فهي لا تترجم إلى لغة الآلة مباشرة، بل إلى لغة الآلة الوهمية التي تشغلها (حسب ما أعلم، وليصححني أحد إن كنت مخطأً)، لذا فالبرامج المبنية بها بطيئة (بعض الشيء). وبالنسبة لي لا يمكنني أن أتحمل محررًا يأخذ من ربع ساعة لأشغله في حاسوبي القديم. ثانيًا لغة السي شارب ليست متعدد المنصات (بالنسبة لأنظمة تشغيل الحاسوب)، وإن كان أحدٌ أخبرني من قبل أنها متعددة، ولكني لم أقف على أثر يدل على ذلك، ما يعني في النهاية أني أنا مستخدم نظام تشغيل جنو\لينكس لن أستطيع تشغيل محررك على جهازي.
مممم اخي اولا شكرا على رد
ثانيا لا اضن ان سي مناسبة لمحرر اكواد لايقوم بستهلاك موارد بشراهة فلا حاجت لي لغة تتعامل بشكل شبه مباشر مع هاردوير
ثالثا سي زائد مضاعف جيدة ولاكن للاسف انا لا اتقنها
رابعا سي شارب في اصدارات الاخيرة اصبحت ايضا تستخدم مكتبات متنقلة و بيئة العابرة للمنصات وهي تعمل حتى على انضمة FreeBSD وامثلة على استخدام المكتبات المتنقلة هو منصة زامرين
في نهاية اضن ان برامج التي تعمل على سي شارب لا تسهلك الكثير من موارد واضن انك عن سهو دكرت سي شارب في مكان جافا المعروفة بستهلاكها للموارد
وشكرا صديقي مرة اخرى اعجبني اسهابك في رد
حسنًا علي أن أشكرك على ردك أولًا، وعندي بعض التعليقات على كلامك:
ثانيا لا اضن ان سي مناسبة لمحرر اكواد لايقوم بستهلاك موارد بشراهة فلا حاجت لي لغة تتعامل بشكل شبه مباشر مع هاردوير
أذكر أني في فترة من الفترات استخدمت محررًا يدعى "atom" (أو شيء من هذا القبيل)، لا أعلم بأي لغة كتب، لكنه كان بطيئًا لدرجة جعلتني أحذفه بعد مدة وجيزة من تجربتي له، وذلك رغم جماله الذي إن سُإلت عنه سأقول: إنه أجمل محرر رأيته في ذلك الوقت.
>ثالثا سي زائد مضاعف جيدة ولاكن للاسف انا لا اتقنها
عائلة السي يشبه بعضها بعضًا، لذا إذا كنت تجيد السي شارب، فيمكنك بكل بساطة تعلم السي ضعف زائد، وبأبسط من ذلك كله تعلم السي، وعن السي قد ذكرت أنها قريبة من لغة العتاد: لكني لا أجدها كذلك، بل هي بسيطة، وعملية (للمشاريع التي لا تحتاج إلى الكائنية كثيرًا)، وسريعة، لكن يصح هذا (أي أنها قريبة من لغة العتاد) عند مقارنتها بلغات مثل بايثون (وليس السي شارب)، فحينها سنقول إن السي وأخواتها قريبات من لغة الآلة.
رابعا سي شارب في اصدارات الاخيرة اصبحت ايضا تستخدم مكتبات متنقلة و بيئة العابرة للمنصات وهي تعمل حتى على انضمة FreeBSD وامثلة على استخدام المكتبات المتنقلة هو منصة زامري
أكدت لي معلومة كنت قد التطقها سابقًا، لذا سأتحرى في الأمر. وأشكرك على المعلومة.
في نهاية اضن ان برامج التي تعمل على سي شارب لا تسهلك الكثير من موارد واضن انك عن سهو دكرت سي شارب في مكان جافا المعروفة بستهلاكها للموارد
أولًا أظنك تكتب سهوًا الضاد محل الظاء، وكلمة "لكن" لا تكتب هكذا "لاكن".
ثانيًا كل ما يعتمد على الآلة والوهمية، سواء الجافا، أو الدوت نت (التي أيضًا تترجم إلى لغة وسيطة)، في مجملها تستهلك الموارد، إذا ماقورنت بلغة ترجمية مباشرة، كلغة السي ضعف زائد (غير الدوت نت).
وأخيرًا أقول لك: الجافا، والسي شارب، وجهان لعملة واحدة.
والله أعلم.
وفي الختام أشكرك مرة أخرى.
التعليقات