التداخل (الحوسبة)
في علوم الحاسوب والمعلوماتية ، يشير مصطلح "التداخل" [ 1 ] إلى تنظيم المعلومات في طبقات، أو احتواء الكائنات على كائنات أخرى مماثلة. ويشير هذا المصطلح في الغالب إلى البنى المتشابهة ذاتيًا أو المتكررة بشكل أو بآخر.
مصطلحات
قد يعني التعشيش ما يلي:
- استدعاءات متداخلة:
- باستخدام عدة مستويات من الإجراءات الفرعية
- استدعاءات متكررة
- مستويات متداخلة من الأقواس في التعبيرات الحسابية
- كتل متداخلة من التعليمات البرمجية الإجرائية مثل عبارات if المتداخلة، وعبارات while، وعبارات repeat-until، وما إلى ذلك.
- إخفاء المعلومات :
- تعريفات الدوال المتداخلة ذات النطاق المعجمي
- هياكل البيانات المتداخلة مثل السجلات والكائنات والفئات وما إلى ذلك.
- المحاكاة الافتراضية المتداخلة ، وتسمى أيضًا المحاكاة الافتراضية المتكررة: تشغيل آلة افتراضية داخل آلة افتراضية أخرى
في جداول البيانات
في جداول البيانات ، يمكن دمج الدوال داخل بعضها البعض، مما يُنتج صيغًا معقدة. يتيح معالج الدوال في تطبيق OpenOffice.org Calc التنقل بين مستويات متعددة من التداخل، مما يسمح للمستخدم بتحرير (وربما تصحيح) كل مستوى منها على حدة.
على سبيل المثال:
=IF(SUM(C8:G8)=0,"Y","N")
في صيغة مايكروسوفت إكسل هذه ، تم تضمين دالة SUM داخل دالة IF. أولاً، تحسب الصيغة مجموع الأرقام في الخلايا من C8 إلى G8. ثم تحدد ما إذا كان المجموع يساوي صفرًا، وتعرض الحرف Y إذا كان المجموع يساوي صفرًا، والحرف N إذا كان يساوي صفرًا.
بطبيعة الحال، للسماح بالحل الرياضي لهذه الصيغ المتسلسلة (أو الأفضل: المتداخلة )، يجب تقييم التعبيرات الداخلية مسبقًا، وهذا الاتجاه الخارجي ضروري لأن النتائج التي تُرجعها الدوال الداخلية تُستخدم مؤقتًا كبيانات إدخال للدوال الخارجية .
نظراً لاحتمالية تراكم الأقواس في سطر برمجي واحد، قد يصبح التحرير واكتشاف الأخطاء (أو تصحيحها ) أمراً صعباً . لذا، تُبرز بيئات البرمجة الحديثة -وكذلك برامج الجداول الإلكترونية- زوج الأقواس المقابل لموضع التحرير الحالي بخط غامق. تُعرف عملية الموازنة (التلقائية) بين الأقواس المفتوحة والمغلقة باسم التحقق من تطابق الأقواس .
باستخدام إصدارات Excel الحالية، يمكن استخدام وظائف LAMBDA لإنشاء وظائف مخصصة مسماة في صيغة واستدعاء الوظائف بشكل متكرر [ 2 ] .
في البرمجة
هياكل التحكم
في لغات البرمجة الهيكلية ، يرتبط التداخل بتضمين هياكل التحكم داخل بعضها البعض، ويُشار إليه عادةً من خلال مستويات المسافة البادئة المختلفة داخل الكود المصدري ، كما هو موضح في دالة BASIC البسيطة هذه :
دالة LookupCode ( sCode كسلسلة نصية ) كعدد صحيح ، و iReturnValue كعدد صحيح ، و sLine و sPath كسلسلة نصيةsPath = "C:\Test.dsv" إذا كان الملف موجودًا ( FileExists ( sPath )) ، فافتح sPath للإدخال كـ # 1، وكرر ما يلي: طالما لم تصل إلى نهاية الملف ( EOF ( 1 )) ، أدخل السطر # 1 ، sLine ، وإذا كان sCode = left ( sLine , 3 ) ، فاعرض الإجراء (الإجراءات) المطلوب تنفيذه. أغلق الحلقة # 1. LookupCode = iReturnValue . نهاية الدالة .في هذا المثال الصغير والبسيط، يتم تضمين الكتلة الشرطية "if... then... end if" داخل الكتلة "do while... loop".
لا تفرض بعض لغات البرمجة، مثل باسكال وآدا ، أي قيود على تعريف المتغيرات بناءً على مستوى التداخل، مما يسمح بإنشاء برامج فرعية متداخلة بدقة، أو حتى حزم متداخلة (في لغة آدا). إليك مثال على كليهما (مبسط من حالة حقيقية):
-- التخلص من مشكلة المتغيرات العامة (لا يمكن استخدامها بالتوازي) -- من مجموعة من المصادر القديمة، دون الحاجة إلى تغيير منطق أو بنية هذا الكود. -- الإجراء Nesting_example_1 هونوع Buffer_type هو مصفوفة ( نطاق عدد صحيح <>) من الأعداد الصحيحة ؛الإجراء Decompress ( compressed : in Buffer_type ; decompressed : out Buffer_type ) هو -- إليك المصادر القديمة، مترجمة: الحزمة X_Globals هي index_in , index_out : Integer ; *** ^ هذه المتغيرات محلية لـ Decompress. *** الآن Decompress آمن للاستخدام في المهام. نهاية X_Globals ; الطرق 1، 2، 3، ... (المواصفات) الحزمة X_Method_1 هي الإجراء Decompress_1 ; نهاية X_Method_1 ; الطرق 1، 2، 3، ... (الرمز) جسم الحزمة X_Method_1 هو استخدام X_Globals ; الإجراء Decompress_1 هو ابدأ index_in : = compressed ' First ; هنا، رمز فك الضغط، الطريقة 1 نهاية Decompress_1 ; نهاية X_Method_1 ; نهاية المصادر القديمة ابدأ X_Method_1.Decompress_1 ; نهاية Decompress ;test_in , test_out : Buffer_type ( 1. . 10_000 );ابدأ فك الضغط ( test_in , test_out )؛ انتهى Nesting_example_1 ؛هياكل البيانات
تُعدّ هياكل البيانات المتداخلة شائعة أيضاً في البرمجة.
التلعثم
في لغات البرمجة الوظيفية ، مثل لغة ليسب ، توجد بنية بيانات قائمة ، كما توجد بنية بيانات ذرية أبسط . [ 3 ]
- تحتوي القوائم البسيطة على الذرات فقط. [ 3 ]
( ذرات )الذرات الموجودة في القائمة هي A و T و O و M و S.
- تحتوي القوائم المتداخلة على كل من الذرات والقوائم الأخرى. [ 3 ]
( ( ( NESTED ) LISTS ) ( C A N ) ( B E ) UNNECESS SARILY ( C O M P L E X ) )انظر أيضاً
مراجع
- ↑ https://study.com/academy/lesson/nesting-loops-stan برمجة C
- ↑ https://support.microsoft.com/en-us/office/lambda-function-bd212d27-1cd1-4321-a34a-ccbf254b8b67
- 1 2 3 سيبستا، روبرت و. (2012). مفاهيم لغات البرمجة (مطبوع) ( الطبعة العاشرة). بوسطن، ماساتشوستس، الولايات المتحدة الأمريكية: أديسون-ويسلي. ص 49. ISBN 978-0-13-139531-2.
- بيانات الحاسوب
- برمجة الحاسوب
