كيف بدأت البرمجة ؟من أخترعها ؟ كيف أخترعها؟
هل يوجد معنا من يعرف الأجابة الشافية
الحاسوب لا يفهم سوى 01 ، لتكتب جملة ستحتاج للكثير من الـ01 بترتيب معين ، يأخذ معك وقت طويل لعمل شيء بسيط ، بنيت على الـ01 لغات أخرى ، حيث أنه يتم عمل مفسر يفهم أنه عندما يكتب المبرمج "IF" فسيتم تحويله للحاسوب على أنه "0111 000 0001 1010" (غير متأكد أنها نفسها)
وهكذا بنيت لغات برمجة على لغات أخرى لتسهيل المهمة على المبرمج
سأضرب لك مثال :
أنا أعرف اللغة العربية وأريد تعلم الإنجليزية
أتى المعلم وقال لي :
"playing" .. هل سأفهم ؟
طبعاً لا ..
مثال آخر :
أنا أعرف اللغة العربية وأريد تعلم الإنجليزية
أتى المعلم وقال لي :
"playing" تعني لعب .. هل سأفهم ؟
طبعاً نعم
______________________________
الحاسوب يفهم لغة الآلة فعليها نخبره أن "x" هو "y"
أول اشي كانوا يبرمجوا اشي اسمه Punched card
بعدها تطور للأسمبلي وبعدها للغات علية المستوى
اليوم لغة البرمجة تمر على برنامج يحولها إلى تعليمات بلغة الآلة (اللغة التي يفهمها المعالج) فستصبح دالتك مثل 1011 1011 .
في أول أيام ظهور الحاسوب كانت فقط تعليمات الآلة (1011 1011) و الوحيدة الموجودة (و المتعلقة بهيكلة و بنية المعالج) كتبوا برامج عديدة تسهل عليكم الحوسبة و البرمجة مثل نظام التشغيل و برامج لغة التجمع (assembly) و السنوات تمر ثم أصبحت البرمجة عبر لغة التجمع (assembly) و هكذا يتطور الحاسوب عتاد و برامج...
أرجوا أن اكون لخصت و وضحت معا :) كتابتها كانت بتعليمات المعالج مباشرة... (لا ادري إن كان يصح تسميتها لغة)
أن تكتب بلغة الآلة (وليس لغة التجميع assembly) أمر غير مستحيل. أو شيء تعمله بلغة الآلة هو أن تكتب لغة التجميع ثم من لغة التجميع تكتب لغة أعلى قليلا مثل سي ثم تنطلق.
كيف صنعت لغة الآلة؟ هي لم تصنع فهي اللغة التي يفهمها وينفذها المعالج مباشرة.
سأوضح الأمر. لنأخذ أبسط مثال وهو معالج المتحكم الدقيق PIC. هو معالج ذي 8-بت وطول الكلمة 12-بت (أو أكثر وغالبا 14-بت) بمعنى أن كل تعليمة أو أمر جزء منها ال 8 بت المعامل وجزء آخر هو رمز التعليمة. هذا المعالج البسيط له 35 تعليمة فقط. إن كانت التعليمة (الأمر) بحاجة لمعاملين مثل عملية جمع 7 + 8 فإن أحد المعامل موجود مباشرة في التعليمة والآخر موجود في المسجل w0.
هناك جدول في ويكيبيديا يوضح التعليمات
لنجمع 7 + 8 بلغة التجميع
MOVLW 8
ADDLW 7
لنفعلها بلغة الآلة
0b11-0000-0000-1000
0b11-1110-0000-0111
وذلك فقط بتعويض 7 و 8 مكان k في جدول التعليمات instruction set الموجود في ويكيبيديا.
راجع حجم الكمبيوتر من البداية
وقبلها راجع حجم الالة الحاسبة (calc)
اخبرني ابي ان احد الدحاضرين في كليته (هندسة الكترونيات) اخبرهم اثناء المحاضرة ان اول الة حاسبة كانت بحجم 3 قاعات مثل التي هم بها
اول سؤال بدر لذهني هو (كيف اصبحت بهذا الحجم الان؟) كان رده بسيط
في البداية كانت الالة تقوم بجمع رقمين عن طريق عملية ميكانيكية معقدة ومجموعة كبيرة من التروس في هذة المساحة وتأتي النتيجة بعت ثلث ساعة (جمع رقميت في ثلث ساعة وضوضاء رهيبة)
الان انت تجمعهمفي لحظة او اقل باللمس على سطح املس
اظن المثل حدث مع الكمبيوتر ولاكن بشكل كهربي بلا من الميكانيكي
البورسيسور عبارة عن عدد كبير من الترانزيستورات والتي تعمل كبوبات 1/0
ولغة البرمجة تترجم في النهاية لمجموعة من ال1/0
اظن ان اول برنامج كان عبارة عن بوابات مادية
ضع في الاعتبار تعريف البرمجة (البرمجة: فن حل المشاكل) وهو التعريف الذي اعيش به
لا اعلم ان كان كلامي صحيح ام لا ولاكن هذا ما فكرت به سريعا... لا اريد الحث الان بصراحة
والله اعلم
الموضوع بسيط جدا الحاسوب اله لا تفهم سوي اشارات كهربية on /off او 0 / 1 اذا ستتعامل معه علي اساس كل مجموعة معينة من الاوفان والاونات علي انه امر معين يجب ان ينفذه هذه الالة.وهنا جاءت الحاجة للبرمجة وتاريخها طويل وومعقد ولكن السؤال الذي يطرح نفسه كيف يعجز الانسان عن فهم لغة برمجة كتبها انسان اخر هل الذي كتب اللغة سوبر انسان ام ماذا؟
ما دام لا يفهم سوى 0/1 كيف وصل الأمر ببرمجة برامج متقدمة محترفة مثل الفوتشوب
أن كان الأمر فقط 0/1 كيف أستطاعو أن يضيفو أيقونات أكيد عن طريق لغة برمجة
سؤال من أين أتت لغة البرمجة
أنت تقفز مباشرة من 0 و 1 إلى معالجة الصور، ولقد تجازوت ببساعة عشرات وآلاف المراحل
عليك أن تقسم عمليات الفوتوشوب إلى دوال لغات برمجية، ثم تقسيم تلك الدوال إلى أوامر أبسط، ثم الأوامر الأبسط إلى أخرى أكثر بساطة وهكذا حتى تصير الأوامر مجرد مجموعة من الطرح والقسم ويمرر أو لا يمرر وهذا حتى تستطيع التعامل بواسطة الدارات المنطقية والتي هي مكونة من قطع أصغر مثل مقاوات ومقاحل ومكثفات. الأمر معقد جدا لأشرحه لك هنا في رد سريع
ولكن أكتفي بأن أقول لك أن لغات البرمجة هي مجموعة من أوامر 0 و 1
الامور حصلت في تتابع منذ الجيل الاول كانت البرمجة صعبة جدا وتستخدم لغه الآله ولكن مع وجود اختراع المترجمات سهلت للناس التواصل مع الحاسوب من اجل اداء مهام كمثل برنامج الفوتوشوب مثلاً.
اقرأ هذا الكتاب لتعرف اكثر عن الأمر:
وراجع مقاله وكيبيديا حول موضوع تاريخ البرمجة:
عليك أن تقرأ بعض الكتب لكي تجد إجابة، كتب عن تاريخ الحاسوب وكتب أخرى عن هندسة الحاسوب وكيف صنع، من الصعب تقديم إجابة وافية هنا.
هناك شيء يمارسه بعض المبرمجين ويسمى Bootstraping وله أشكال مختلفة:
بعض الحواسيب تصمم لكي تستقبل مدخلات من لوحة المفاتيح دون نظام تشغيل، بمعنى أن المستخدم يتفاعل مباشرة مع المعالج وكل أجزاء الحاسوب، وبالتالي يمكنه أن يكتب برنامجاً يسمى Machine code monitor وهو أداة بسيطة تسمح للمستخدم بحفظ البيانات في ذاكرة الحاسوب أو في جهاز تخزين، وبما أن المستخدم يملك حق الوصول لذاكرة الحاسوب يمكنه أن يبرمج مباشرة لغة البرمجة أو نظام التشغيل.
بعض الحواسيب تعتمد على حواسيب أخرى أو أنظمة تشغيل أخرى لبرمجة أول لغة برمجة وأول نظام تشغيل ثم يمكن للمستخدم أن يبرمج في الحاسوب نفسه.
كان الامر في الاول مقتصرا على المداخل و المخارج الثنائية يعني مثلا ادا كانت a*b+c=o ثم بداو بجمع الاوامر المتكررة و المستعملة بكثرة مع بعضها في نفس الامر في لغة التجميع و من هنا اتى اسمها بعدها اتت لغات اقوى بجمع الاوامر المرتبطة ببعضها في نفس الامر و هكدا لكن المشكل عندما نجمع الاوامر مع بعضها تبقى بعضها غير ضرورية ما يشكل عبئا على الجهاز اكثر من اللغات الاقرب الى الالة و الاكثر دقة
تلقى الاجابة الشافية هنا في هذا الرابط
ف الاول لازم تعرف تركيب نظام التشغيل بتاعك
وبديهي تعرف انك بشكل او باخر لازم تكلم الهاردوير
الكمبيوتر عباره عن شوية سويتشات وشوية دواير منطقية لو مش عارف ايه هي قول
هل هكذا بدأت البرمجة؟
شوية سويتشات وشوية دواير منطقية
أنتبه على حالك أنت معرض للأغتيال من مهووسين الكمبيوتر والبرمجة؟
المعني العام للبرمجه هو انك تقدر توصل الكلام الذي يفهمه البشر للغه تفهمها الاله والاله المقصود بيها السويتشات و الدوائر المنطقية
وعليه ارجع بتاريخ الكومبيوتر للسابق كان عباره عن شئ كبير موجود به مفاتيح
ومن بعد كان التعامل عن طريق الاوامر المباشرة الموجهة الي المعالج كما في لغة Assemply فانها تتعامل مباشرة مع البروسيسور وكذلك مع Registers
ولكن كان هناك مشكلة هي ان كل برنامج Assemply لا يعمل الا مع نوع البروسيسور الوحيد الذي بني من اجله واختفت هذه المشكله عند ظهور لغة ال c ومن بعدها اصبحت قادر علي تحويل الكود النصي الي binary كود بيتعامل مع الاله
التعليقات