اليوم: الاحد 28 ابريل 2024 , الساعة: 2:44 ص
لم يعلق احد حتى الآن .. كن اول من يعلق بالضغط هنا
اخر المشاهدات
- [ تعرٌف على ] قنب كندا # اخر تحديث اليوم 2024-04-28
- [ وسطاء عقاريين السعودية ] عادل مليحان بن هلال العتيبي ... الدمام ... المنطقة الشرقية # اخر تحديث اليوم 2024-02-11
- [ تعرٌف على ] الهولوكوست في دولة كرواتيا المستقلة # اخر تحديث اليوم 2024-04-28
- [ دليل دبي الامارات ] مقهى الزيتون ... دبي # اخر تحديث اليوم 2024-04-28
- [ مؤسسات البحرين ] زيت وزعتر للمواد الغذائية - شركة تضامن بحرينية لأصحابها سامر زكريا صادق قفيشه و شريكه ... المحرق # اخر تحديث اليوم 2024-04-28
- [ شركات البنوك قطر ] شركة الجزيرة للصرافة aljazeera exchange qatar ... الدوحة # اخر تحديث اليوم 2024-04-28
- [ تعرٌف على ] هولدا كلارك # اخر تحديث اليوم 2024-04-28
- [ تعرٌف على ] بطولة آسيا لكرة الطائرة للسيدات 1989 # اخر تحديث اليوم 2024-04-28
- [ مطاعم الامارات ] ميركاتو مركز دبي المالي العالمي ... دبي # اخر تحديث اليوم 2024-04-28
- [ شركات المدارس الخاصة والمستقلة قطر ] حضانة بيرلز دى افنيور Perles d\'Avenir Nursery ... الدوحة # اخر تحديث اليوم 2024-04-28
- [ تعرٌف على ] العلاقات البوروندية السلوفينية # اخر تحديث اليوم 2024-04-28
- [ شركات المدارس الخاصة والمستقلة قطر ] مدرسة كومباس الدولية الدوحة Compass International School Doha ... الدوحة # اخر تحديث اليوم 2024-04-28
- [ تعرٌف على ] وسائل إعلام مستقلة # اخر تحديث اليوم 2024-04-28
- [ متاجر السعودية ] جيم زون ... جدة ... منطقة مكة المكرمة # اخر تحديث اليوم 2024-04-28
- [ تعرٌف على ] أمان وسائل منع الحمل # اخر تحديث اليوم 2024-04-28
- [ دول أجنبية ] ما هي دول بريطانيا # اخر تحديث اليوم 2024-04-28
- [ تعرٌف على ] مفتاح أجنبي # اخر تحديث اليوم 2024-04-28
- [ تسوق وملابس الامارات ] محل صحراء الخليج للملابس الجاهزة ... أبوظبي # اخر تحديث اليوم 2024-04-28
- [ مطاعم السعودية ] مطعم فروج الدوادمى # اخر تحديث اليوم 2024-04-28
- [ تعرٌف على ] مقاطعات وأقاليم كندا # اخر تحديث اليوم 2024-04-28
- [ مؤسسات البحرين ] شركة الأسواق المتحدة للخدمات المالية ش م ب مقفلة ... منامة # اخر تحديث اليوم 2024-04-28
- [ شركات التجارة العامه قطر ] شركة جست كوول للتجارة والمقاولات JUST COOL TRADING & CONTRACTING CO WLL ... الدوحة # اخر تحديث اليوم 2024-04-28
- [ تعرٌف على ] حقوق الإنسان في كندا # اخر تحديث اليوم 2024-04-28
- [ تعرٌف على ] العلاقات الأوغندية السلوفينية # اخر تحديث اليوم 2024-04-28
- [ خذها قاعدة ] لا يوجد شيء للكتابة ؛ كل ما تفعله هو الجلوس على آلة كاتبة ، وانزف. - إرنست همينغوي # اخر تحديث اليوم 2024-04-28
- [ مؤسسات البحرين ] الفردوس للأبواب ذ.م.م ... منامة # اخر تحديث اليوم 2024-04-28
- [ تعرٌف على ] مقاطعة غرب البوسنة المستقلة # اخر تحديث اليوم 2024-04-28
- [ وسطاء عقاريين السعودية ] عيد عايض بن بخيت العتيبي ... الدوادمى ... منطقة الرياض # اخر تحديث اليوم 2024-04-28
- [ متاجر السعودية ] شركة صمم لتقنية نظم المعلومات ... الرياض ... منطقة الرياض # اخر تحديث اليوم 2024-02-14
- [ وسطاء عقاريين السعودية ] طلال فرحان مفرح العتيبي ... الدوادمى ... منطقة الرياض # اخر تحديث اليوم 2024-04-28
- [ تعرٌف على ] الحملة السنوسية # اخر تحديث اليوم 2024-04-28
- [ تعرٌف على ] دوري السوبر السلوفاكي 2013–14 # اخر تحديث اليوم 2024-04-28
- [ تعرٌف على ] كلارك (ميزوري) # اخر تحديث اليوم 2024-04-28
- [ مؤسسات البحرين ] مؤسسة أم طلال للأبواب الجرارة ... المنطقة الجنوبية # اخر تحديث اليوم 2024-04-28
- [ وزارات وهيئات حكومية السعودية ] مكتب الوكالات (السعودية) والأجنبية # اخر تحديث اليوم 2024-04-28
- [ مبيعات وخدمات تأجير السعودية ] مؤسسة الحجى # اخر تحديث اليوم 2024-03-23
- [رقم هاتف] الطبيب فرفورة ليلى زهدي حسن.. بالاردن # اخر تحديث اليوم 2024-02-24
- [ تعرٌف على ] الهيئة العليا المستقلة لمراقبة الانتخابات (الجزائر) # اخر تحديث اليوم 2024-04-28
- [ متاجر السعودية ] زوناف عبايات ... الرياض ... منطقة الرياض # اخر تحديث اليوم 2024-04-28
- [ مؤسسات البحرين ] تيرمينال ترانزيت برجر ذ.م.م ... منامة # اخر تحديث اليوم 2024-04-28
- [ بنوك وصرافة الامارات ] سوق أبوظبي للأوراق المالية ... العين # اخر تحديث اليوم 2024-04-28
- [ تعرٌف على ] جائزة الملك عبد العزيز للكتاب # اخر تحديث اليوم 2024-04-28
- [ متاجر السعودية ] تيك زون ستور ... رفحا ... منطقة الحدود الشمالية # اخر تحديث اليوم 2024-04-28
- [ وسطاء عقاريين السعودية ] نايف عبدالعزيز مرزوق العتيبي ... الدوادمى ... منطقة الرياض # اخر تحديث اليوم 2024-04-28
- ليا مباردي عن حياتها # اخر تحديث اليوم 2024-03-22
- ارقام وهواتف مستشفى النور المحمدى الخيرى التخصصى المطرية, بالقاهرة # اخر تحديث اليوم 2024-02-10
- هل يؤثر دخول الأصبع في فتحة البول على غشاء البكارة؟ # اخر تحديث اليوم 2024-02-17
- شركة التربة والأساسات المحدودة (سفكو) # اخر تحديث اليوم 2024-04-11
- ارقام وهواتف عيادة د. فاروق محمد طلعت - ش بورسعيد سبورتنج بالاسكندرية # اخر تحديث اليوم 2024-03-16
- [ حكمــــــة ] أربع خصال من السعادة، وأربع من الشقاوة، فأما التي من السعادة: فالمركب الهني. أو قال: الوطي، والزوجة الصالحة، والمسكن الواسع، والجار الصالح. وأما التي من الشقاوة: فالمركب الصعب، والزوجة السوء، والمسكن الضيق، والجار السوء. # اخر تحديث اليوم 2
- [ تعرٌف على ] وزارة الصحة والسكان (مصر) # اخر تحديث اليوم 2024-04-28
- [ وسطاء عقاريين السعودية ] حمود عامر شمروخ العضياني ... الدوادمى ... منطقة الرياض # اخر تحديث اليوم 2024-04-28
- [ متاجر السعودية ] منصة بيوتي زون ... ابها ... منطقة عسير # اخر تحديث اليوم 2024-04-28
- [ شركات صيانة الكهرباء قطر ] رينوفيشن قطر Renovation - Qatar ... الدوحة # اخر تحديث اليوم 2024-04-28
- [ مدن أجنبية ] مدن صينية # اخر تحديث اليوم 2024-04-28
- [ دليل أبوظبي الامارات ] بناية الامارات المالية ... أبوظبي # اخر تحديث اليوم 2024-04-28
- [ وسطاء عقاريين السعودية ] عبدالله محمد عبدالله أل هلال ... الرياض ... منطقة الرياض # اخر تحديث اليوم 2024-02-10
- [ حكمــــــة ] قال الأوزاعي \"من أخذ بنوادر العلماء خرج من الإسلام\" وقال ابن إسحاق: \"ما من عالم إلا له زَلَّة، ومن جمع زَلَل العلماء وأخذ بها، ذهب دينه\" [سنن البيهقي]. # اخر تحديث اليوم 2024-04-28
- [ أطباق خليجية ] العصيدة اليمنية # اخر تحديث اليوم 2024-04-28
- [ دليل العين الامارات ] عبر الصحراء لبيع الاقمشة ... العين # اخر تحديث اليوم 2024-04-28
- [ مؤسسات البحرين ] ترندز للأوراق المالية ذ.م.م ... منامة # اخر تحديث اليوم 2024-04-28
- [ تعرٌف على ] إسكان المحروسة # اخر تحديث اليوم 2024-04-28
- [ أطباق صحية ] فوائد الأكل الصحي: تعرف على 6 عناصر أساسية منه.. مع 4 مجموعات للهرم الغذائي # اخر تحديث اليوم 2024-04-28
- [ شركات المطاعم العربية والاجنبية قطر ] مطعم دايموند شيف Diamond Chef Qatar ... الدوحة # اخر تحديث اليوم 2024-04-28
- [ جمال ورشاقة الامارات ] مركز عروس الصحراء سبا للسيدات ... أبوظبي # اخر تحديث اليوم 2024-04-28
- [ شركات التجارة العامه قطر ] تالنت التجارية Talent Trading & Transportation ... الدوحة # اخر تحديث اليوم 2024-04-28
- [ وسطاء عقاريين السعودية ] ضيف الله صالح بن ضيف الله العتيبي ... الدوادمى ... منطقة الرياض # اخر تحديث اليوم 2024-04-28
- الصفرات ..سكان الصفرات ..عوائل أهل الصفرات ..قرى المحمل ...معلومات تفصيلية 2021 # اخر تحديث اليوم 2024-03-11
- [ متاجر السعودية ] مادموزيل بهيرة ... الرياض ... منطقة الرياض # اخر تحديث اليوم 2024-04-28
- [ وسطاء عقاريين السعودية ] عبدالمحسن فلاح مقحم العتيبي ... الدوادمى ... منطقة الرياض # اخر تحديث اليوم 2024-04-28
- [ مواد البناء و التجارة قطر ] شركة فيريزون تريدينغ اند كونتراكتينغ # اخر تحديث اليوم 2024-04-28
- [ دليل دبي الامارات ] طائر الصحراء للنقل البري العام ذ.م.م ... دبي # اخر تحديث اليوم 2024-04-28
- [ شركات البنوك قطر ] البنك الأهلي القطري AhliBank of Qatar ... الدوحة # اخر تحديث اليوم 2024-04-28
- [ المركبات الامارات ] كندا الشحن ذ.م.م ... الشارقة # اخر تحديث اليوم 2024-04-28
- [ شركات الديكور و التصميم داخلي قطر ] قطر الخير للمقاولات و الديكور Qatar AlKHeer Contrating & Decor ... الدوحة # اخر تحديث اليوم 2024-04-28
- [ دليل أبوظبي الامارات ] مكتب سرور للكتابة ... أبوظبي # اخر تحديث اليوم 2024-04-28
- [ دليل أبوظبي الامارات ] المسار السريع للكتابة على الآلة الكاتبة ... أبوظبي # اخر تحديث اليوم 2024-04-28
- [ جمال ورشاقة الامارات ] صالون جبل الزيتون للحلاقة ... الشارقة # اخر تحديث اليوم 2024-04-28
- [ شركات المدارس الخاصة والمستقلة قطر ] حضانة سي اي اس كيه CESK Pre-School ... الدوحة # اخر تحديث اليوم 2024-04-28
- [ متاجر السعودية ] مؤسسة إبرا للاتصالات وتقنية المعلومات ... بريدة ... منطقة القصيم # اخر تحديث اليوم 2024-02-14
- [ تعرٌف على ] كوبيه رباعية الأبواب # اخر تحديث اليوم 2024-04-28
- [ تعرٌف على ] بطولة أوروبا لكرة اليد للرجال 2008 # اخر تحديث اليوم 2024-04-28
- [ وسطاء عقاريين السعودية ] محمد عبيدالله براز العتيبي ... الدوادمى ... منطقة الرياض # اخر تحديث اليوم 2024-04-28
- [ شركات المقاولات قطر ] ترو فاليو قطر للمقاولات TRUE VALUE QATAR ... الدوحة # اخر تحديث اليوم 2024-04-28
- [ شركات المدارس الخاصة والمستقلة قطر ] مدرسة نيوتن الدولية Newton International School ... الدوحة # اخر تحديث اليوم 2024-04-28
- [ دليل أبوظبي الامارات ] لؤلؤة الصحراء للمفروشات ... أبوظبي # اخر تحديث اليوم 2024-04-28
- [ مطاعم السعودية ] مطعم ذا جريل فورسيزون # اخر تحديث اليوم 2024-04-28
- [ مطاعم السعودية ] مطبخ صلاح البسام # اخر تحديث اليوم 2024-02-15
- [ تعرٌف على ] المنصورة (عدن) # اخر تحديث اليوم 2024-04-28
- [ أطباق خليجية ] طرق عمل المنتو # اخر تحديث اليوم 2024-04-28
- [ مؤسسات البحرين ] الشركة الوطنية المالية للصرافة ذ.م.م ... منامة # اخر تحديث اليوم 2024-04-28
- [ تعرٌف على ] مستقل (سياسة) # اخر تحديث اليوم 2024-04-28
- [ دليل أبوظبي الامارات ] ابو غنيم للكتابة على الالة الكاتبة ... أبوظبي # اخر تحديث اليوم 2024-04-28
- [ دليل أبوظبي الامارات ] الاتحاد للاستشارات المالية ذ م م ... أبوظبي # اخر تحديث اليوم 2024-04-28
- [ شركات المدارس الخاصة والمستقلة قطر ] حضانة دافوديلز daffodils nursery doha ... الدوحة # اخر تحديث اليوم 2024-04-28
- [ مراكز التدريب والتطوير قطر ] انرتك للتدريب Enertech Qatar ... الدوحة # اخر تحديث اليوم 2024-04-28
- [ وسطاء عقاريين السعودية ] عبير فرج جراد العنزي ... تبوك ... منطقة تبوك # اخر تحديث اليوم 2024-03-15
- [ تعرٌف على ] كيميرن # اخر تحديث اليوم 2024-04-28
- هل هناك ضرر من استعمالي دواء (باريت) للحموضة، لمدة طويلة؟ # اخر تحديث اليوم 2024-03-16
- روبالجين كريم مسكن للآلام ومضاد للروماتيزم Rubalgine Cream # اخر تحديث اليوم 2024-04-28
الأكثر قراءة
- مريم الصايغ في سطور
- سؤال و جواب | ما هى أسباب نزول الدم الاحمر بعد البراز؟ وهل هناك أسباب مرضية؟ وما الحل ؟
- سؤال وجواب | هل يجوز للرجل حلق شعر المؤخرة؟ وهل هناك طريقة محددة لذلك ؟
- سؤال و جواب | حلق شعر المؤخرة بالكامل و الأرداف ماحكمه شرعاً
- هل للحبة السوداء"حبة البركة "فوائد ؟
- كيف أتخلص من الغازات الكريهة التى تخرج مني باستمرار؟
- هناك ألم عندى فى الجانب الأيسر للظهر فهل من الممكن أن يكون بسبب الكلى ؟
- هل هناك علاج للصداع الئى أانيه فى الجانب الأيسر من الدماغ مع العين اليسرى ؟
- تعرٌف على ... مريم فايق الصايغ | مشاهير
- تفسير حلم رؤية القضيب أو العضو الذكري في المنام لابن سيرين
- مبادرة لدعم ترشيح رجل السلام صاحب السمو الشيخ محمد بن زايد لجائزة «نوبل للسلام»
- [ رقم تلفون ] مستر مندوب ... مع اللوكيشن المملكه العربية السعودية
- أرقام طوارئ الكهرباء بالمملكة العربية السعودية
- الفضاء اللوني (ص ش ض) و (ص ش ق) الاستخدام
- ارقام وهواتف مستشفى الدمرداش عباسية,بالقاهرة
- طرق الاجهاض المنزلية و ماهى افضل ادوية للاجهاض السريع واسقاط الجنين فى الشهر الاول
- تفسير رؤية لبس البدلة في المنام لابن سيرين
- تفسير حلم رؤية النكاح والجماع في المنام لابن سيرين
- [رقم هاتف] مؤسسة قرض الحسن .. لبنان
- نزع شوك السمك في المنام
- عبارات ترحيب قصيرة 40 من أجمل عبارات ترحيب للأحباب والأصدقاء 2021
- رؤية طفل بعيون خضراء في المنام
- ارقام وهواتف عيادة د. فاروق قورة - 3 أ ش يوسف الجندى باب اللوق بالقاهرة
- الحصول على رخصة بسطة في سوق الجمعة بدولة الكويت
- معلومات هامة عن سلالة دجاج الجميزة
- ارقام وهواتف مستشفى الهلال الاحمر 34 ش رمسيس وسط البلد بالقاهرة
- جريمة قتل آمنة الخالدي تفاصيل الجريمة
- رسائل حب ساخنة للمتزوجين +18
- خليفة بخيت الفلاسي حياته
- تعرٌف على ... عائشة العتيبي | مشاهير
- هل توجيه الشطاف للمنطقة الحساسة يعد عادة سرية؟ وهل يؤثر على البكارة؟
- رقم هاتف مكتب النائب العام وكيفية تقديم بلاغ للنائب العام
- [ رقم تلفون و لوكيشن ] شركة متجر كل شششي - المملكه العربية السعودية
- تفسير رؤية شخص اسمه محمد في المنام لابن سيرين
- ارقام وهواتف مطعم الشبراوى 33 ش احمد عرابى المهندسين, بالجيزة
- أسعار الولادة في مستشفيات الإسكندرية
- ارقام وهواتف عيادة د. هشام عبد الغنى - 10 ش مراد الجيزة بالجيزة
- ارقام وهواتف عيادة د. ياسر المليجى - 139 ش التحرير الدقى بالجيزة
- ارقام وهواتف مستشفى النور المحمدى الخيرى التخصصى المطرية, بالقاهرة
- تفسير رؤية الحشرات في المنام لابن سيرين
- [رقم هاتف] مؤسسة مركز اصلاح وتأهيل بيرين .. بالاردن الهاشمية
- قسم رقم 8 (فلم) قصة الفلم
- تفسير حلم رؤية الميت يشكو من ضرسه في المنام
- هل أستطيع الاستحمام بعد فض غشاء البكارة ليلة الدخلة مباشرة؟
- أعشاب تفتح الرحم للإجهاض
- يخرج المني بلون بني قريب من لون الدم، فما نصيحتكم؟!
- قناة تمازيغت برامج القناة
- ارقام وهواتف مكتب صحة - السادس من اكتوبر ميدان الحصرى السادس من اكتوبر, بالجيزة
- سور القران لكل شهر من شهور الحمل
- تفسير رؤية براز الكلاب في المنام لابن سيرين
- زخرفة اسماء تصلح للفيس بوك
- مدرسة ب/ 141 حكومي للبنات بجدة
- إلغ (برمجية) التاريخ
- [ رقم هاتف ] جمعية قرض الحسن، .... لبنان
- أشيقر سكان وقبائل بلدة أشيقر
- تفسير حلم رؤية قلب الخروف في المنام
- تفسير حلم الكلب لابن سيرين
- [ رقم هاتف ] عيادة د. حازم ابو النصر - 20 ش عبد العزيز جاويش عابدين بالقاهرة
- انا بنت عندي 13 سنة لسة مجتليش الدورة الشهرية ......كنت ببات عند خالتي وكل ما
- هل تمرير الإصبع بشكل أفقي على فتحة المهبل يؤدي إلى فض غشاء البكارة؟
- [رقم هاتف] شركة الحراسة و التوظيف و التنظيف.. المغرب
- قبيلة الهزازي أقسام قبيلة الهزازي
- ذا إكس فاكتور آرابيا فكرة البرنامج
- السلام عليكم ، أنا مشكلتي بصراحة الجنس من الخلف مع زوجي الأن صار ويحب حيل
- فتحة المهبل لدي واسعة وليست كما تبدو في الصور.. فهل هو أمر طبيعي؟
- لالة لعروسة (برنامج) الفائزون
- أنا حامل في الشهر الرابع وينزل مني دم .. هل هذا طبيعي؟
- [ رقم هاتف ] عيادة د. عادل الريس .. وعنوانها
- هل إدخال إصبع الزوج في مهبل الزوجة له أضرار؟
- تفسير حلم اصلاح الطريق في المنام
- هل الشهوة الجنسية الكثيرة تؤثر على غشاء البكارة؟ أفيدوني
- تفسير حلم تنظيف البيت في المنام للعزباء والمتزوجة والحامل والمطلقة
- إيمان ظاظا حياتها ومشوارها المهني
- أهمية وضرورة إزالة الخيط الأسود من ظهر الجمبري
- اسماء فيس بنات مزخرفة | القاب بنات مزخرفه
- لهجة شمالية (سعودية) بعض كلمات ومفردات اللهجة
- تفسير رؤية المشاهير في المنام لابن سيرين
- هل شد الشفرات والمباعدة الشديدة للساقين يمكن أن تفض غشاء البكارة؟
- [بحث جاهز للطباعة] بحث عن حرب 6 اكتوبر 1973 بالصور pdf doc -
- فوائد عشبة الفلية و الكمية المناسبة يوميا
- تفسير رؤية المخدة في المنام لابن سيرين
- [رقم هاتف] شركة الرفق بالحيوان و الطبيعة.. المغرب
- كلمات - انت روحي - حمود السمه
- أعاني من لحمة زائدة في الدبر ، فلدي قطعة لحمية صغيرة في فتحة الشرج من الخارج
- ما الفرق بين الغشاء السليم وغير السليم؟
- تفسير حلم رؤية الإصابة بالرصاص في الكتف بالمنام
- [ رقم هاتف ] مركز المصطفى للاشعة
- أدخلت إصبعي في المهبل وأخرجته وعليه دم، هل فقدت بكارتي؟
- عمر فروخ
- هل الضغط بالفخذين على الفرج يؤذي غشاء البكارة?
- إدمان الزوج للمواقع الإباحية: المشكلة والأسباب والعلاج
- بسبب حكة قويط للمنطقة الحساسة ونزول الدم، أعيش وسواس فض الغشاء.
- ما تفسير رؤية كلمة كهيعص في المنام
- تظهر عندي حبوب في البظر والشفرتين بين حين وآخر.. هل لها مضاعفات، وما علاجها؟
- طريقة إرجاع حساب الفيس بوك المعطل
- الكرة الحديدية قواعد اللعبة
- تفسير رؤية مدرس الرياضيات في المنام لابن سيرين
- [بحث جاهز للطباعة] بحث عن اللغة العربية والكفايات اللغويه -
- تفسير حلم رؤية الكنز فى المنام لابن سيرين
- كيف أصل إلى النشوة مع زوجي أثناء الإيلاج وليس بيده بعد الجماع؟
روابط تهمك
مرحبا بكم في شبكة بحوث وتقارير ومعلومات
عزيزي زائر شبكة بحوث وتقارير ومعلومات.. تم إعداد وإختيار هذا الموضوع [ تعرٌف على ] أسلوب إزاحة # اخر تحديث اليوم 2024-04-28 فإن كان لديك ملاحظة او توجيه يمكنك مراسلتنا من خلال الخيارات الموجودة بالموضوع.. وكذلك يمكنك زيارة القسم , وهنا نبذه عنها وتصفح المواضيع المتنوعه... آخر تحديث للمعلومات بتاريخ اليوم 10/11/2023
[ تعرٌف على ] أسلوب إزاحة # اخر تحديث اليوم 2024-04-28
آخر تحديث منذ 5 شهر و 19 يوم
1 مشاهدة
تم النشر اليوم 2024-04-28 | أسلوب إزاحة
مثل أساليب أولمان ووايت سميث، فإن أسلوب جنو يستعين أيضا بالأقواس في أسطر مستقلة، ويتم وضع مسافة بادئة مساحتها حركتين إلا عند فتح تعريف لوظيفة حيث لا يتم وضع مسافة بادئة عندها. في كل الحالات يتم وضع مسافة بادئة عند الشيفرة المحتواة بمسافة حركتين من الأقواس.
هذا النموذج الذي قام بنشره ريتشارد ستولمن ربما يتأثر بخلفيته في كتابة شيفرة ليسب. في ليسب يكون مكافئ البلوك وحدة بيانات من الفئة الأولى مما يمنحها مستوى الإزاحة الخاص به ليساعد على تأكيد أنه في لغة السي يكون البلوك تركيبيا. وعلى الرغم من عدم ارتباط ذلك بصورة مباشرة بالإزاحة، فإن أسلوب إيماكس للتشفير يتضمن أيضا مسافة قبل القائمة ذات الأقواس من البراهين إلى الدالة الوظيفية.
static char *
concat (char *s1, char *s2)
{
while (x == y)
{
something ();
somethingelse ();
}
finalthing ();
}
هذا الأسلوب يجمع بين مميزات أولمان ووايت سميث ومن ثم يمحو عيوب وايت سميث الممكنة للأقواس التي لا تظهر من البلوك.
محرر النصوص وإيماسز زأمر الإزاحة لأنظمة جنو سيقوم بتنسيق الشيفرة تبعا لهذا الأسلوب افتراضيا. وهو يفوض من جانب معايير تشفير جنو ويستخدم بكافة برامج مشروع جنو، ولكنه نادرا ما يستخدم خارج نطاق جنو. من العيوب الأخرى هي أن قوس الإغلاق لم يعد متوازيا مع العبارة الذي ينتمي إليها مفاهيميا.
إن كل من لا يستخدم جنو إيماسز، أو المحررات القابلة للتخصيص والتوسع فيها بالمثل ربما يجدون أن ضبط الإزاحة تلقائيا بمحررهم أمر لا يساعد في هذا الأسلوب. ومع ذلك فإن العديد من المحررين الذين يتعاملون افتراضيا مع أسلوب كيه إن إف يتأقلمون جيدا مع أسلوب جنو حين يضبط عرض التاب إلى مسافتين، وبالمثل يتأقلم جنو إيماسز جيدا مع أسلوب كيه إن إف بضبط عرض التاب إلى ثماني مسافات. في كلا الحالتين، تقوم إعادة الصياغة الأوتوماتيكية بعمل المسافات الأصلية، ولكن خط الإزاحات التلقائي يعمل بشكل صحيح.
تتكيف نسخة كتاب «المفاهيم الحاسوبية بمبادئ لغة سي++» لكاي إس هورست مان مع أسلوب أولمان بوضع العبارة الأولى من البلوك على نفس خط قوس الافتتاح.
while (x == y)
{ something();
somethingelse();
//...
if (x < 0)
{ printf("Negative");
negative(x);
}
else
{ printf("Non-negative");
nonnegative(x);
}
}
finalthing();
هذا الأسلوب يجمع بين مميزات أسلوب أولمان في الحفاظ على المحاذاة العمودية للأقواس للحفاظ على قابلية القراءة وسهولة التعرف على البلوكات مع توفير خط من أسلوب كيه آند آر. ومع ذلك فإن نسخة 2003 تستعين حاليا بأسلوب أولمان كليا.
هو الأسلوب الذي يستخدم بصورة شائعة في لغة برمجة بيكو بواسطة مصمميها والذي يختلف عن الأساليب المذكورة مسبقا. نقص عبارات الرجوع وحقيقة أن الفاصلة المنقوطة تستخدم في البيكو كفواصل بين العبارات، بدلا من النهايات، يؤدي إلى تركيب الجملة التالية:
stuff(n):
{ x: 3 * n;
y: doStuff(x);
y + x }
مميزات وعيوب هذا الأسلوب تتشابه مع تلك الخاصة بحفظ حالة الشاشة مع أسلوب كيه آند ى ر. ميزة أخرى إضافية هي أن أقواس البدء والختام ثابتة في البرنامج (كلاهما يتشارك في المساحة مع سطر الشيفرة)، متناقضا مع أسلوب كيه آند آر حيث يشترك قوس واحد مع سطر الشيفرة وسطر آخر يمتلك سطرا بأكمله لنفسه.
تم تسمية أسلوب أولمان باسم إريك أولمان. وهو في الكثير من الأحوال يشار إليه باسم أسلوب المعهد القومي الأمريكي للتنميط " لأنها تستخدم في المستندات التي تصف معيار السي لإيه إن سي آي (الذي تم اتباعها لاحقا كمعيار عالمي للأيزو سي (لغة برمجة). كما تعرف أيضا باسم "أسلوب بي إس جي" منذ كتب أولمان العديد من الاستخدامات توزيعة برمجيات بيركلي (بالرغم من أنه لا يجب خلطه مع أسلوب "بي إس دي كيه إن إف" المختلف تماما، انظر بالأسفل). مؤيدو هذا الأسلوب غالبا ما يستشهدون باستخدامه بإيه إن سي آي وفي معايير أخرى كمبرر لاتباعه.
هذا الأسلوب يضع القوس المرتبط ببيان الضبط على السطر التالي، مع وضع مسافة بادئة على نفس المستوى من بيان التحكم. البيانات بين هذه الأقواس يتم وضعها على مسافة بادئة في المستوى التالي.
while (x == y)
{
something();
somethingelse();
}
finalthing();
هذا الأسلوب شبيه بالإزاحات القياسية المستخدمة بواسطة لغة باسكال وترانسآكت- إس كيو إل حيث تتعادل الأقواس مع مفاتيح البداية begin والنهاية end.
من مميزات هذا الأسلوب هي أن شيفرة الإزاحة تنفصل بوضوح عن البيان الذي يتضمنها بواسطة اسطر هي بالكامل عبارة عن فراغات مما يحسن القدرة على القراءة ويتوازى قوس الإغلاق في نفس العمود مع قوس الافتتاح مما يجعل من السهل العثور على أقواس متطابقة. بالإضافة إلى ذلك يحدد أسلوب صنع البلوكات البلوك الفعلي للشيفرة من بيان التحكم المرتبط به نفسه. بحيث يظهر تعليقا على بيان التحكم ويمحو بيان التحكم بالكامل أما إعادة تصنيع أو إزالة البلوك من الشيفرة لا يقدم الأخطاء التراكيبية بالصورة الواضحة بسبب الأقواس المفقودة أو المختلطة.
على سبيل المثال، المثال التالي لا يزال صحيحا من الناحية التركيبية:
//while (x == y)
{
something();
somethingelse();
}
وكذلك هو الحال بالنسبة للمثال التالي:
//for (int i=0; i < x; i++)
//while (x == y)
if (x == y)
{
something();
somethingelse();
}
هذا الأسلوب يمكن أن يؤدي إلى مشاكل عند استخدام لغات برمجة مثل جافا سكريبت والبايثون. تتمتع الجافا سكريبت بإمكانية إدخال فاصلة منقوطة اوتوماتيكيا في وقت التشغيل مما يمكن أن يؤدي إلى أن تسيطر حشرة حاسوبية شريرة (خطأ برمجي) على هذا الأسلوب.[بحاجة لمصدر]
من العيوب الأخرى لهذا الأسلوب هي أن كل قوس من أقواس الاحتواء يشغل سطرا كاملا بنفسه بدون إضافة أي شيفرة فعلية. وقد كان ذلك أمرا هاما ذات مرة حين كان يتم تحرير البرامج على وحدات فرعية تكشف عن 24 سطرا فقط، ولكنها تكون أقل وضوحا مع القرارات الأكبر للعروض الحديثة. ونظرا لأن محفز هذا الأسلوب هو أن يتم تعزيز إمكانية قراءة الشيفرة بفصل البلوكات عن بيانات تحكمها بصورة مرئية فإن الشاشة وملكيتها تعد اهتماما ثانويا.
يستخدم هذا الأسلوب افتراضيا في مايكروسوفت فيجوال ستوديو 2005 وما تبعها من إصدارات. ومنذ ذلك الحين اتبعت مايكروسوفت هذا الأسلوب في جميع مستنداتها (شبكة مطوري مايكروسوفت) ومنهجيات البرمجة الداخلية في لغاتها المعتمدة على السي وهي فيجوال سي++ وسي شارب.
سمي أسلوب كيه آند آر بهذا الاسم لأنه كان يستخدم في كتاب كيرنيجهان ودينيس ريتشي «لغة البرمجة سي»، وهو يستخدم أيضا في السي[بحاجة لمصدر]. وهو أقل شيوعا بالنسبة للغات السي++ وسي شارب ولغات أخرى. وهو يحتفظ بأول قوس مفتوح على نفس السطر الموجود به بيان التحكم ليضع مسافة بادئة قبل هذه البيانات الموجودة بين الأقواس ويضع قوس الإغلاق على نفس مستوى الإزاحة مثل بيان التحكم (في سطر خاص به). ومع ذلك يتم وضع الوظائف بين الأقواس بشكل مختلف عن البيانات، القوس الوظيفي المفتوح يوضع عند السطر الذي يلي التصريح، على نفس مستوى الإزاحة كالتصريح. وذلك نظراً لأنه في لغة السي الأصلية تحتاج أنماط النقاش لأن يتم التصريح عنها في السطر اللاحق، بينما حين لا يكون هناك أي نقاشات ضرورية، لن يظهر القوس المفتوح على نفس السطر مع التصريح الوظيفي. القوس المفتوح لتصريحات الوظائف يعد استثناءً للقاعدة الأساسية.
int main(int argc, char *argv[])
{
...
while (x == y) {
something();
somethingelse();
if (some_error)
do_correct();
else
continue_as_usual();
}
finalthing();
...
}
النسخة:1TBS
مؤيدو هذا الأسلوب يشيرون إليه أحيانا باسم «أسلوب القوس الحقيقي الواحد» (وتكتب اختصارا 1TBS أو OTBS) بسبب المجموعة السباقة للسي (بالرغم من أن مؤيدي الأساليب الأخرى كانوا يشتهرون باستخدام لغات قوية مثلها). الشيفرة المصدرية ليونكس ونواة نظم التشغيل تكتب بهذا الأسلوب.
في هذا الأسلوب تكون المقومات التي تسمح بإدخال سطور شيفرات جديدة في أسطر منفصلة، أما تلك التي تمنع الإدخال تكون في سطر واحد منفرد. هذا المبدأ يتعزز بوضع أقواس على كل كلمات الرئيسية التي تمثل ما يعرف بتدفق السيطرة مثل if, else, while وما شابه – حتى أدوات الشرط ذات السطر الواحد- بحيث يكون إدخال سطر جديد من الشيفرة في أي مكان «آمنا»
من مميزات هذا الأسلوب هي أن بداية كل قوس لا تتطلب سطرا إضافيا بنفسها، أما قوس النهاية فينتهي بالبيان الذي ينتمي إليه من الناحية المفاهيمية. أما من عيوب هذا الأسلوب هي أن قوس النهاية للبلوك يتخذ سطرا كاملا بنفسه والذي يمكن حله بصورة جزئية في بلوكات if/ else وبلوكات do/while:
//...
if (x < 0) {
printf("Negative");
negative(x);
} else {
printf("Non-negative");
nonnegative(x);
}
وبالرغم من أن هذا الأسلوب يمكن أن يجعل من الصعب مسح أي شيفرة مصدرية تلفازيا لقوس الافتتاح لأي بلوك، وليس من المعتاد دائما أن يكون قوس الافتتاح هو القوس الشيق ولكن بيان التحكم الذي عرف هذا البلوك هو كذلك. من السهل العثور على بداية البلوك بتحديد موقع أول سطر أعلى قوس الإغلاق الذي يتم تحديده بمسافة بادئة بنفس المستوى.
وبينما يتم كتابة برنامج جافا غالبا بأسلوب أولمان أو بأساليب أخرى، فإن هناك هيكل محدد من شيفرة جافا يستعين بنسخة ثانوية من أسلوب كيه آند آر حيث يكون قوس الافتتاح على نفس سطر الدرجة أو تصريح الطريقة، وذلك غالبا لأن إرشادات أسلوب صن ميكروسيستمز الأصلية استعانت بأسلوب كيه آند إيه ونتيجة لذلك فإن معظم شيفرات المصادر المعيارية لجافا إيه بي آي تكتب بهذا الأسلوب. كما أنه أسلوب شائع في الإزاحات لكل من أكشن سكربت وجافا سكريبت بالاشتراك مع أسلوب أولمان.
كما يجب أن نذكر أن لغة البرمجة سي لا تحدد بشكل واضح هذا الأسلوب بالرغم من أننا نتابعها بصورة مستمرة عبر الكتاب. ومن الجدير بالذكر من هذا الكتاب:
موقع القوس أقل أهمية، بالرغم من أن الأشخاص لديهم معتقدات عاطفية. لقد اخترنا واحدا من عدة أساليب شائعة متنوعة. اختر أسلوبا يناسبك ثم استخدمه باستمرار.
هذا الأسلوب يجعل من السهل استخلاص الحافة اليسارية من الشيفرة الخاصة بعبارات التحكم (حيث تكون أساليب مثل 1TBS عبارات مثل "else" يصعب رؤيتها لأنها تلي قوس نهاية في نفس السطر). ومع ذلك تجعل الشيفرة مضغوطة أكثر مما في أساليب أخرى مثل أولمان وذلك بوضع اقواس مفتوحة في نهاية الأسطر (فيما يتناقض مع أسطرها الخاصة).
// In JS
if (x == y) {
doSomethingA();
doSomethingB();
}
else {
doSomethingC();
doSomethingD();
}
يمكن أن يتمادى المبرمج حتى يقوم بإدخال أقواس الإغلاق في السطر الأخير من البلوك. هذا الأسلوب يجعل الإزاحة هي الطريقة الوحيدة لتمييز بلوكات الشيفرات ولكنه يتميز بأنه لا يحتوي على أي أسطر غير ذي مغزى. يمكن أن نسمي ذلك ببساطة أسلوب ليسب (لأن هذا الأسلوب شائع للغاية في شيفرة ليسب) أو أسلوب بايثون (لغة بايثون لا تحتوي على أقواس ولكن النموذج يبدو شبيها للغاية[بحاجة لمصدر]).
// In C
for (i = 0; i < 10; i++) {
if (i % 2 == 0) {
doSomething (i); }
else {
doSomethingElse (i); } }
# In Python
for i in range(10):
if i % 2 == 0:
doSomething(i)
else:
doSomethingElse(i)
;; In Lisp
(dotimes (i 10)
(if (evenp i)
(do-something i)
(do-something-else i)))
يعرف أسلوب وايت سميث أيضا بأسلوب ويشارت إلى درجة قليلة وهو اقل شيوعا اليوم من الثلاثة أساليب الأخرى. وقد كان يستخدم ذلك بصورة أساسية في توثيق المصنف سي التجاري الأول، مترجم وايت سميث. كما كان شائعا أيضا في الأيام الأولى للويندوز حيث كان يستخدم في ثلاث كتب برمجة ويندوز مؤثرة دليل المبرمج للويندوز لديورانت وبرمجة الويندوز لياو وكارلسون وبيتزولد وتقنيات برمجة تشغيل ويندوز 3 بيتر نورتن وياو. وتستمر الأساسيات السيمبية للدعوة على ذلك على أنها أسلوب وضع أقواس موصى به نظام تشغيل سيمبيان أو إس لتطبيقات الهاتف المحمول التي تعمل بسي++.
هذا الأسلوب يضع الأقواس المرتبطة ببيان التحكم على سطر النص مع مسافة بادئة. ويتم وضع الإزاحة للبيانات داخل القواس على نفس مستوى الأقواس.
while (x == y)
{
something();
somethingelse();
}
finalthing();
مميزات هذا الأسلوب شبيهة بتلك الخاصة بأسلوب أولمان في أن البلوكات تنفصل بوضوح عن بيانات التحكم. ومع ذلك ففي أسلوب وايتسميث، لا يزال البلوك مرتبطا بصورة مرئية ببيان التحكم بدلا من أن يبدو كبلوك شيفرة ليس له علاقة تحيط به مساحات بيضاء. ميزة أخرى هي أن محاذاة الأقواس مع البلوك يؤكد على حقيقة أن البلوك بالكامل هو بيان مركب فردي مفاهيميا (وبرمجيا). علاوة على ذلك، فإن وضع مسافات بادئة للأقواس يؤكد على أنها تابعة لبيان التحكم.
من عيوب هذا الأسلوب هي أن الأقواس لا تظهر جيدا. ومع ذلك يعد ذلك أمرا معتمد على الرأي كثيرا لأن الأقواس تشغل سطرا كاملا بنفسها حتى إذا كانت مسافتها البادئة في نفس مستوى البلوك.
عيب آخر يمكن أن يكون أنه إذا تم توظيف عناصر نحوية ملائمة مثل "else if"، فإن القوس النهائي لا يتوازى مرة أخرى مع العبارة التي ينتمي إليها من الناحية المفاهيمية، بالرغم من أن الآخرين يشيرون إلى أن قوس الإغلاق ينتمي لقوس الافتتاح وليس لعبارة التحكم.
كمثال:
if (data != NULL && res > 0)
{
if (!JS_DefineProperty(cx, o, "data", STRING_TO_JSVAL(JS_NewStringCopyN(cx, data, res)), NULL, NULL, JSPROP_ENUMERATE))
{
QUEUE_EXCEPTION("Internal error!");
goto err;
}
PQfreemem(data);
}
else if (!JS_DefineProperty(cx, o, "data", OBJECT_TO_JSVAL(NULL),
NULL, NULL, JSPROP_ENUMERATE))
{
QUEUE_EXCEPTION("Internal error!");
goto err;
}
ومع ذلك، إذا اتبع المرء قاعدة وضع الأسلوب التي تنص بأن يتم توفير الأقواس في كل مستوى من «النطاق»، فإن الشيفرة العليا يمكن كتابتها لاستبدال "else if" بكلمة if منفصلة في نطاق به جزئية "else" منفصلة تماما بالعبارة.
if (data != NULL && res > 0)
{
if (!JS_DefineProperty(cx, o, "data", STRING_TO_JSVAL(JS_NewStringCopyN(cx, data, res)), NULL, NULL, JSPROP_ENUMERATE))
{
QUEUE_EXCEPTION("Internal error!");
goto err;
}
PQfreemem(data);
}
else
{
if (!JS_DefineProperty(cx, o, "data", OBJECT_TO_JSVAL(NULL),
NULL, NULL, JSPROP_ENUMERATE))
{
QUEUE_EXCEPTION("Internal error!");
goto err;
}
}
عقب الإستراتيجية المذكورة فيما سبق، يمكن أن يجادل المرء بأن الشيفرة يمكن قراءتها بصورة أكبر، ومع ذلك تثار بعض المشكلات في القدرة على القراءة حيث يتم إضافة المزيد من الشروط، والتي تظهر في هذه الشيفرة الزائفة (على الرغم من أنه عادة في هذه الحالة يكفي فقط عبارة متحولة)
else
{
if (stuff is true)
{
Do stuff
}
else
{
if (other stuff is true)
{
Do other stuff
}
else
{
if (its still not true)
{
Do even more other stuff
}
}
}
}
ربما في وقت من الأوقات كان هناك حافز لوضعه بأكبر قدر ممكن في كل سطر من الشيفرة حتى يتم تخفيض عدد الصفحات التي يمكن طباعتها. ولم تعد تلك مشكلة مؤرقة وتزيد من قابلية القراءة بطريقة قواعد صياغة وايت سميث.
أسلوب بانر يجعل المسح المرئي التصويري أسهل للبعض، ونظرا لأن «العناوين» الخاصة بأي بلوكات هي الشيء الوحيد الممتد لهذا المستوى (لأن النظرية تقول أن ضبط الإغلاق للبلوك السابق يتدخل مع عنوان البلوك التالي في أساليب كيه آند آر وأولمان). في هذا الأسلوب، والذي يعتبر بالنسبة لأسلوب وايت سميث بالضبط كأسلوب كيه آند آر بالنسبة لأولمان، يتم وضع مسافة بادئة لضابط الإغلاق على أنه آخر عنصر بالقائمة (ومن ثم يفقد ثباته).
function1 () {
dostuff
do more stuff
}
function2 () {
etc
}
أو، بهيئة لغة ترميز:
يعرف أيضا باسم أسلوب كيرنل نورمال فورم، وهو يعد حاليا الشكل الخاص بمعظم الشيفرات المستخدمة في نظام تشغيل توزيعة برمجيات بيركلي سوفت وير ديستريبيوشن. وعلى الرغم من أنه مخصص بشكل أساسي بشيفرة كيرنل، فهو يستخدم بصورة واسعة الانتشار أيضا في شيفرة يوزرلاند. وهو في الأساس إصدار موثق بشكل شامل لأسلوب كيه آند آر كما تستخدم في الشيفرة المصدرية ليونكس بل لابس الإصدار السادس والسابع.
يتم الاحتفاظ بالمجدولة الصلبة (ts in vi) في ثماني أعمدة بينما المجدولة الناعمة غالبا ما يتم تحديدها كأداة مساعدة مثل (sw in vi) وتوضع في الرابع.
تستخدم المجدولات الصلبة لوضع مسفة بادئة لبلوكات الشيفرات بينما تستخدم المجدولة الناعمة للمسافة البادئة الإضافية لكافة الأسطر الاستمرارية التي يجب أن يتم تقسيمها على عدة اسطر.
علاوة على ذلك، لا تستخدم الاستدعاءات الوظيفية المساحة الفارغة قبل القوسين، بالرغم من أن لغة سي المتأصلة في البيانات مثل if, while, do, switch, return تستعين بها (في حالة ما استخدمت return بين الأقواس). الوظائف التي تدل على عدم وجود متغيرات محلية في البلوك عالي المستوى يجب أن يترك أيضا سطرا فارغا بعد أقواس البلوك الافتتاحية.
فيما يلي عينات قليلة:
while (x == y) {
something();
somethingelse();
}
finalthing();
if (data != NULL && res > 0) {
if (JS_DefineProperty(cx, o, "data",
STRING_TO_JSVAL(JS_NewStringCopyN(cx, data, res)),
NULL, NULL, JSPROP_ENUMERATE) != 0) {
QUEUE_EXCEPTION("Internal error!");
goto err;
}
PQfreemem(data);
} else {
if (JS_DefineProperty(cx, o, "data", OBJECT_TO_JSVAL(NULL),
NULL, NULL, JSPROP_ENUMERATE) != 0) {
QUEUE_EXCEPTION("Internal error!");
goto err;
}
}
static JSBool
pgresult_constructor(JSContext *cx, JSObject *obj, uintN argc,
jsval *argv, jsval *rval)
{
QUEUE_EXCEPTION("PGresult class not user-instanciable");
return (JS_FALSE);
}
فقدان مسار البلوكات
في بعض المواقف، هناك خطورة من فقدان مسار حدود البلوكات. وغالبا ما نرى ذلك في أقسام كبيرة من الشيفرة التي تحتوي على العديد من البيانات المركبة التي تتدخل في العديد من المستويات الخاصة بالإزاحات – وفي الوقت الذي يصل فيه المبرمج لأسفل مجموعة كبيرة من العبارات المتداخلة، يمكن أن يفقد تتبع المسار الذي تصل عليه عبارات الضبط.
أما المبرمجين الذين يعتمدون على عدد الأقواس المفتوحة يجدون صعوبة في أساليب المسافات البائدة مثل كيه آند آر، حيث لا يكون قوس البداية منفصلا عن عبارة ضبطه. أما المبرمجين الذين يعتمدون على الإزاحات سيكسبون الكثير من تلك الأساليب المضغوطة عموديا مثل كيه آند آر لأن البلوكات أقصر.
ولتجنب فقدان مسار عبارات الضبط مثل for، يمكن لشخص استخدام مسافات بادئة كبيرة مثل تاب صلب عريض من ثماني وحدات جنبا على جنب مع تقسيم الوظائف الكبرى إلى وظائف اصغر وأكثر قابلية للقراءة. نظام لينوكس يعمل بهذه الطريقة وأيضا استخدام أسلوب كيه آند آر.
طريقة أخرى تكون باستخدام تعليقات الإنلاين المضافة بعد قوس الإغلاق
for (int i = 0; i < total; i++) {
foo(bar);
} //for (i)
if (x < 0) {
bar(foo);
} //if (x < 0)
ومع ذلك فإن الحفاظ على شيفرة مزدوجة في عدة أماكن هي العيب الأساسي لهذه الطريقة.
من الحلول الأخرى التي يتم تطبيقها في محرر الطي، والتي تتيح للمطور إخفاء أو إظهار بلوكات الشيفرات عبر مستوى مسافاتها البادئة أو هيكل عباراتها المركبة. كما يركز الكثير من المحررين أيضا على الأقواس المتطابقة حين تكون علامة الإقحام بجانب واحد منها.
ويمنع أسلوب كيه آند آر خطأ شائع آخر نواجهه عند استخدام محرر أسطر يونكس المعياري ed. يتم وضع العبارة بصورة خاطئة بين عبارات الضبط وقوس الافتتاح للبلوك الحلقي بحيث يتحول هيكل الحلقة إلى رحلة فردية.
for (int i = 0; i < total; i++)
whoops(bar); /* repeated total times, with i from 0 to (total-1) */
{
only_once(); /* Programmer intended this to be done total times */
} //for (i) <-- This comment is no longer valid, and is very misleading!
يتجنب أسلوب كيه آند آر هذه المشكلة بالحفاظ على عبارة الضبط وقوس الافتتاح في نفس السطر.
أسلوب الإزاحة في البرمجة هو عرف يحكم إزاحة وحدات تخزين البيانات الخاصة بالشيفرة المصدرية لنقل هيكل البرنامج. هذا المقال يتناول بصورة كبيرة لغة البرمجة سي وكل ما ينحدر منها، ويمكن تطبيق ذلك (إلى حد كبير) على معظم لغات البرمجة الأخرى (خاصة تلك الموجودة بعائلة الأقواس المجعدة). ويعد أسلوب الإزاحة أحد خواص البرمجة.
أسلوب جنو
مثل أساليب أولمان ووايت سميث، فإن أسلوب جنو يستعين أيضا بالأقواس في أسطر مستقلة، ويتم وضع مسافة بادئة مساحتها حركتين إلا عند فتح تعريف لوظيفة حيث لا يتم وضع مسافة بادئة عندها. في كل الحالات يتم وضع مسافة بادئة عند الشيفرة المحتواة بمسافة حركتين من الأقواس.
هذا النموذج الذي قام بنشره ريتشارد ستولمن ربما يتأثر بخلفيته في كتابة شيفرة ليسب. في ليسب يكون مكافئ البلوك وحدة بيانات من الفئة الأولى مما يمنحها مستوى الإزاحة الخاص به ليساعد على تأكيد أنه في لغة السي يكون البلوك تركيبيا. وعلى الرغم من عدم ارتباط ذلك بصورة مباشرة بالإزاحة، فإن أسلوب إيماكس للتشفير يتضمن أيضا مسافة قبل القائمة ذات الأقواس من البراهين إلى الدالة الوظيفية.
static char *
concat (char *s1, char *s2)
{
while (x == y)
{
something ();
somethingelse ();
}
finalthing ();
}
هذا الأسلوب يجمع بين مميزات أولمان ووايت سميث ومن ثم يمحو عيوب وايت سميث الممكنة للأقواس التي لا تظهر من البلوك.
محرر النصوص وإيماسز زأمر الإزاحة لأنظمة جنو سيقوم بتنسيق الشيفرة تبعا لهذا الأسلوب افتراضيا. وهو يفوض من جانب معايير تشفير جنو ويستخدم بكافة برامج مشروع جنو، ولكنه نادرا ما يستخدم خارج نطاق جنو. من العيوب الأخرى هي أن قوس الإغلاق لم يعد متوازيا مع العبارة الذي ينتمي إليها مفاهيميا.
إن كل من لا يستخدم جنو إيماسز، أو المحررات القابلة للتخصيص والتوسع فيها بالمثل ربما يجدون أن ضبط الإزاحة تلقائيا بمحررهم أمر لا يساعد في هذا الأسلوب. ومع ذلك فإن العديد من المحررين الذين يتعاملون افتراضيا مع أسلوب كيه إن إف يتأقلمون جيدا مع أسلوب جنو حين يضبط عرض التاب إلى مسافتين، وبالمثل يتأقلم جنو إيماسز جيدا مع أسلوب كيه إن إف بضبط عرض التاب إلى ثماني مسافات. في كلا الحالتين، تقوم إعادة الصياغة الأوتوماتيكية بعمل المسافات الأصلية، ولكن خط الإزاحات التلقائي يعمل بشكل صحيح.
أسلوب هورتمان
تتكيف نسخة كتاب «المفاهيم الحاسوبية بمبادئ لغة سي++» لكاي إس هورست مان مع أسلوب أولمان بوضع العبارة الأولى من البلوك على نفس خط قوس الافتتاح.
while (x == y)
{ something();
somethingelse();
//...
if (x < 0)
{ printf("Negative");
negative(x);
}
else
{ printf("Non-negative");
nonnegative(x);
}
}
finalthing();
هذا الأسلوب يجمع بين مميزات أسلوب أولمان في الحفاظ على المحاذاة العمودية للأقواس للحفاظ على قابلية القراءة وسهولة التعرف على البلوكات مع توفير خط من أسلوب كيه آند آر. ومع ذلك فإن نسخة 2003 تستعين حاليا بأسلوب أولمان كليا.
أسلوب بيكو
هو الأسلوب الذي يستخدم بصورة شائعة في لغة برمجة بيكو بواسطة مصمميها والذي يختلف عن الأساليب المذكورة مسبقا. نقص عبارات الرجوع وحقيقة أن الفاصلة المنقوطة تستخدم في البيكو كفواصل بين العبارات، بدلا من النهايات، يؤدي إلى تركيب الجملة التالية:
stuff(n):
{ x: 3 * n;
y: doStuff(x);
y + x }
مميزات وعيوب هذا الأسلوب تتشابه مع تلك الخاصة بحفظ حالة الشاشة مع أسلوب كيه آند ى ر. ميزة أخرى إضافية هي أن أقواس البدء والختام ثابتة في البرنامج (كلاهما يتشارك في المساحة مع سطر الشيفرة)، متناقضا مع أسلوب كيه آند آر حيث يشترك قوس واحد مع سطر الشيفرة وسطر آخر يمتلك سطرا بأكمله لنفسه.
أسلوب أولمان
تم تسمية أسلوب أولمان باسم إريك أولمان. وهو في الكثير من الأحوال يشار إليه باسم أسلوب المعهد القومي الأمريكي للتنميط " لأنها تستخدم في المستندات التي تصف معيار السي لإيه إن سي آي (الذي تم اتباعها لاحقا كمعيار عالمي للأيزو سي (لغة برمجة). كما تعرف أيضا باسم "أسلوب بي إس جي" منذ كتب أولمان العديد من الاستخدامات توزيعة برمجيات بيركلي (بالرغم من أنه لا يجب خلطه مع أسلوب "بي إس دي كيه إن إف" المختلف تماما، انظر بالأسفل). مؤيدو هذا الأسلوب غالبا ما يستشهدون باستخدامه بإيه إن سي آي وفي معايير أخرى كمبرر لاتباعه.
هذا الأسلوب يضع القوس المرتبط ببيان الضبط على السطر التالي، مع وضع مسافة بادئة على نفس المستوى من بيان التحكم. البيانات بين هذه الأقواس يتم وضعها على مسافة بادئة في المستوى التالي.
while (x == y)
{
something();
somethingelse();
}
finalthing();
هذا الأسلوب شبيه بالإزاحات القياسية المستخدمة بواسطة لغة باسكال وترانسآكت- إس كيو إل حيث تتعادل الأقواس مع مفاتيح البداية begin والنهاية end.
من مميزات هذا الأسلوب هي أن شيفرة الإزاحة تنفصل بوضوح عن البيان الذي يتضمنها بواسطة اسطر هي بالكامل عبارة عن فراغات مما يحسن القدرة على القراءة ويتوازى قوس الإغلاق في نفس العمود مع قوس الافتتاح مما يجعل من السهل العثور على أقواس متطابقة. بالإضافة إلى ذلك يحدد أسلوب صنع البلوكات البلوك الفعلي للشيفرة من بيان التحكم المرتبط به نفسه. بحيث يظهر تعليقا على بيان التحكم ويمحو بيان التحكم بالكامل أما إعادة تصنيع أو إزالة البلوك من الشيفرة لا يقدم الأخطاء التراكيبية بالصورة الواضحة بسبب الأقواس المفقودة أو المختلطة.
على سبيل المثال، المثال التالي لا يزال صحيحا من الناحية التركيبية:
//while (x == y)
{
something();
somethingelse();
}
وكذلك هو الحال بالنسبة للمثال التالي:
//for (int i=0; i < x; i++)
//while (x == y)
if (x == y)
{
something();
somethingelse();
}
هذا الأسلوب يمكن أن يؤدي إلى مشاكل عند استخدام لغات برمجة مثل جافا سكريبت والبايثون. تتمتع الجافا سكريبت بإمكانية إدخال فاصلة منقوطة اوتوماتيكيا في وقت التشغيل مما يمكن أن يؤدي إلى أن تسيطر حشرة حاسوبية شريرة (خطأ برمجي) على هذا الأسلوب.[بحاجة لمصدر]
من العيوب الأخرى لهذا الأسلوب هي أن كل قوس من أقواس الاحتواء يشغل سطرا كاملا بنفسه بدون إضافة أي شيفرة فعلية. وقد كان ذلك أمرا هاما ذات مرة حين كان يتم تحرير البرامج على وحدات فرعية تكشف عن 24 سطرا فقط، ولكنها تكون أقل وضوحا مع القرارات الأكبر للعروض الحديثة. ونظرا لأن محفز هذا الأسلوب هو أن يتم تعزيز إمكانية قراءة الشيفرة بفصل البلوكات عن بيانات تحكمها بصورة مرئية فإن الشاشة وملكيتها تعد اهتماما ثانويا.
يستخدم هذا الأسلوب افتراضيا في مايكروسوفت فيجوال ستوديو 2005 وما تبعها من إصدارات. ومنذ ذلك الحين اتبعت مايكروسوفت هذا الأسلوب في جميع مستنداتها (شبكة مطوري مايكروسوفت) ومنهجيات البرمجة الداخلية في لغاتها المعتمدة على السي وهي فيجوال سي++ وسي شارب.
أسلوب كيه آند آر
سمي أسلوب كيه آند آر بهذا الاسم لأنه كان يستخدم في كتاب كيرنيجهان ودينيس ريتشي «لغة البرمجة سي»، وهو يستخدم أيضا في السي[بحاجة لمصدر]. وهو أقل شيوعا بالنسبة للغات السي++ وسي شارب ولغات أخرى. وهو يحتفظ بأول قوس مفتوح على نفس السطر الموجود به بيان التحكم ليضع مسافة بادئة قبل هذه البيانات الموجودة بين الأقواس ويضع قوس الإغلاق على نفس مستوى الإزاحة مثل بيان التحكم (في سطر خاص به). ومع ذلك يتم وضع الوظائف بين الأقواس بشكل مختلف عن البيانات، القوس الوظيفي المفتوح يوضع عند السطر الذي يلي التصريح، على نفس مستوى الإزاحة كالتصريح. وذلك نظراً لأنه في لغة السي الأصلية تحتاج أنماط النقاش لأن يتم التصريح عنها في السطر اللاحق، بينما حين لا يكون هناك أي نقاشات ضرورية، لن يظهر القوس المفتوح على نفس السطر مع التصريح الوظيفي. القوس المفتوح لتصريحات الوظائف يعد استثناءً للقاعدة الأساسية.
int main(int argc, char *argv[])
{
...
while (x == y) {
something();
somethingelse();
if (some_error)
do_correct();
else
continue_as_usual();
}
finalthing();
...
}
النسخة:1TBS
مؤيدو هذا الأسلوب يشيرون إليه أحيانا باسم «أسلوب القوس الحقيقي الواحد» (وتكتب اختصارا 1TBS أو OTBS) بسبب المجموعة السباقة للسي (بالرغم من أن مؤيدي الأساليب الأخرى كانوا يشتهرون باستخدام لغات قوية مثلها). الشيفرة المصدرية ليونكس ونواة نظم التشغيل تكتب بهذا الأسلوب.
في هذا الأسلوب تكون المقومات التي تسمح بإدخال سطور شيفرات جديدة في أسطر منفصلة، أما تلك التي تمنع الإدخال تكون في سطر واحد منفرد. هذا المبدأ يتعزز بوضع أقواس على كل كلمات الرئيسية التي تمثل ما يعرف بتدفق السيطرة مثل if, else, while وما شابه – حتى أدوات الشرط ذات السطر الواحد- بحيث يكون إدخال سطر جديد من الشيفرة في أي مكان «آمنا»
من مميزات هذا الأسلوب هي أن بداية كل قوس لا تتطلب سطرا إضافيا بنفسها، أما قوس النهاية فينتهي بالبيان الذي ينتمي إليه من الناحية المفاهيمية. أما من عيوب هذا الأسلوب هي أن قوس النهاية للبلوك يتخذ سطرا كاملا بنفسه والذي يمكن حله بصورة جزئية في بلوكات if/ else وبلوكات do/while:
//...
if (x < 0) {
printf("Negative");
negative(x);
} else {
printf("Non-negative");
nonnegative(x);
}
وبالرغم من أن هذا الأسلوب يمكن أن يجعل من الصعب مسح أي شيفرة مصدرية تلفازيا لقوس الافتتاح لأي بلوك، وليس من المعتاد دائما أن يكون قوس الافتتاح هو القوس الشيق ولكن بيان التحكم الذي عرف هذا البلوك هو كذلك. من السهل العثور على بداية البلوك بتحديد موقع أول سطر أعلى قوس الإغلاق الذي يتم تحديده بمسافة بادئة بنفس المستوى.
وبينما يتم كتابة برنامج جافا غالبا بأسلوب أولمان أو بأساليب أخرى، فإن هناك هيكل محدد من شيفرة جافا يستعين بنسخة ثانوية من أسلوب كيه آند آر حيث يكون قوس الافتتاح على نفس سطر الدرجة أو تصريح الطريقة، وذلك غالبا لأن إرشادات أسلوب صن ميكروسيستمز الأصلية استعانت بأسلوب كيه آند إيه ونتيجة لذلك فإن معظم شيفرات المصادر المعيارية لجافا إيه بي آي تكتب بهذا الأسلوب. كما أنه أسلوب شائع في الإزاحات لكل من أكشن سكربت وجافا سكريبت بالاشتراك مع أسلوب أولمان.
كما يجب أن نذكر أن لغة البرمجة سي لا تحدد بشكل واضح هذا الأسلوب بالرغم من أننا نتابعها بصورة مستمرة عبر الكتاب. ومن الجدير بالذكر من هذا الكتاب:
موقع القوس أقل أهمية، بالرغم من أن الأشخاص لديهم معتقدات عاطفية. لقد اخترنا واحدا من عدة أساليب شائعة متنوعة. اختر أسلوبا يناسبك ثم استخدمه باستمرار.
أسلوب القدرة على قراءة التحكم المضغوط
هذا الأسلوب يجعل من السهل استخلاص الحافة اليسارية من الشيفرة الخاصة بعبارات التحكم (حيث تكون أساليب مثل 1TBS عبارات مثل "else" يصعب رؤيتها لأنها تلي قوس نهاية في نفس السطر). ومع ذلك تجعل الشيفرة مضغوطة أكثر مما في أساليب أخرى مثل أولمان وذلك بوضع اقواس مفتوحة في نهاية الأسطر (فيما يتناقض مع أسطرها الخاصة).
// In JS
if (x == y) {
doSomethingA();
doSomethingB();
}
else {
doSomethingC();
doSomethingD();
}
أسلوب ليسب
يمكن أن يتمادى المبرمج حتى يقوم بإدخال أقواس الإغلاق في السطر الأخير من البلوك. هذا الأسلوب يجعل الإزاحة هي الطريقة الوحيدة لتمييز بلوكات الشيفرات ولكنه يتميز بأنه لا يحتوي على أي أسطر غير ذي مغزى. يمكن أن نسمي ذلك ببساطة أسلوب ليسب (لأن هذا الأسلوب شائع للغاية في شيفرة ليسب) أو أسلوب بايثون (لغة بايثون لا تحتوي على أقواس ولكن النموذج يبدو شبيها للغاية[بحاجة لمصدر]).
// In C
for (i = 0; i < 10; i++) {
if (i % 2 == 0) {
doSomething (i); }
else {
doSomethingElse (i); } }
# In Python
for i in range(10):
if i % 2 == 0:
doSomething(i)
else:
doSomethingElse(i)
;; In Lisp
(dotimes (i 10)
(if (evenp i)
(do-something i)
(do-something-else i)))
أسلوب وايت سميث
يعرف أسلوب وايت سميث أيضا بأسلوب ويشارت إلى درجة قليلة وهو اقل شيوعا اليوم من الثلاثة أساليب الأخرى. وقد كان يستخدم ذلك بصورة أساسية في توثيق المصنف سي التجاري الأول، مترجم وايت سميث. كما كان شائعا أيضا في الأيام الأولى للويندوز حيث كان يستخدم في ثلاث كتب برمجة ويندوز مؤثرة دليل المبرمج للويندوز لديورانت وبرمجة الويندوز لياو وكارلسون وبيتزولد وتقنيات برمجة تشغيل ويندوز 3 بيتر نورتن وياو. وتستمر الأساسيات السيمبية للدعوة على ذلك على أنها أسلوب وضع أقواس موصى به نظام تشغيل سيمبيان أو إس لتطبيقات الهاتف المحمول التي تعمل بسي++.
هذا الأسلوب يضع الأقواس المرتبطة ببيان التحكم على سطر النص مع مسافة بادئة. ويتم وضع الإزاحة للبيانات داخل القواس على نفس مستوى الأقواس.
while (x == y)
{
something();
somethingelse();
}
finalthing();
مميزات هذا الأسلوب شبيهة بتلك الخاصة بأسلوب أولمان في أن البلوكات تنفصل بوضوح عن بيانات التحكم. ومع ذلك ففي أسلوب وايتسميث، لا يزال البلوك مرتبطا بصورة مرئية ببيان التحكم بدلا من أن يبدو كبلوك شيفرة ليس له علاقة تحيط به مساحات بيضاء. ميزة أخرى هي أن محاذاة الأقواس مع البلوك يؤكد على حقيقة أن البلوك بالكامل هو بيان مركب فردي مفاهيميا (وبرمجيا). علاوة على ذلك، فإن وضع مسافات بادئة للأقواس يؤكد على أنها تابعة لبيان التحكم.
من عيوب هذا الأسلوب هي أن الأقواس لا تظهر جيدا. ومع ذلك يعد ذلك أمرا معتمد على الرأي كثيرا لأن الأقواس تشغل سطرا كاملا بنفسها حتى إذا كانت مسافتها البادئة في نفس مستوى البلوك.
عيب آخر يمكن أن يكون أنه إذا تم توظيف عناصر نحوية ملائمة مثل "else if"، فإن القوس النهائي لا يتوازى مرة أخرى مع العبارة التي ينتمي إليها من الناحية المفاهيمية، بالرغم من أن الآخرين يشيرون إلى أن قوس الإغلاق ينتمي لقوس الافتتاح وليس لعبارة التحكم.
كمثال:
if (data != NULL && res > 0)
{
if (!JS_DefineProperty(cx, o, "data", STRING_TO_JSVAL(JS_NewStringCopyN(cx, data, res)), NULL, NULL, JSPROP_ENUMERATE))
{
QUEUE_EXCEPTION("Internal error!");
goto err;
}
PQfreemem(data);
}
else if (!JS_DefineProperty(cx, o, "data", OBJECT_TO_JSVAL(NULL),
NULL, NULL, JSPROP_ENUMERATE))
{
QUEUE_EXCEPTION("Internal error!");
goto err;
}
ومع ذلك، إذا اتبع المرء قاعدة وضع الأسلوب التي تنص بأن يتم توفير الأقواس في كل مستوى من «النطاق»، فإن الشيفرة العليا يمكن كتابتها لاستبدال "else if" بكلمة if منفصلة في نطاق به جزئية "else" منفصلة تماما بالعبارة.
if (data != NULL && res > 0)
{
if (!JS_DefineProperty(cx, o, "data", STRING_TO_JSVAL(JS_NewStringCopyN(cx, data, res)), NULL, NULL, JSPROP_ENUMERATE))
{
QUEUE_EXCEPTION("Internal error!");
goto err;
}
PQfreemem(data);
}
else
{
if (!JS_DefineProperty(cx, o, "data", OBJECT_TO_JSVAL(NULL),
NULL, NULL, JSPROP_ENUMERATE))
{
QUEUE_EXCEPTION("Internal error!");
goto err;
}
}
عقب الإستراتيجية المذكورة فيما سبق، يمكن أن يجادل المرء بأن الشيفرة يمكن قراءتها بصورة أكبر، ومع ذلك تثار بعض المشكلات في القدرة على القراءة حيث يتم إضافة المزيد من الشروط، والتي تظهر في هذه الشيفرة الزائفة (على الرغم من أنه عادة في هذه الحالة يكفي فقط عبارة متحولة)
else
{
if (stuff is true)
{
Do stuff
}
else
{
if (other stuff is true)
{
Do other stuff
}
else
{
if (its still not true)
{
Do even more other stuff
}
}
}
}
ربما في وقت من الأوقات كان هناك حافز لوضعه بأكبر قدر ممكن في كل سطر من الشيفرة حتى يتم تخفيض عدد الصفحات التي يمكن طباعتها. ولم تعد تلك مشكلة مؤرقة وتزيد من قابلية القراءة بطريقة قواعد صياغة وايت سميث.
أسلوب بانر
أسلوب بانر يجعل المسح المرئي التصويري أسهل للبعض، ونظرا لأن «العناوين» الخاصة بأي بلوكات هي الشيء الوحيد الممتد لهذا المستوى (لأن النظرية تقول أن ضبط الإغلاق للبلوك السابق يتدخل مع عنوان البلوك التالي في أساليب كيه آند آر وأولمان). في هذا الأسلوب، والذي يعتبر بالنسبة لأسلوب وايت سميث بالضبط كأسلوب كيه آند آر بالنسبة لأولمان، يتم وضع مسافة بادئة لضابط الإغلاق على أنه آخر عنصر بالقائمة (ومن ثم يفقد ثباته).
function1 () {
dostuff
do more stuff
}
function2 () {
etc
}
أو، بهيئة لغة ترميز:
lots of stuff... more stuff | alternative for short lines | etc. |
أسلوب بي إس دي كيه إن إف
يعرف أيضا باسم أسلوب كيرنل نورمال فورم، وهو يعد حاليا الشكل الخاص بمعظم الشيفرات المستخدمة في نظام تشغيل توزيعة برمجيات بيركلي سوفت وير ديستريبيوشن. وعلى الرغم من أنه مخصص بشكل أساسي بشيفرة كيرنل، فهو يستخدم بصورة واسعة الانتشار أيضا في شيفرة يوزرلاند. وهو في الأساس إصدار موثق بشكل شامل لأسلوب كيه آند آر كما تستخدم في الشيفرة المصدرية ليونكس بل لابس الإصدار السادس والسابع.
يتم الاحتفاظ بالمجدولة الصلبة (ts in vi) في ثماني أعمدة بينما المجدولة الناعمة غالبا ما يتم تحديدها كأداة مساعدة مثل (sw in vi) وتوضع في الرابع.
تستخدم المجدولات الصلبة لوضع مسفة بادئة لبلوكات الشيفرات بينما تستخدم المجدولة الناعمة للمسافة البادئة الإضافية لكافة الأسطر الاستمرارية التي يجب أن يتم تقسيمها على عدة اسطر.
علاوة على ذلك، لا تستخدم الاستدعاءات الوظيفية المساحة الفارغة قبل القوسين، بالرغم من أن لغة سي المتأصلة في البيانات مثل if, while, do, switch, return تستعين بها (في حالة ما استخدمت return بين الأقواس). الوظائف التي تدل على عدم وجود متغيرات محلية في البلوك عالي المستوى يجب أن يترك أيضا سطرا فارغا بعد أقواس البلوك الافتتاحية.
فيما يلي عينات قليلة:
while (x == y) {
something();
somethingelse();
}
finalthing();
if (data != NULL && res > 0) {
if (JS_DefineProperty(cx, o, "data",
STRING_TO_JSVAL(JS_NewStringCopyN(cx, data, res)),
NULL, NULL, JSPROP_ENUMERATE) != 0) {
QUEUE_EXCEPTION("Internal error!");
goto err;
}
PQfreemem(data);
} else {
if (JS_DefineProperty(cx, o, "data", OBJECT_TO_JSVAL(NULL),
NULL, NULL, JSPROP_ENUMERATE) != 0) {
QUEUE_EXCEPTION("Internal error!");
goto err;
}
}
static JSBool
pgresult_constructor(JSContext *cx, JSObject *obj, uintN argc,
jsval *argv, jsval *rval)
{
QUEUE_EXCEPTION("PGresult class not user-instanciable");
return (JS_FALSE);
}
اعتبارات أخرى
فقدان مسار البلوكات
في بعض المواقف، هناك خطورة من فقدان مسار حدود البلوكات. وغالبا ما نرى ذلك في أقسام كبيرة من الشيفرة التي تحتوي على العديد من البيانات المركبة التي تتدخل في العديد من المستويات الخاصة بالإزاحات – وفي الوقت الذي يصل فيه المبرمج لأسفل مجموعة كبيرة من العبارات المتداخلة، يمكن أن يفقد تتبع المسار الذي تصل عليه عبارات الضبط.
أما المبرمجين الذين يعتمدون على عدد الأقواس المفتوحة يجدون صعوبة في أساليب المسافات البائدة مثل كيه آند آر، حيث لا يكون قوس البداية منفصلا عن عبارة ضبطه. أما المبرمجين الذين يعتمدون على الإزاحات سيكسبون الكثير من تلك الأساليب المضغوطة عموديا مثل كيه آند آر لأن البلوكات أقصر.
ولتجنب فقدان مسار عبارات الضبط مثل for، يمكن لشخص استخدام مسافات بادئة كبيرة مثل تاب صلب عريض من ثماني وحدات جنبا على جنب مع تقسيم الوظائف الكبرى إلى وظائف اصغر وأكثر قابلية للقراءة. نظام لينوكس يعمل بهذه الطريقة وأيضا استخدام أسلوب كيه آند آر.
طريقة أخرى تكون باستخدام تعليقات الإنلاين المضافة بعد قوس الإغلاق
for (int i = 0; i < total; i++) {
foo(bar);
} //for (i)
if (x < 0) {
bar(foo);
} //if (x < 0)
ومع ذلك فإن الحفاظ على شيفرة مزدوجة في عدة أماكن هي العيب الأساسي لهذه الطريقة.
من الحلول الأخرى التي يتم تطبيقها في محرر الطي، والتي تتيح للمطور إخفاء أو إظهار بلوكات الشيفرات عبر مستوى مسافاتها البادئة أو هيكل عباراتها المركبة. كما يركز الكثير من المحررين أيضا على الأقواس المتطابقة حين تكون علامة الإقحام بجانب واحد منها.
ويمنع أسلوب كيه آند آر خطأ شائع آخر نواجهه عند استخدام محرر أسطر يونكس المعياري ed. يتم وضع العبارة بصورة خاطئة بين عبارات الضبط وقوس الافتتاح للبلوك الحلقي بحيث يتحول هيكل الحلقة إلى رحلة فردية.
for (int i = 0; i < total; i++)
whoops(bar); /* repeated total times, with i from 0 to (total-1) */
{
only_once(); /* Programmer intended this to be done total times */
} //for (i) <-- This comment is no longer valid, and is very misleading!
يتجنب أسلوب كيه آند آر هذه المشكلة بالحفاظ على عبارة الضبط وقوس الافتتاح في نفس السطر.
شرح مبسط
أسلوب الإزاحة في البرمجة هو عرف يحكم إزاحة وحدات تخزين البيانات الخاصة بالشيفرة المصدرية لنقل هيكل البرنامج. هذا المقال يتناول بصورة كبيرة لغة البرمجة سي وكل ما ينحدر منها، ويمكن تطبيق ذلك (إلى حد كبير) على معظم لغات البرمجة الأخرى (خاصة تلك الموجودة بعائلة الأقواس المجعدة). ويعد أسلوب الإزاحة أحد خواص البرمجة.
شاركنا رأيك
التعليقات
لم يعلق احد حتى الآن .. كن اول من يعلق بالضغط هنا
أقسام شبكة بحوث وتقارير ومعلومات عملت لخدمة الزائر ليسهل عليه تصفح الموقع بسلاسة وأخذ المعلومات تصفح هذا الموضوع [ تعرٌف على ] أسلوب إزاحة # اخر تحديث اليوم 2024-04-28 ويمكنك مراسلتنا في حال الملاحظات او التعديل او الإضافة او طلب حذف الموضوع ...آخر تعديل اليوم 10/11/2023
اعلانات العرب الآن