كيف يتم "برمجة" لغات البرمجة ، كما هو الحال في كيفية جعلها عبارة معينة تخبر الكمبيوتر ماذا يفعل؟


الاجابه 1:

هناك سلسلة من الدورات الجامعية التي تجيب على هذا السؤال. يتم تمييزها تقريبًا

بناء المترجم.

عادة ما يكون الجزء الأخير من السلسلة هو دورات الدراسات العليا والعمل الهام في هذا المجال بشكل عام يكسب واحدًا دكتوراه.

ومع ذلك ، يمكنك الحصول على مقدمة صغيرة من مقالة جاك كرينشو

دعونا نبني مترجم.

ابحث عن مجموعة الأخبار comp.compilers. هو مؤرشف هناك.


الاجابه 2:

لغات البرمجة ، حسناً ،

اللغات

. لديهم قواعد النحو والمفردات والقواعد. يمكن اعتبار البيانات في البرامج بمثابة إعلان ، مما يعني أنها تحدد شيئًا بالاسم ، أو أنها أوامر قانونية في تلك اللغة.

البرمجة أكثر دقة من التحدث أو الكتابة بشكل عام ؛ إذا حصلت على بيان خاطئ نحويًا ، فإن المترجم سيشير إلى خطأ. إذا كانت العبارة صحيحة نحويًا ، لكن المنطق خاطئ ، فإن البرنامج يقوم بشيء غير مخطط له.

من أجل برمجة جهاز كمبيوتر ، يجب أن تكون صحيحًا جدًا في بناء الجملة والدلالات ، أو يمكن أن تحدث أشياء سيئة.


الاجابه 3:

بدلاً من "مبرمجة" ، ستكون الكلمة الأفضل هي "bootstrapped". تتطلب الإجابة أن يكون لديك ثلاثة نماذج عقلية:

  • نموذج منطقي في بنية الكمبيوتر يساعدك على فهم طريقة عمل أجهزة الكمبيوتر.
  • نموذج لمجموعة تعليمات وحدة المعالجة المركزية يساعدك على فهم طريقة فهم أجهزة الكمبيوتر لتعليماتنا.
  • نموذج لعملية التمهيد.

لاحظ أن التفسيرات هنا مبسطة بالنية. توجد حقول كاملة لهذه المناطق لأن هناك الكثير من العمق لها.

منطقيات ، قطع وكمبيوتر

فكر في متغير "س"

يمكن أن تأخذ فقط قيمة 0 أو 1. هذا ما نسميه منطقية.

قد تعرف بالفعل الترانزستورات. الأشياء المادية التي تسمح لنا بالتحكم في التبديل في حالة "تشغيل" و "إيقاف" بتمرير تيار من خلالها. يمكن نمذجة حالة التشغيل والإيقاف باعتبارها 0 أو 1 على التوالي ، في جوهرها منطقية.

في الواقع ، يتم استخدام الترانزستورات لإنشاء بوابات تقوم بدورها بتات والتي هي وحدات أساسية للتلاعب المنطقي في أجهزة الكمبيوتر. هذا ليس مطلوبا لهذه الإجابة ولكن

روكساني أثاباثو

تفسير

فكرة جيدة إذا كنت تريد معرفة المزيد.

لماذا هذا مهم؟ يمكن عمل الأشياء الرائعة باستخدام مجموعات من القيم المنطقية. اجمع بين متغيرين منطقيين معًا ويمكن أن يكون لدينا تعيين 1–1 للأعداد الصحيحة 0،1،2 و 3:

  • 00: 0
  • 01: 1
  • 10: 2
  • 11: 3

إذا قمت بالزيادة إلى 3 متغيرات منطقية ، يمكنك نمذجة الأعداد الصحيحة من 0 إلى 7. في الكمبيوتر إذا كان لديك n بت ، فلديك n متغيرات منطقية ويمكنك نمذجة من 0 إلى (2 ^ n) -1 أعداد صحيحة. خذ 8 بتات ، 3 لتعطيك 8 ظلال من اللون الأحمر (المسمى 0 إلى 7) ، 3 لإعطائك 8 ظلال من اللون الأخضر و 2 لتمنحك 4 ظلال من اللون الأزرق ولديك 8 بت RGB.

الاتصال الرئيسي هنا هو أن الترانزستورات والبوابات والبتات كلها دوائر. الأجهزة المادية التي تسمح لنا بتعيين مفاهيمنا المنطقية المجردة لأجهزة العالم الحقيقي. نحن

بناء

هذا السلوك في العالم المادي بنفس الطريقة التي نصنع بها السيارات أو الآلات الموسيقية. على غرار كيفية تحرك السيارة يمينًا عند إدارة عجلة القيادة يمينًا (يمكن أن تكون قد تركت كذلك) أو كيف يمكنك معرفة جميع المفاتيح التي تلعب 'C' في أوكتاف مختلفة من النمط على البيانو.

مجموعة تعليمات الكمبيوتر

بمرور الوقت ، قمنا بتطوير مجموعة قياسية من السلوكيات لدوائر الكمبيوتر المنطقية. تحتوي وحدة المعالجة المركزية على تسجيلات ذاكرة مدمجة صريحة يتم تمييزها من خلال القيم المنطقية. يمكن أن يكون 001 تسجيل 1 (R1) ، يمكن أن يكون 002 تسجيل 2 (R2) وهكذا.

وبالمثل ، ستحتوي وحدات المعالجة المركزية على أجهزة محددة لتحديد القيم للأجهزة. سيكون هذا مزيجًا من 3 مجموعات من القيم المنطقية.

