ماتريوشكا سي. نظام طبقة لغة البرنامج

دعونا نحاول أن نتخيل الكيمياء بدون الجدول الدوري لمندليف (1869). كم عدد العناصر التي يجب وضعها في الاعتبار، وبدون ترتيب معين... (ثم - 60.)

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

والآن يمكننا أن نستذكر مشاعر الكيميائيين في القرن التاسع عشر عندما عرضوا عليهم كل معارفهم، وأكثر قليلاً، في جدول دوري واحد.

ماتريوشكا سي. نظام طبقة لغة البرنامج


كتاب "ماتريوشكا سي. نظام الطبقات للغة البرنامج" يعرض جميع وحدات لغة C في لمحة. يتيح لك ذلك تنظيمها وتصحيح المعلومات القديمة وحتى توضيح مفهوم البرنامج ذاته.

اليوم، تحتاج معلومات البرمجة إلى التنظيم أكثر مما كانت تحتاج إليه العناصر الكيميائية قبل 150 عامًا.

الضرورة الأولى هي التدريس. بدأ مندليف في إنشاء نظامه عندما واجه سؤالاً عن العنصر الذي سيبدأ بإلقاء المحاضرات به: O، H، N، He، Au... وفي الوقت نفسه، كان الأمر أسهل بالنسبة له - فقد قام بتدريس الكيمياء للأفضل - طلاب جامعة سانت بطرسبرغ. ويتم تدريس البرمجة بالفعل في المدرسة وستبدأ قريبًا في رياض الأطفال.

والحاجة الثانية هي النهج العلمي. وبمساعدة الجدول الدوري، تم اكتشاف عناصر جديدة وتصحيح المعلومات عن العناصر القديمة. ساعدت في إنشاء نموذج الذرة (1911). وما إلى ذلك وهلم جرا.

الحاجة الثالثة هي توضيح مفهوم البرنامج.

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

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

وهو ما يعيدنا إلى المحاضرة الأولى لـ Privatdozent Mendeleev. ماذا أقول للطلاب الجدد؟ أين الحقيقة؟ هذا هو السؤال.

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

وفيما يلي ملخص للكتاب.

1. .ведение

في عام 1969، تم إنشاء لغة C، والتي أصبحت لغة البرمجة الأساسية وظلت كذلك لمدة 50 عامًا. لماذا هو كذلك؟ بادئ ذي بدء، لأن C هو مستعمل اللغة التي أعطت البرنامج إنسانية عرض بدلا من ذلك آلة. وقد تم تأمين هذا الإنجاز من خلال لغات من عائلة C: C++، وJavaScript، وPHP، وJava، وC# وغيرها. ثانياً، إنها لغة قصيرة وجميلة.

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

الحقيقة في المنتصف، وبالنسبة للغة C فهي في المنتصف تمامًا بين الإدراك الفلسفي والإدراك الآلي.

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

بعد تحديد مكان اللغة في البرنامج، يمكنك تنظيم المعلومات حولها، مما يجعل نظام لغة البرنامج الطبقاتيمثل لغة C بروح النظام الدوري - في صفحة واحدة.

تم بناء النظام مع الأخذ في الاعتبار مجتمعات اللغات التطبيقية، الناشئة عن تبعية كلامهم. تتيح لك مجموعة واحدة من وحدات Matryoshka C وصف اللغات المختلفة ومقارنتها، وإنشاء سلسلة من Matryoshkas: C++، وPHP، وJavaScript، وC#، وMySQL، وPython وما إلى ذلك. من الجدير والصحيح أن يتم وصف اللغات المختلفة بوحدات اللغة الأساسية.

2. الفصل 1. نموذج الكلام للبرنامج. مسح ج

