هل يمكن استخدام أي لغة للبرمجة في أي نموذج؟[مغلق]

StackOverflow https://stackoverflow.com//questions/10663108

سؤال

هل يمكن استخدام أي لغة للبرمجة في أي نموذج؟على سبيل المثال، لا تحتوي لغة C على فئات ولكن من الممكن البرمجة بلغة OOP.هناك بعض اللغات (مثل التجميع) لا أستطيع رؤيتها باستخدام OOP.

هل كانت مفيدة؟

المحلول

نعم، وذلك ببساطة لأنه يمكنك تنفيذ مترجم فوري لنموذج $favorite $ الخاص بك في اللغة المضيفة.

ولكن من الناحية العملية، فإن هذا ليس ممكنًا أو فعالًا أو صحيحًا.

نصائح أخرى

C++ هو في النهاية تجميع، لديك فقط مترجم لكتابة التجميع لك من خلال وصف أجمل.لذا، من المؤكد أنه يمكنك القيام بـ OOP في التجميع، تمامًا كما يمكنك القيام بـ OOP في لغة C؛كل ما في الأمر هو أن الكثير من مفاهيم OO يتم تنفيذها في نهاية المطاف من خلال القواعد التقليدية وانضباط المبرمجين بدلاً من فرضها بواسطة بنية اللغة، مما يؤدي إلى ظهور فئات كبيرة من الأخطاء، ومن المحتمل أن أدوات اللغة الخاصة بك لن تكون جيدة جدًا في مساعدتك في العثور على.

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

يمكن أن يكون الأمر أصعب قليلاً عندما تريد ذلك يزيل القيود بدلا من إضافتها.

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

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

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

لا، لا يمكن استخدام كل اللغات للبرمجة بأي نموذج.ومع ذلك، فإن البرامج الأكثر شيوعًا - python، وc++، وما إلى ذلك - تتيح لك اختيار الطريقة التي تريد البرمجة بها.حتى PHP يضيف دعم OO.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top