000،001،011

. قراءة الأساس كما تنفيذ التعليمات 0 على التسجيل 1 مع القيمة 3. 000 يمكن التعيين. يقرأ هذا تقريبًا كـ "تعيين لـ R1 القيمة 3" أو حرفياً "تعيين R1 3".

سيكون هناك أجهزة محددة للإضافة. يمكن أن تبدو

002 001002

يمكن تنفيذ التعليمات 2 (إضافة) على R1 و R2. تحتوي وحدات المعالجة المركزية على أجهزة محددة لإضافة مؤشرات الذاكرة وطرحها وضربها وتقسيمها وتحريكها ، إلخ ... مرة أخرى ، العمليات الفعلية الفعلية.

قم بتطوير مجموعة موحدة من هذه التعليمات ولديك "مجموعة تعليمات". أي شيء بهندسة x86 يستخدم مجموعة تعليمات x86. هذا هو السبب في أنه يمكنك تشغيل العديد من برامج نوافذ سطح المكتب على أجهزة Intel Surface ولكن ليس أجهزة ARM.

نشير إلى التعليمات المكتوبة في ملف ثنائي باستخدام مجموعة التعليمات باسم "رمز الجهاز". كل برنامج ، بغض النظر عن اللغة ، سينتهي به الأمر كرمز للجهاز قبل تنفيذه. هذه هي "اللغة" الوحيدة التي تفهمها أجهزة الكمبيوتر بالفعل. البرنامج عبارة عن شريط مستمر من هذه التعليمات الفيزيائية التي يتم تغذيتها إلى وحدة المعالجة المركزية.

إلى خلاصة. باستخدام الترانزستورات ، يمكننا بناء أجهزة لتمثيل التصميمات المنطقية في العالم الحقيقي. يمكننا استخدام القيم المنطقية لتصميم الهواء ومعالجة الذاكرة والتحكم في الجهاز على الأجهزة. نجعلها في مجموعة قياسية من التعليمات التي يتم استخدامها لكتابة رمز الآلة تخبر الكمبيوتر بالطريقة لتنفيذ عملياته الفعلية الفعلية.

تمهيد لغة

يمكننا الآن الوصول إلى الإجابة أخيرًا. يمكننا استخدام مجموعة تعليمات للقيام بمعالجة السلسلة. مما يعني ، على مستوى الأجهزة ، من خلال التمثيلات المنطقية والعمليات الفيزيائية ، يمكننا معالجة وفهم تسلسل الأحرف ('abcd') وتسلسلات الإخراج من القيم المنطقية ('101011'). بمعنى أنه يمكننا كتابة رمز الآلة يدويًا لأخذ سلسلة "أضف 1 2" وتحويلها إلى تمثيل رمز الآلة

001،001،010

التي يفهمها الكمبيوتر. يسمى هذا "رمز التجميع" والبرنامج الذي يحولها إلى رمز الجهاز هو "مجمّع". الآن أنت تعرف معنى مصطلح "لغة التجميع". سيكون لكل مجموعة تعليمات لغة التجميع الخاصة بها.

تسمح لنا لغات التجميع بتجنب كتابة رمز الآلة ولكنها لا تزال قريبة جدًا من رمز الآلة. مع لغة التجميع ، يمكننا الكتابة باستخدام الكلمات البشرية التي تسمح لنا بكتابة برامج أكثر تعقيدًا قليلاً. ثم نترجم التنسيق المتوقع ، ونقول "int abc ()" إلى رمز التجميع الجديد الذي يحرك مؤشر المكدس و voila! لديك أول مترجم C الخاص بك! برنامج يجمع تعليماتك المكتوبة في C إلى رمز التجميع.

سيتم تحويل أي رمز تكتبه في C إلى رمز التجميع الذي يتم تحويله بدوره إلى رمز الجهاز من قبل المجمع الذي يستخدمه جهاز الكمبيوتر الخاص بك لتشغيل العمليات الفعلية لتنفيذ العمليات الحسابية الخاصة بك.

نكتب أول مجمع في كود الآلة. ثم نكتب النسخة الأولى من المترجم بلغة التجميع. يمكن كتابة الإصدار الأحدث من C في الإصدار القديم من C. يوضح الشكل التالي هذا (يظهر إخراج المترجمين كرمز آلة ولكنه في الواقع المجمع الذي يقوم بذلك).

وبمجرد حصولك على C ، يمكنك كتابة لغة مثل Python in C (في الواقع ، ستتم كتابة معظم اللغات على مستوى أعلى من التجميع هذه الأيام).

للمتعة ، يمكنك بسعادة كتابة مترجم بيثون في Python. ثم قم بتشغيل هذا المترجم بشكل متكرر وسيكون لديك برنامج بيثون يفسر برنامج بيثون وهكذا حتى تعطل البرنامج من نفاد الذاكرة.

يوجد لديك.


الاجابه 4:

يتم ذلك باستخدام

المترجم

برنامج.

تتكون العملية من 3 مراحل رئيسية ، الواجهة الأمامية ، الوسيطة ، والخلفية

نهاية المقدمة

المرحلة ، نقوم بما يلي:

  • التحليل المعجمي
  • تفسير
  • التحليل الدلالي

ستكون النتيجة النهائية لهذه المراحل هي ملف ثنائي - عندما يتم تنفيذه ، عادة بواسطة نظام تشغيل ، يقوم بتشغيل كود الجهاز المشفر في ذلك الثنائي على بنية وحدة معالجة مركزية محددة.