يعرض الفصل الأول نموذج الكلام للبرنامج، مما يعكس نهجا تطبيقيا. ووفقا له، يحتوي البرنامج على ثلاثة أنواع متسلسلة واضحة:

  1. الكلام - الكلام المباشر للمبرمج الذي يحل المشكلة،
  2. مشفر - ترميز الحل في شكل رياضي بلغة C (أو أي لغة أخرى)
  3. والأمر - أوامر الآلة المباشرة.

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

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

يتم تحويل استنتاجات المبرمج، المعبر عنها بالكلام، إلى شكل رقمي مشفر. ينبغي أن يسمى هذا التحول انعكاسحيث أن الكلام والرمز لهما نفس الطبيعة (الانعكاس – الولادة – الجنس). يكون هذا واضحًا تمامًا إذا قارنا أنواع الكلام (على اليسار) والرمز (على اليمين) للبرنامج.

ماتريوشكا سي. نظام طبقة لغة البرنامج

ومن الغريب أن الانعكاس يحدث بكل بساطة - مع نوعين فقط من التعبيرات.

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

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

يتم الانعكاس بواسطة نوعين من التعبيرات:

  1. عملية حسابية (HF) - يعكس التغير في خصائص الكائن. يتم التعبير عن خاصية الكائن برقم، ثم الإجراء على الخاصية هو إجراء على رقم - عملية.
  2. التبعية (Pch) - يعكس التغيير في ترتيب الإجراءات. النموذج الأولي لـ Pch عبارة عن جملة معقدة من الكلام، وبالتالي فإن معظم أنواع Pch تبدأ بأدوات العطف التابعة "if"، "خلاف ذلك"، "بينما"، "من أجل". وتكملها أنواع أخرى من أجهزة الكمبيوتر.

بالمناسبة، هل تصدق أنه في وصف C لا يوجد اسم للتعبيرات الحسابية - فهي تسمى ببساطة "التعبيرات"؟ وبعد هذا لن يكون مستغربا عدم وجود اسم وارتباط لنوع التبعية، بل وندرة الأسماء والتعاريف والتعميمات بشكل عام. وذلك لأن K/R الشهيرة ("لغة C"، Kernighan/Ritchie، 1978) ليست وصفًا، ولكنها دليل لاستخدام اللغة.

ومع ذلك، ما زلت أرغب في الحصول على وصف للغة. ولذلك عرض عليه نظام لغة البرنامج الطبقات.

3. الفصل 2. نظام الطبقة. موجز ج

يجب أن يكون أي وصف دقيقًا وموجزًا ​​للغاية. في حالة لغة البرنامج، يكون الوصف الأمامي صعبًا.

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

في مثل هذا العرض، ليس من السهل أن نفهم من وقف على من.

سيكون النهج الهرمي المباشر لوصف اللغة معقدًا للغاية. يؤدي البحث غير المباشر إلى وصف اللغة بناءً على طبيعة الكلام وجانب الأمر. وهكذا وُلد نظام الطبقات، والذي يتزامن جزئيًا مع النظام الدوري لمندليف، وهو أيضًا رقائق. كما اتضح بعد 42 عاما من نشره (1869)، ترتبط دورية النظام بالإلكترونية طبقات (1911، نموذج بور-رذرفورد للذرة). كما أن النظام الطبقي والدوري متشابهان في الترتيب الجدولي لجميع الوحدات في صفحة واحدة.

وصف الوحدات اللغوية مختصر - 10 أنواع فقط من التعبيرات و8 أنواع من الوحدات الأخرى، بالإضافة إلى ذات معنى ومرئية. على الرغم من أنه غير عادي بالنسبة للتعارف الأول.

تنقسم وحدات اللغة إلى 6 مستويات:

  1. الوحدات - صفوف الجدول
  2. الأقسام - مجموعات خاصة من الأجناس (أجزاء من السطر الأول)
  3. جنس - الخلايا (المستوى الرئيسي للانقسام)
  4. الأنواع الفائقة - فواصل الأنواع (مستوى نادر)
  5. الأنواع - صيغ الوحدة في أسفل الخلية أو بشكل منفصل
  6. الأنماط - الوحدات نفسها (للكلمات فقط)

