اذهب إلى المحتوى

لوحة المتصدرين

  1. Ail Ahmed

    Ail Ahmed

    الأعضاء


    • نقاط

      4

    • المساهمات

      1202


  2. عبدالرحمن عبدالله14

    • نقاط

      4

    • المساهمات

      4


  3. Mustafa Suleiman

    Mustafa Suleiman

    الأعضاء


    • نقاط

      3

    • المساهمات

      13207


  4. حمزة المليكي

    حمزة المليكي

    الأعضاء


    • نقاط

      3

    • المساهمات

      1


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 08/18/24 في كل الموقع

  1. اردت اضافه حقل لاضافه صوره ولكن يتم حفظه في قاعده البيانات باسم او رابط للصوره وليس المسار في public storage photo_path ماافي صور انحفظت في السيرفر ماايمدي تنعرض هذا عند عمل تسجيل مستخدم جديد اضافه حقل لاضافه صوره عند التسجيل لا اجد اي صوره في المسار storage سويت storage link تطلع الصوره تمام وتنحفظ اذا دخلت ع الداشبورد الخاصه ب جيت ستريم وعملت تحرير للصوره
    2 نقاط
  2. اريد طريقه سحب قاعده بيانات الي الاستضافه عن طريق ssh
    2 نقاط
  3. السلام عليكم ورحمة الله وبركاته كيف ممكن احل هذي المشاكل التي تظهر معي في شاشة console
    1 نقطة
  4. السلام عليكم هو ليه عندي عمل import المكتبه tensorflow بيحصل خطاء لو مساخدمتهاش ؟ علي سبيل عندي كتاب الكود ده وعمل Run بيحصل خطاء import tensorflow as ft print("ali ahmad")
    1 نقطة
  5. هل ممكن ارسال واجبات على الدروس الماضية ؟
    1 نقطة
  6. هو بيظهر الرساله ده import wrapt as _wrapt ModuleNotFoundError: No module named 'wrapt'
    1 نقطة
  7. لن يظهر خطأ إلا في حال لم تقم بتثبيت المكتبة، حيث لن يتم التمكن من الاستيراد بشكل صحيح فالمكتبة غير مثبتة، في حال قمت بتثبيتها فربما قمت بذلك في بيئة إفتراضية فعليك تفعليها ليعمل الاستيراد.
    1 نقطة
  8. بشكل عام عدد الأعمدة لا يكون كبير، و من الأسهل القيام به بشكل يدوي بدل كتابة كود للقيام بذلك، فهو لن يعتمد على أي منطق برمجي، فقط تغيير أسماء. أي ببساطة افتح الملفات و قم بتغيير الأسماء فيها قبل قراءتها في الكود. تحياتي.
    1 نقطة
  9. طيب ازي اقدر اعدل اسم العمدها ؟ بس من غير كتابه الكود بعد اذن حضرتكم عشان عاوز ادور انا
    1 نقطة
  10. عليك البحث عن مواقع متخصصة توفر بث مباشر من كاميرات الويب الخاصة بالطقس، يمكنك تجربة موقع EarthCam، حيث توجد فيه بعض محطات الطقس والتي توفر بث كاميرات ويب يمكن استخدامه، و أيضا عند العثور على كاميرا ويب تريد تضمينها، تحقق مما إذا كان الموقع يوفر رابطاً للتضمين، عادة ما يكون هذا الرابط عبارة عن كود HTML يمكنك نسخه، و إذا لم يكن هناك خيار للتضمين المباشر، يمكنك محاولة العثور على رابط البث المباشر نفسه.
    1 نقطة
  11. السلام عليكم ما الفرق بين بناء متجر الكتروني من الصفر من خلال لارافل و بين انشاء متجر الكتروني بطريقة سهله من خلال E-Commerce ؟
    1 نقطة
  12. نعم التعديل يعمل ولكن انا عملت الحقل هذا في تسجيل مستخدم جديد لاتخزن في السيرفر امتداد الصوره موجود في قواعد البيانات ولكن لم يخزن عندي في الامتداد storage علماً قمت ب storage link ولكن لايوجد اي صوره في الملفين public or storage
    1 نقطة
  13. اعلم بهذي الطريقه اليدويه انا اقصد هل تتم عبر jetstream مثل لقد اضفت حقول ثانيه مثل اسم المستخدم والعنوان بمجرب الذهاب الى ملف forify create new user واضافه الحقول تعمل جيداً ولكن المشكله في الصوره public function create(array $input): User { Validator::make($input, [ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => $this->passwordRules(), 'profile_photo_path' => ['required','image','max:1024'], 'terms' => Jetstream::hasTermsAndPrivacyPolicyFeature() ? ['accepted', 'required'] : '', ])->validate(); return User::create([ 'name' => $input['name'], 'email' => $input['email'], 'profile_photo_path'=> $input['profile_photo_path'], 'password' => Hash::make($input['password']), ]); } هنا لقد قمت باضافه الحقل profile_photo_path لقد تخزن في قواعد البيانات الامتداد ولكن الصوره لم تكن موجود في السيرفر لعرضها <div class="mt-4"> <x-label class="text-right" for="الصوره الشخصيه" value="{{ __('الصوره الشخصيه') }}" /> <x-input id="profile_photo_path" class="block mt-1 w-full" type="file" name="profile_photo_path" :value="old('profile_photo_path')" required autocomplete="profile_photo_path"/> </div>
    1 نقطة
  14. وعليكم السلام قصدك الفرق بين انك تبني المشروع برمجه خاصه او يتم انشائه بواسطة مواقع الكترونيه مثل سله او زد الفرق في شئ واحد فقط و هو التخصيص بحيث البرمجه الخاصه توفر لك الحرية الكاملة في تخصيص المتجر وفقًا لاحتياجاتك. يمكنك تصميم كل جزء من الموقع من الواجهة الأمامية إلى الخلفية، وإضافة الميزات التي ترغب بها بدون أي قيود مثل بوابات الدفع و المميزات و الشحن الدولي وما الي ذالك بعكس مثلا ان تنشئ المتجر عن طريق مواقع مثل سله او زد او شوبيفاي ستكون ملزم بتصميم معين وتمبلت جاهزه ستكون مجبر علي المميزات التي توفرها هذه المواقع فقط ولاكن ايضا عليك المقارنه في اشياء اخري مثل 1. التكلفة: البرمجة الخاصة ستكلفك عادة أكثر في البداية بسبب الحاجة إلى تطوير الموقع من الصفر، بما في ذلك تصميم الواجهة الأمامية، تطوير قواعد البيانات، وضمان الأمان. كما قد تحتاج إلى دفع تكاليف للصيانة والدعم الفني. المواقع الجاهزه مثل سلة وزد ستكون التكلفة أقل بكثير في البداية لأنك تدفع اشتراكًا شهريًا أو سنويًا 2. الوقت: البرمجة الخاصة تستغرق وقتًا أطول نظرًا لعملية التطوير من الصفر. قد تحتاج من عدة أسابيع إلى أشهر للوصول إلى نسخة نهائية قابلة للاستخدام. المواقع الجاهزه مثل سلة وزد يمكنك إطلاق متجرك في غضون ساعات أو أيام. هذه المنصات مصممة لتكون سريعة وسهلة الاستخدام، مما يتيح لك بدء البيع بسرعة. 5. التوسع و التطوير المستقبلي : البرمجة الخاصة تسمح لك التوسع بأي شكل تريد وبإضافة ميزات جديدة كما تحتاجها مع نمو عملك. لكن قد يكون التوسع مكلفًا ويحتاج إلى وقت إضافي. المواقع الجاهزه مثل سلة وزد التوسع محدود بميزات المنصة، وإذا كنت بحاجة إلى ميزات غير متاحة، قد تواجه صعوبة في تحقيق ذلك.
    1 نقطة
  15. بناء أول مشروع في مجال تعلم الآلة يتطلب المرور بعدة مراحل وخطوات، أولها تحديد الهدف أساسا من المشروع كأن تطرح السؤال حول المشكلة التي تريد حلّها أو المهمة التي تودّ تحقيقها لأنّ هذا المجال واسع وينبغي التخصيص. بعد ذلك نأتي لمرحلة البحث عن مجموعة بيانات مناسبة توجد العديد من المصادر التي يمكن الاستعانة بها من خلال استخدام بيانات مفتوحة أو جمع بياناتك الخاصة إن وجدت مسبقا. يلي ذلك عملية استكشاف البيانات من خلال تحليل البيانات وفهمها واستخدام أدوات مثل Pandas وMatplotlib أو Seaborn لرسم البيانات. بعدها نقوم بتنظيف البيانات ويقصد ذلك بمعالجة أي قيم مفقودة، وحذف البيانات الغير صالحة. بعدها تقوم باختيار نموذج تعلم الآلة الذي يناسب المشكلة (مثل الانحدار الخطي، أو الشجرة العشوائية، أو الشبكات العصبية وغيرها كثير). مرحلة تدريب النموذج تبدأ من خلال تقسيم البيانات إلى مجموعتين، أولاهما للتدريب والثانية للاختبار بحيث تستخدم مجموعة التدريب لتدريب النموذج. المرحلة الحساسة وهي تقييم عمل النموذج وأدائه باستخدام مجموعة الاختبار تستخدم عادة مقاييس مثل الدقة، F1-score، أو متوسط الخطأ وبعدها يتم تجربة تحسين النموذج عبر تعديل المعلمات أو استخدام تقنيات مثل توليد البيانات حينها إذا كنت راضيًا عن الأداء، يمكنك نشر النموذج باستخدام واجهة API أو تطبيق ويب مع الاستعانة بتوثيق المشروع، بما في ذلك الخطوات والتقنيات المستخدمة.
    1 نقطة
  16. و عليكم السلام، بشكل عام هذا يختلف بين مشروع و آخر. و لكن من الممكن وضع بعض الخطوات العامة كما يلي: بعد تحديد فكرة المشروع طبعًا، يمكننا اعتبار المشروع أنه حل لمشكلة، فهذه هي مشاريع ال AI مثلًا حل مشكلة التعرف على محتوى صورة. لذلك يجب البحث عن الأعمال السابقة التي قامت بمحاولة حل هذه المشكلة، هذا يشمل قراءة بعض المقالات، و في مستوى متقدم أكثر قراءة أوراق بحثية كثيرة. في المشاريع المعقدة قد تستمر هذه الخطوة لأشهر! هذه الخطوة ستحدد كل ما سنقوم به في الخطوات التالية. بعد نهاية الخطوة السابقة نكون قد أصبح لدينا فكرة عن التقنيات التي يمكن استعمالها، سواء لمعالجة البيانات أو لبناء النموذج و تدريبه. لذلك علينا تحديد البيانات التي سنقوم بالتدريب عليها، قد يكون لدينا بيانات خاصة بنا في المشروع أو في حال عدم وجودها فمن خلال الخطوة 1 سنكون اطلعنا على أشهر مجموعات البيانات و يمكننا الاختيار بينها. معالجة البيانات، و هي خطوة مهمة جدًا، فالكثير من البيانات تحتاج بعض عمليات المعالجة قبل تدريب النموذج عليها، مثل تغيير حجمها أو تحويلها إلى صور رمادية و غيرها الكثير من الأمور. بناء النموذج، و هنا أيضًا نكون نعرف ما هو النموذج فقد تم تحديده في الخطوة 1. و لكن قد يكون علينا تجريب عدد طبقات مختلف في كل مرة أو غيرها من الأمور التي يمكن تغييرها في النموذج، لذلك دائمًا نضع الخيارات التي يجب تجريبها، و نقوم بالبدء بأبسطها فهو سيكون أسرع خيار و بالتالي سنحصل على معلومات عما نحتاجه بشكل أسرع. بعد الانتهاء من الخطوة 4 يجب القيام بتدريب النموذج، هذه العملية تأخذ وقتًا طويلًا جدًا حسب حجم البيانات و النموذج و العتاد المستعمل في عملية التدريب. تقييم النموذج. طبعًا هذه العمليات تكرارية، أي بعد الانتهاء من الخطوة 6 و معرفة مدى جودة النموذج، سنضطر غالبًا إلى القيام ببعض التعديلات لحل بعض المشاكل، نعود إلى الخطوة 4 بشكل عام فأغلب التعديلات تكون على النموذج و لكن في بعض الأحيان قد نضطر إلى العودة حتى الخطوة 1 ! و لكن هذا نادر جدًا طالما أننا قمنا بإعطاء الخطوة 1 الوقت الكافي. تحياتي.
    1 نقطة
  17. في الشهور الأولى فذلك جيد، راقب الوضع فمن المفترض مع التحسين وإضافة محتوى جيد تزداد تلك الأرقام وإلا هناك أمر غير سليم بالموقع.
    1 نقطة
  18. أولاً يجب تفهم أنك ستحتاج إلى 4 أو 5 أضعاف وقت الدورة من أجل دراستها بشكل سليم، وذلك ما بين مشاهدة ثم استيعاب ثم حفظ ثم تطبيق ثم مراجعة وتكرار وبحث. عليك بالتالي: مشاهدة 4 دروس قصيرة ثم التوقف والتطبيق على ما جاء بها من خلال إعادة ما قام به المدرب. أو درس واحد طويل وتقسيمه إلى أجزاء والتوقف ثم التطبيق بمفردك. ولا مشكلة في التطبيق مع المدرب، لكن بعد الإنتهاء عليك إعادة ما قمت به بمفردك لكي تختبر استيعابك وتركيزك يُصبح أكبر. (خصص نسخة للتطبيق مع الشرح مثلاً ونسخة أخرى للتطبيق عليها بمفردك). والمهم هو ألا تقوم بخطوة دون معرفة لماذا قمت بها، فالبرمجة ليست نسخ أكواد بل وظيفتك هي حل مشاكل برمجية لذا استيعابك للأدوات واللغة نقطة فارقة للمبرمج المتميز. وهناك مثال جيد هو "يمكنك مشاهدة فيلم لكن لن تصبح مخرج أفلام" لذا عليك بالممارسة العملية وأن تكون طالب فاعل وليس مشاهد سلبي فقط، يجب التدرب على نماذج صغيرة في البداية ثم التدرج في الصعوبة وإنشاء مشاريع كاملة، وعدم الإكتفاء بمشاريع الدورة ونماذجها فقط. وفي الدورة لا تكتفي ببناء المشروع مرة واحدة فقط، حاول إعادة بنائه بمفردك، ولا مشكلة أبدًا إذا نسيت بعض الأشياء لا تنزعج من ذلك إطلاقًا. فمرة واحدة لا تكفي أبدًا، حيث أنك في المرة الأولى تستوعب بنسبة 70% وأنت بحاجة إلى الـ 30% الأخرى والتي تحصل عليها من خلال إعادة بناء المشروع بمفردك بدون مشاهدة شرح المدرب. وبالطبع ليس عليك تذكر كل شيء قمت بدراسته ولكن يجب استيعاب كل شيء تقريبًا بنسبة 80% وبعض الأمور ستتضح لك من الواقع العملي بعد فترة وتنفيذ المشاريع. فلا أحد يتذكر كل شيء ويتم البحث عن ما نريده ويتم تذكر الأمر لأنك تعرف ما تريد البحث عنه، لكن الحفظ والاستيعاب مهمان في البداية.
    1 نقطة
  19. نعرفك في مقال اليوم ما هي لغة الآلة أو لغة الأصفار والوحدات والتي تقع في أدنى مستويات لغات البرمجة، وتستخدم للتخاطب والتفاعل المباشر مع أجهزة الحواسيب، ونكتشف معًا ما هي مميزات لغة الآلة، وما الفرق بين لغة الآلة ولغة التجميع، ونستعرض أمثلة على لغة الآلة واستخداماتها، وطريقة تنفيذ تعليماتها من قبل الحواسيب المختلفة. مستويات لغات البرمجة قبل أن نتعرف ما هي لغة الآلة لنوضح ما هي لغة البرمجة؟ وما هي المستويات التي مرت بها لغات البرمجة خلال تطورها قبل أن تتطور وتنبثق منها العديد من الأنواع والتسميات. إن لغة البرمجة هي الأسلوب الذي يعتمده البشر للتخاطب مع الحواسيب وغيرها من الأجهزة القابلة للبرمجة وطلب تنفيذ الأوامر منها، وهي تكتب أو تصاغ على شكل سلسلة من الأوامر المتتالية، وتحفظ على هيئة برامج حاسوبية أو تطبيقات ثم تمرر حاسوب لتنفيذها والحصول على النتائج المطلوبة. وقد مرت لغات البرمجة خلال تطويرها بعدة مراحل أو مستويات ومن أبرزها: لغات منخفضة المستوى Low-Level Languages لغة الآلة Machine Language لغة التجميع Assembly Language لغات متوسطة المستوى Mid-Level Languages لغات عالية المستوى High-Level Languages لنتعرف على مميزات وسمات كل لغة من هذه اللغات. لغات منخفضة المستوى Low-Level Languages كانت لغات الجيل الأول للحواسيب لغات منخفضة المستوى مكونة من مجموعة من التعليمات التي تدخل إلى الحاسوب في شكل قابل للتنفيذ مباشرة بواسطة معالج الحاسوب حيث كانت التعليمات البرمجية مكونة من أرقام مكتوبة بالنظام الثنائي binary system وهو نظام أساسه العدد 2، أو النظام الست عشري hexadecimal وهو نظام أساسه العدد 16وكان من الممكن تنفيذ هذه البرامج مباشرة. على سبيل المثال تسلسل الأرقام التالي ليس سوى مثال على جزء من كود برمجي مكتوب بلغة الآلة لبرنامج حاسوبي يجمع عددين: 11101100, 11011010, 10100001, 11011101, 01011111, 10111110, 11101110, 00101101, 11010111, 11101100, 11011011, 11101110, 11101110, 11011101, 00001010, 10101011, 11101110, 11101110, 11001110, 10111010, 10101010, 10101101, 11101010, 11101111, 00011010, 11010010, 11101110, 00011010, 10101011, 11101110, 11101110, 10101110, 11101010, 11101011, 11101010, 00001000, 00001010, 11101110, 11001010 إن تعليمات البرنامج السابق مكتوبة بالنظام الثنائي Binary System، وفي حال استخدامنا النظام الست عشري hexadecimal لكتابة التعليمات سيكون البرنامج على النحو التالي: 0xEC, 0xDA, 0xA1, 0xDD, 0x5F, 0xBE, 0xEE, 0x2D, 0xD7, 0xEC, 0xDB, 0xEE, 0xEE, 0xDD, 0x0A, 0xAB, 0xEE, 0xEE, 0xCE, 0xBA, 0xAA, 0xAD, 0xEA, 0xEF, 0x1A, 0xD2, 0xEE, 0x1A, 0xAB, 0xEE, 0xEE, 0xAE, 0xEA, 0xEB, 0xEA, 0x08, 0x0A, 0xEE, 0xCA وكما تلاحظ فقد كانت كتابة وقراءة لغة الآلة صعبة ومعقدة للغاية، لهذا السبب ظهرت لغات الجيل الثاني أو ما يعرف بلغات التجميع assembly languages وهي عبارة عن لغات ذات مستوى منخفض أيضًا لكن كودها البرمجي أسهل في الفهم نوعًا ما، فقد ابتكر علماء الحاسوب لغة التجميع لتكون بمثابة لغة وسيطة أسهل في الفهم والقراءة، وهي تتضمن مجموعة محدودة من التعليمات الخاصة بالتعامل المباشر مع العتاد الصلب والتجهيزات الإلكترونية القابلة للبرمجة، وهي تختلف بحسب ببنية كل معالج فكل جيل من المعالجات له لغة التجميع الخاصة به. على سبيل المثال، يوضح الكود التالي برنامجًا مكتوبًا بلغة التجميع لجمع عددين وهو مخصص للعمل على معالج Intel x86 ويجمع العددين 5 و 7 assembly section .data num1 dd 5 num2 dd 7 result dd 0 section .text global _start _start: mov eax, [num1] add eax, [num2] mov [result], eax ; Exit the program mov eax, 1 ; System call number for exit xor ebx, ebx ; Exit status 0 int 0x80 ; Make system call إذا قرأت الكود السابق فستنتج أن أول قسم منه Section .data يعرَف العددين num1 و num2 وهي المدخلات المطلوب جمعهما، كما يعرف متغير result لحفظ نتيجة الجمع، أما القسم _start فهو يشير لبداية البرنامج. وبعدها تبدأ التعليمات الفعلية حيث تنقل التعليمة mov eax, [num1] القيمة المخزنة في num1 إلى المُسجَّل eax وتنقل التعليمة add eax, [num2] القيمة المخزنة في عنوان num2 إلى هذا المُسجَّل، وبعدها تُنقَل قيمة المُسجَّل إلى المتغير result الذي يخزن نتيجة الجمع النهائية، وتستخدم التعليمات الثلاثة الأخيرة للخروج من البرنامج وإنهاء تنفيذه. كما تلاحظ هذه اللغة مفهومة أكثر من لغة الآلة المليئة بالأصفار والوحدات لكنها لا تزال صعبة ومربكة، وتحتاج من المبرمج لأن يهتم بتفصيل دقيقة مثل تحديد المسجلات التي سيتم استخدامها ونقل البيانات إليها أو منها أثناء تنفيذ البرنامج، كما أنها لا تصلح لتطوير البرامج والخوارزميات المتقدمة وستنتج قدرًا كبيرًا من الكود لتنفيذ كل عمليلة. لغات متوسطة المستوى Mid-Level Languages بعد لغة التجميع، طورت لغات برمجة أخرى مثل بيزك BASIC وفورتران FORTRAN وباسكال Pascal وسي C و C++‎ سميت بلغات البرمجة متوسطة المستوى، وهي لغات تقع في مكان وسطي بين لغات البرمجة منخفضة المستوى ولغات البرمجة ذات عالية المستوى مثل بايثون Python أو جافا Java، وهي تتيح للمبرمجين التحكم في التفاصيل الدقيقة للعتاد، وتوفر في نفس الوقت مستوى أعلى من المرونة في التعامل. على سبيل المثال لجمع عددين بلغة البرمجة C سيكون الكود بالشكل التالي: #include <stdio.h> int main() { // تعريف المتغيرات int num1 = 5; int num2 = 7; int result; // جمع الأرقام result = num1 + num2; // طباعة النتيجة printf("النتيجة هي: %d\n", result); return 0; } لغات عالية المستوى High-Level Languages أخيرًا ظهرت لغات الجيل الثالث أو لغات البرمجة عالية المستوى مثل بايثون Python وروبي Ruby وجافا سكريبت JavaScript لتبسيط البرمجة على المطورين والمبرمجين، فهذه اللغات تعد من أسهل لغات البرمجة وتكتب تعليماتها بمفردات قريبة من مفردات اللغة الانجليزية المحكية، وهي سهلة القراءة والفهم من قبل البشر، ولا تضطرنا للتعامل مع التفاصيل الدقيقة المتعلقة بالعتاد. لكن هذه اللغات تحتاج إلى ترجمتها أو تفسيرها ليفهمها معالج الحاسوب ثم يتمكن من تنفيذها بالشكل الصحيح. وهذه اللغات ليست مرتبطة بنوع جهاز معين حيث يمكن تحويل أوامرها إلى تعليمات مختلفة بلغة الآلة حسب كل جهاز كي يتمكن من تفسيرها وتنفيذها. على سبيل المثال يحقق الكود التالي بلغة بايثون نفس وظيفة الكود السابق لجمع عددين، ويمكنك أن تلاحظ بساطة وسهولة اللغة ومدى قربها من كلامنا المحكي مقارنة بالأكواد السابقة: # تعريف المتغيرات num1 = 5 num2 = 7 # جمع الأرقام result = num1 + num2 # طباعة النتيجة print("النتيجة هي:", result) ما هي لغة الآلة وكيف تعمل لغة الآلة أو لغة الأصفار والواحدات هي لغة برمجة تتكون من أوامر وتعليمات مكتوبة بطريقة يستطيع الحاسوب فهمها ومعالجتها، فالحاسوب يفهم في الواقع فقط الأصفار والواحدات حيث أن الرقم 1 يعني وجود تيار أو جهد كهربائي، والرقم 0 يعني عدم وجود تيار أو جهد كهربائي. وفي بدايات ظهور الحواسيب كانت هذه الأرقام تحول إلى أوامر، ومن ثم تنفذ مباشرة بواسطة وحدة المعالجة المركزية CPU. ويكون كل أمر عبارة عن رمز رقمي أو سلسلة من الرموز الرقمية الممثلة بالنظام الثنائي أو الست عشري كما شرحنا سابقًا، وتجدر الإشارة الأن هذه الرموز الرقمية خاصة بكل جهاز حيث تطور لكل بنية معالجات لغة آلة خاصة به. وقد كانت الطريقة الوحيدة لإدخال هذه التعليمات إلى الحواسيب في بدايات ظهورها هي من خلال البطاقات المثقبة فإجهزة الحواسيب الأولى لم تكن أجهزة قادرة بعد على تخزين البيانات في ملفات لذا إذا أردت كتابة برنامج بلغة الآلة وإدخاله للحاسوب فإن الطريقة الوحيدة هي استخدام هذه البطاقات المثقبة. تحتوي كل بطاقة على ثقوب تُعبر عن تعليمات محددة للكمبيوتر حول المهام التي نريد تنفيذها، فإذا كان الثقب موجودًا سيمثل القيمة 1، وإذا لم يكن هناك ثقب يمثل القيمة 0، وكان لهذه البطاقات أشكال عديدة لكن أشهرها كان البطاقة المكونة من 80 عمودًا التي طورتها شركة IBM في عام 1928 كما هو موضح في الصورة التالية. مصدر الصورة تخيل أنك ستحتاج إلى بطاقة واحدة مشابهة من أجل كتابة كل سطر من التعليمات البرمجية! لذا كانت كتابة برنامج كامل باستخدام هذه البطاقات أمرًا في غاية الصعوبة ويتطلب مجموعة هائلة من البطاقات، وكانت هذه البطاقات تمرر إلى الحاسوب بشكل تسلسلي إلى جهاز مخصص يسمى قارئ البطاقات ليقوم بقراءة تعليماتها عمودًا عمودًا ويحول تسلسل الثقوب إلى معلومات رقمية، ثم يحملها في ذاكرة الحاسوب، وبعد اكتمال قراءة وتحميل كل البطاقات في الذاكرة ينفذ تعليماتها البرمجية ثم يخرج النتائج على شكل بطاقات مثقبة أيضًا. ولك أن تتخيل كم كان المبرمجون الأوائل يبذلون جهدًا في عملية البرمجة والتواصل مع الحاسوب، وقد استمر العمل بهذه الآلية ظهرت الأقراص المغناطيسية والأجهزة الطرفية peripherals لتخزين وإدخال البيانات وظهرت أجهزة الحواسيب الشخصية التي ألغت استخدام البطاقات المثقوبة ووجعلتها جزءًا من تاريخ لغات البرمجة. مميزات لغة الآلة بالرغم من أن لغة الآلة صعبة ومعقدة على البشر، إلا أنها تتمتع بمجموعة من المميزات والخصائص من أهما: تستخدام لغة الآلة الأرقام الثنائية 0 1 التي يفهمهما الحاسوب وينفذها مباشرة دون الحاجة إلى مترجم لتفسيرها. تسمح لغة الآلة للمبرمجين بالتحكم في عتاد الحاسوب مثل المعالج والذاكرة بشكل مباشر. تتميز لغة الآلة بالسرعة والكفاءة مقارنة مع اللغات عالية المستوى. تصلح لغات المستوى المنخفض لتطوير برامج النظام الأساسية للحواسيب. عيوب لغة الآلة من أبرز العيوب التي تعاني منها لغة الآلة ما يلي: من الصعب كتابة البرامج والخوارزميات المعقدة وتنفيذها باستخدام لغة الآلة. تتطلب كتابة الكثير من أسطر التعليمات البرمجية لبرنامج بسيط يتطلب تعديل البرامج الكثير من الوقت والجهد من الصعب تحديد وتصحيح الأخطاء البرمجية للبرامج المكتوبة بلغة الآلة تكون لغة الآلة خاصة بالأجهزة أي أنها تعتمد على نوع أو عائلة معالج الجهاز الذي ستعمل عليه لذا تختلف من جهاز لآخر الخلاصة تعرفنا في مقال اليوم على لغة الآلة التي تقع في أدنى مستويات لغات البرمجة والتي يفهمها الحاسوب بشكل مباشر وينفذها بواسطة وحدة المعالجة المركزية CPU، وتعرفنا على طريقة التعامل معها وأبرز مميزاتها وعيوبها. واليوم لم تعد لغة الآلة أو لغات المستوى المنخفض تستخدم من قبل المبرمجين إلا في مجالات وتطبيقات محدودة للغاية تحتاج للتعامل مع عتاد الحاسوب مباشرة، فقد أصبحت لغات البرمجة عالية المستوى أسهل بكثير ولكن تذكر أن جميع لغات البرمجة تحول في نهاية المطاف إلى برامج بلغة الآلة كي تنفذ من قبل الحاسوب. اقرأ أيضًا مستويات لغات البرمجة دليلك إلى أنواع لغات البرمجة قواعد البرمجة ببساطة للمبتدئين تعلم أساسيات البرمجة
    1 نقطة
×
×
  • أضف...