وصف الكلمات عينة قاموس - نظام فرعي منفصل يتكون من نفس المستويات الستة.

إن مكون الكلام في لغة C واضح تمامًا، على الرغم من أنه لا يزال يستحق الوصف. لكن جزء الأمر من اللغة يرتبط بدقة بالتحكم في الترجمة، حيث يتم إنشاء النوع الثالث من البرامج - الأمر. نأتي هنا إلى الجانب الأكثر إثارة في لغة C: الجمال.

4. الفصول التالية. وسيم سي

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

ما الذي اقترحه شي بالضبط؟ الصورة والطبقة.

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

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

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

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

ولكن هذا ليس مصيرنا. خيارنا هو التعريفات ذات الحاجب المرتفع باللغة الروسية النقية.

صورة

صورة هو اسم رمزي للكمية، يحدد 1) الخصائص الجوهرية للكمية و2) اختيار العمليات للكمية.

تتوافق كلمة "نوع" (نوع) مع الجزء الأول من التعريف: "الخصائص الجوهرية للكمية". لكن المعنى الرئيسي للصورة يكمن في الجزء الثاني: "اختيار العمليات على الكميات".

نقطة البداية لإدخال صورة في لغة C هي عملية حسابية عادية، مثل عملية الإضافة.

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

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

مُطبَّق الرياضيات، أي لغة C، تفصل بين أنواع الأرقام، ولكنها تجمع بين العمليات: تتم كتابة جمع الأعداد الصحيحة و/أو الكسور بعلامة إجراء واحدة.

يتيح لنا التعريف الواضح لصورة المفهوم أن نتحدث بالتأكيد عن مفهومين آخرين: قيمة и عملية.

الحجم والتشغيل

قيمة - الرقم الذي تتم معالجته.

عملية — معالجة قيم القيم الأولية (الوسائط) للحصول على الرقم النهائي (الإجمالي).

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

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

كما تم تقسيم الفرق إلى نوعين من الإجراءات: الرياضية والخدمة. الإجراءات الرياضية - العمليات. سنصل إلى الأشياء الرسمية لاحقًا.

في لغات C، تصبح العمليات الرياضية الورقية والآلة المعتادة التي لا لبس فيها، أو الفردية، متعددة عالميًا تقريبًا.

العمليات المتعددة هي عدة عمليات تحمل نفس الاسم مع أنواع مختلفة من الوسائط وإجراءات مختلفة ومتشابهة في المعنى.

تتوافق الوسائط الصحيحة مع العملية بأكملها، والوسائط الكسرية تتوافق مع العملية الكسرية. ويتضح هذا الاختلاف بشكل خاص أثناء عملية القسمة، عندما يعطي التعبير 1/2 إجمالي 0، وليس 0,5. لا يتوافق هذا التدوين مع قواعد الرياضيات الورقية، لكن لغة C لا تسعى جاهدة للامتثال لها (على عكس فورتران) - فهي تلعب وفقًا لمبادئها الخاصة مُطبَّق القواعد.

في حالة خلط الأعداد الصحيحة والكسور، يتم تضمين الصحيح الوحيد صب قيم الوسيطة - التحويل الانتقائي للقيمة من صورة إلى أخرى. في الواقع، عند إضافة عدد صحيح وعدد كسري، تكون النتيجة كسرية، وبالتالي صورة العملية يلتقط عملية تحويل وسيطة عدد صحيح إلى قيمة كسرية.

لا يزال هناك عدد من العمليات جمعو غير مرتبطة. يتم تعريف مثل هذه العمليات فقط لنوع واحد من الوسائط: قسمة الباقي - وسيطات الأعداد الصحيحة، والتراص (عمليات البت) - الأعداد الصحيحة الطبيعية. يشير Ma3 إلى تعدد العمليات بعلامات (#^) تشير إلى الصور التي تم تعريف العملية من أجلها. هذه خاصية مهمة ولكن تم التغاضي عنها سابقًا في كل عملية.

جميع الوظائف هي عمليات وحدة تعسفية. الاستثناء هو المشغلين - وظائف غير قوس، مدمج في اللغة (العمليات الأصلية).

مساعدة

مساعدة - العمل المصاحب للعملية.

إذا اعتبرنا العملية هي الإجراء الرئيسي، فيمكننا التمييز بين عمليتين مصاحبتين تقدمان العملية وتختلفان عنها. هذه هي 1) التحكم المتغير و 2) التبعية. ويسمى هذا الإجراء مساعدة.

هنا نحتاج إلى الاستطراد والتحدث بشكل منفصل عن الترجمات الروسية للكتب المدرسية عن البرمجة. تم إدخال كلمة جديدة في نص K/R لتسجيل الإجراءات بيان (تعبير)، الذي حاول تقسيم مفاهيم أمر الآلة إلى إجراءات مختلفة: 1) العملية، 2) الإعلان، و3) التبعية (تسمى "بنيات التحكم"). تم دفن هذه المحاولة من قبل المترجمين الروس، حيث استبدلوا كلمة "تعبير" بكلمة "المشغل"، والتي:

  1. أصبحت مرادفة لكلمة الآلة "الأمر"،
  2. أصبح مرادفا لعبارة "علامة العمل"،
  3. وحصلت أيضًا على عدد غير محدود من القيم الإضافية. أي أنها تحولت إلى ما يشبه المقالة الإنجليزية “uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh”.

النظر في الإجراءات المصاحبة، أو مساعدة.

التحكم المتغير

التحكم المتغير (UP) - إنشاء/حذف الخلايا المتغيرة.
يحدث UE ضمنيًا عند الإعلان عن متغير تمت كتابته بالفعل لسبب آخر - للإشارة إلى صورة القيمة. تتم إدارة عرض واحد فقط بشكل صريح متغيرات إضافية باستخدام وظائف malloc () ومجانية ().

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

التبعية

التبعية - توصيل/تعطيل أقسام الطبقة.

قدمت لغة C طريقة تطبيقية للتحكم في ترتيب الإجراءات، تختلف عن طريقة التجميع - التبعية. إنه يعكس ويطور جملة معقدة من الكلام مع تقسيم واضح إلى الجزء الرئيسي (جملة التبعية) والجزء الثانوي (أقسام المستوى الفرعي/الروتين الفرعي).

كل من الإعلان والتقديم مبنيان بالكامل على هذا المفهوم طبقة.

طبقة

طبقة هي مجموعة انتقائية محدودة المستوى من التعبيرات.

تتولى الطبقة بشكل صريح وضمني عدة مهام في وقت واحد:

  1. تنظيم البرنامج
  2. الحد من ظهور الأسماء (ضمنيًا)،
  3. إدارة المتغيرات (خلايا الذاكرة) (ضمنيًا)،
  4. تعريف الشروط الثانوية للتبعية ،
  5. تعريفات الوظائف والاختيارات وغيرها.

لم يكن هناك مفهوم الطبقة في لغات الآلة، لذلك لم يظهر في K/R، وإذا لم يكن هناك شيء، فإن تقديمه في الكتب اللاحقة سيكون بدعة وتفكيرًا حرًا. لذلك، لم يظهر مفهوم الطبقة على الإطلاق، على الرغم من أنه مفيد للغاية وواضح تمامًا.

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

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

انحراف

انحراف - تغيير الخصائص المعتادة للاسم الجديد.

ويرتبط الانحراف الأكثر أهمية على وجه التحديد بخصائص طبقة البرنامج، ويتم وصفه بكلمة واحدة "ثابتة"، والتي لها معنى مختلف في كل نوع من الطبقات.

5. الفصل الأخير. القواسم المشتركة بين اللغات التطبيقية

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

ماتريوشكا سي. نظام طبقة لغة البرنامج

(لم يتم تسليم تخطيط الجدول بعد، لذلك يظهر الجدول مع صورة.)

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

الحمولة الزائدة وتعدد الأشكال

تعد كلمة "التحميل الزائد" مصطلحًا قديمًا للتعلم الآلي للإنشاء عمليات متعددة.

مبرمجو الآلة (النظام). تعدد قد تكون العمليات مزعجة: "ماذا تعني هذه العلامة (+): إضافة أعداد صحيحة، أو إضافة كسور، أو حتى الإزاحة؟! في زماننا لم يكتبوا هكذا! ومن هنا جاءت الدلالة السلبية للكلمة المختارة ("مبالغة"، "متعب"). بالنسبة لمبرمج التطبيقات، تعد العمليات المتعددة هي حجر الزاوية، والإنجاز الرئيسي وإرث لغة C، وهو أمر طبيعي جدًا لدرجة أنه لا يتم التعرف عليه غالبًا.

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

من الأفضل التعبير عن إعلان النموذج "الحمل الزائد" بالكلمة إعلان إضافي - إضافة إعلان لوظيفة تحمل نفس الاسم مع وسيطات لصورة مختلفة.

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

بعد ذلك سيكون من السهل أن نفهم أن نفس الأساليب للصور (الوسائط) المختلفة - أعلن بالإضافة إلى ذلكوصورة واحدة - أعيد الإعلان عنها.

الكلمات الروسية تقرر.

المدرج

إن النظر في مفاهيم اللغات التصويرية للغاية يؤكد أهمية التعريف الواضح للمفاهيم الأساسية. مع وصف لغة C بشكل صحيح، سيكون تعلم اللغات التصويرية العالية أمرًا سهلاً وممتعًا.

هذا مهم بشكل خاص ل اللغات الضمنية التصويرية للغاية (بي إتش بي، جافا سكريبت). بالنسبة لهم، تصبح أهمية الكائنات (الصور المركبة) أعلى مما هي عليه في لغة C++، لكن مفهوم الصورة ذاته يصبح ضمنيًا ومراوغًا. من وجهة نظر الملاءمة، أصبحت أبسط، ولكن من وجهة نظر الفهم، أصبحت أكثر صعوبة.

لذلك يجب أن تبدأ بتعلم لغات البرمجة مع لغة C وتتقدم أكثر بالترتيب الذي تظهر به لغات عائلة C.

وينطبق الشيء نفسه على وصف اللغات. اللغات المختلفة لها نفس مجموعة أجناس الوحدات أو أصغر منها في لغة C. قد يختلف عدد الأنواع والعينات في كلا الاتجاهين: تحتوي لغة C++ على أنواع أكثر من لغة C، بينما تحتوي لغة JavaScript على عدد أقل.

لغة MySQL تستحق الذكر بشكل خاص. يبدو أنه لا يوجد شيء مشترك، لكنه موصوف بشكل مثالي من قبل ماتريوشكا، ويصبح التعرف عليه أسرع وأسهل. وهو أمر مهم، نظرا لأهميته بالنسبة للويب - طريق تناول البرامج الحديثة. وحيثما يوجد MySQL، توجد SQLs أخرى. حسنًا ، تم وصف جميع أنواع Fortran-Pascal-Pythons أيضًا بواسطة Matryoshka بمجرد حصولهم عليها.

لذا، تنتظرنا أشياء عظيمة - وصف تطبيقي للغة C ووصف موحد للغات التي تليها. "أهدافنا واضحة، ومهامنا محددة. ابدأوا العمل أيها الرفاق! (تصفيق عاصف ومطول، يتحول إلى تصفيق. يقف الجميع.)"

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

المصدر: www.habr.com

إضافة تعليق