cyanic-selkie/wikianc huggingface dataset:
مؤشر (برمجة)
أصول المعمارية
عادة ما يكون المؤشر كبير بدرجة كافية لاحتواء المزيد من العناوين أكثر من وحدات الذاكرة الموجودة في النظام. يُقدم ذلك احتمالية محاولة البرنامج من الولوج إلى أحد العناوين الذي لا يتطابق مع أي من وحدات الذاكرة، ويرجع ذلك إما لعدم تثبيت مساحة كافية من الذاكرة (على سبيل المثال تخطي مدى الذاكرة المتوفرة) أو لعدم دعم المعمارية لمثل هذه العناوين. يُمكن أن يُطلق على الحالة الأولى، في بعض البرامج مثل معمارية أنتل x86، اسم خطأ التجزئة أو التخصيص segmentation fault (عادة ما تُختصر ب segfault). الحالة الثانية ممكنة في عمليات التنفيذ الحالية لـ AMD64، بحيث يصل طول المؤشرات إلى 64 بت ويصل امتداد العناوين إلى 48 بت فقط. هناك، يجب أن تتفق المؤشرات مع قواعد محددة (العناوين المُتعارف عليها canonical addresses)، لذا فانه في حالة تتبع المؤشر غير المُتعارف عليها، يظهر المعالج خطأ حماية عام.
على الصعيد الآخر، تحتوي بعض الأنظمة على المزيد من وحدات الذاكرة أكثر من ما تحتويه من عناوين. في هذه الحالة، يعمل نظام أكثر تعقيداً مثل أنظمة تخصيص أو تقطيع الذاكرة memory segmentation أو الصفحات المخزنة paging المُوظفة لاستخدام أجزاء مختلفة من الذاكرة في أوقات مختلفة. تدعم الأمثلة الأخيرة للمعمارية x86 إلى 36 بت من عناوين الذاكرة الفيزيائية، والتي نُظمت لمساحة العنوان الخطي 32 بت من خلال أجهزة الصفحات المخزنة أو التصفح PAE. لذا، يُمكن فقط الولوج إلى 1\16 من الذاكرة الكلية المتاحة في المرة الواحدة. ومثال آخر في نفس عائلة جهاز الحاسب الآلي كان وضع الحماية الـ 16 بايت من المعالج 80286، الذي يمكنه، على الرغم من دعم 16 ميجا بايت فقط من الذاكرة الفيزيائية، الولوج إلى 1جيجا بايت من الذاكرة التخيلية، ولكن مزيج من عنوان الـ 16 بيت والسجلات المجزأة جعلت ولوج أكثر من 64 كيلو بايت في ثقل بنية بيانات واحدة. قد تُصبح بعض قيود المؤشر الحسابي ANSI مناسبة لنماذج الذاكرة المجزأة لعائلة هذا المعالج.
دعمت بعض معماريات ذاكرة التخزين المُستخدمة في عمليات الإدخال والإخراج (memory-mapped I/O) والتي تُمكن بعض العناوين من الإشارة إلى وحدات من الذاكرة في حين تُشير أُخرى إلى مسجلات جهاز خاصة بأجهزة أخرى داخل الحاسب الآلي وذلك لتوفير واجهة متناسقة. تظهر بعض المفاهيم المشابهة مثل إزاحة الملف ومؤشرات المصفوفة ومراجع الكائن البعيد التي تخدم بعض من الأغراض المماثلة مثل العناوين لأنواع أخرى من الكائنات.
الاستخدامات
تُدعم المؤشرات بشكل مباشر بدون وجود قيود في لغات برمجة مثل PL/I وC وC++ وPascal وأغلبية لغات التجميع. كما أنها تُستخدم بشكل أساس لتراكيب المراجع، والتي بدورها خطوة أساسية لبناء كل تراكيب البيانات تقريباً، تماماً كما يحدث في عملية تمرير البيانات بين الأجزاء المختلفة من البرنامج.
في اللغات البرمجة الوظيفية التي كثيراً ما تعتمد على القوائم، يتم التحكم بالمؤشرات والمراجع بشكل نظري من خلال اللغة باستخدام التراكيب الداخلية مثل cons.
عند التعامل مع المصفوفات، عادة ما تنطوي عملية البحث الحيوي على مرحلة تُدعى «حساب العنوان address calculation» والتي تتضمن بناء مؤشر كائن البيانات المطلوبة في المصفوفة. إذا كانت عناصر البيانات في المصفوفة لها الأطوال المخصصة من خلال طاقات ثنائية، عادة ما تكون هذه العمليات الحسابية أكثر كفاءة. كثيراً ما تستخدم البطانة أو الحشو Padding كآلية لضمان أن هذه هي الحالة المطلوبة، على الرغم من زيادة متطلبات الذاكرة. في تراكيب البيانات الأخرى، مثل القوائم المرتبطة، تستخدم المؤشرات كمراجع لربط أحد أجزاء التراكيب بالآخر.
تستخدم المؤشرات لتمرير المعاملات باستخدام مراجع لها. ويكون هذا مفيداً إذا أراد المبرمج أن يكون تعديل الدالة للمعامل مرئيا للجزء الذي قام باستدعائها. ويُفيد ذلك أيضا في استرجاع العديد من القيم من الدالة. يُمكن استخدام المؤشرات أيضاً الذاكرة المخصصة وغير المخصصة للمتغيرات الديناميكية والمصفوفات داخل الذاكرة. في أغلب الأحيان ما يتحول المتغير إلى كائن زائد عن الحاجة بعد تحقيق الغرض منه، فإن الإبقاء عليه إهداراً للذاكرة، ولذا فمن الأفضل عدم تخصيصه أو توزيعه (مستخدماً مرجع المؤشر الأصلي) عندما انتهاء الحاجة إليه. قد يؤدي عدم القيام بهذه الخطوة إلى تسرب الذاكرة memory leak (حيث تقل مساحة الذاكرة الفارغة بشكل تدريجي، أو في الحالات الخطير بشكل سريعً، ويرجع ذلك إلى تراكم أعداد كبير من قوالب الذاكرة).
المؤشر في لغة السي "C "
الصيغة الأساسية للإعلان عن مؤشر هي:
يقوم هذا بالإشارة إلى القيمة " money" كمؤشر إلى عدد صحيح. حيث أن محتويات الذاكرة لا تضمن ما هي القيمة المحتمل أن تحتويها في لغة السي C، لذا يجب الحرص على التأكد من أن العنوان الذي يُشير إليه " money" انه عنوان صحيح ومناسب. ولهذا السبب يُقترح في بعض الأحيان استهلال المؤشر بالقيمة NULL (مع ذلك، يُمكن لاستهلال المؤشرات تورية التحليل وإخفاء الأخطاء).
عند إتمام عملية تتبع أحد المؤشرات له القيمة NULL فسوف يحدث خطأ في التشغيل ويتوقف التنفيذ ويحدث ذلك عادة مع أخطاء التخصيص segmentation fault. وعقب الإعلان عن المؤشر فإن الخطوة المنطقية التالية هي جعله يشير إلى شيء ما.
ويُشير مترجم الكود بأن يأخذ محتويات المؤشر money والتي هي 0x8130 وينتقل إلى ذلك العنوان ويعين القيمة المخزنة به إلى 8. a فسوف تتضح قيمته ب 8. قد يتخلى هذا المثال بشكل أكثر وضوحاً ما إذا تم فحص الذاكرة بشكل مباشر. افترضاً أن a له عنوان الذاكرة 0x8130 و money له العنوان 0x8134، وافترضاً أيضا أن الحاسوب المستخدم هو حاسوب 32 بت حيث أن سعة نوع البيانات int هي 32 بت. فإن الشكل التالي هو ما سوف يظهر في الذاكرة بعد تنفيذ الكود التالي:
! العنوان !! المحتويات
المؤشر ذو القيمة NULL المعروضة هنا هو 0x00000000. وبتعيين عنوان المتغير a للمؤشر money باستخدام مؤثر التعيين &
يكون الناتج في الذاكرة كما يلي:
Then by dereferencing  by coding
سيأخذ الحاسب الآلي محتويات المؤشر والتي هي 0x8130 وينتقل إلى ذلك العنوان ويعين القيمة 8 إلى ذلك الموقع ويكون الناتج في الذاكرة كما يلي:
وكما هو واضح فإن استدعاء قيمة المتغير a سوف ينتج القيمة 8 لأن التعليمة السابقة قامت بتعديل محتويات المتغير a عن طريق المؤشر money.
مصفوفات لغة السي C
تتم فهرسة المصفوفة في لغة السي C بشكل أساسي باستخدام المؤشر الحسابي، حيث أن معايير اللغة التي تتطلب أن يكون معادل إلى *(array+i). لذا يُمكن اعتبار المصفوفات كمؤشرات لمناطق متتابعة من الذاكرة (بدون أي فجوات )، والصيغة المُستخدمة للولوج إلى المصفوفات مماثلة لتلك التي يُمكن أن تُستخدم في عملية تتبع المؤشر، ومثال على ذلك يُمكن الإعلان عن المصفوفة array واستخدامها على النحو التالي:
بقوم هذا بحجز مكان خاص لخمسة أعداد صحيحة ويُطلق على هذا القالب اسم المصفوفة التي تعمل كمؤشر لهذا المكان. من الاستخدامات الشائعة أيضاً للمؤشرات هي الإشارة للذاكرة المحجوزة ديناميكياً باستخدام دالة malloc التي تُعيد قالب متصل من الذاكرة بحيث لا يقل حجمه عن الحجم المطلوب الذي يُمكن استخدامه كمصفوفة. بينما معظم المؤثرات على المصفوفات والمؤشرات متكافئة إلا أنه من المهم الإشارة إلى أن دالة sizeof سوف تكون مختلف. في هذا المثال سوف تكون قيمة (المصفوفة) sizeof يُساوي 5*sizeof (int) (حجم المصفوفة)، بينما سوف تكون قيمة sizeof (ptr) تساوي sizeof (int) أي حجم المؤشر نفسه. يُمكن الإعلان عن القيم الافتراضية للمصفوفة مثل:
إذا افترضت أن المصفوفة array تقع في الذاكرة بدايةً من العنوان 0x1000 على جهاز الحاسب الآلي 32 بايت وترتيب البيانات داخله little-andian فسوف تحتوي الذاكرة على التالي: (كون القيم الموجودة في نظام عد السادس عشري hexadecimal، مثل تلك الموجودة في العناوين):
القوائم المرتبطة في لغة السي C
فيما يلي مثال يوضح تعريف القوائم المرتبطة في لغة السي C.
يُمكن ملاحظة أن تعريف المؤشر التكراري هذا هو نفسه تعريف المرجع التكراري من لغة البرمجة Haskell: Data link a = Nil Nil هي القائمة الفارغة و Cons هي (Link a) هي خلية cons من النوع a مع رابط آخر من النوع a. مع ذلك التعريف باستخدام المراجع تُفحص ولا تستخدم قيم الإشارة التي تحتمل أن تكون مربكة. لهذا السبب، عادةً ما يتم التعامل مع هيكل البيانات في لغة C عن طريق وظائف التضمين، والتي فُحصت بعناية للتأكد من صحتها.
التمرير باستخدام المؤشرات
يُمكن استخدام المؤشرات لتمرير المتغيرات باستخدام مراجع لها، بما يسمح لقيمتها بأن تتغير، على سبيل المثال انظر إلى كود لغة C++ التالي:
تخصيص الذاكرة الديناميكية
تُستخدم المؤشرات في تخزين عناوين القوالب الذاكرة المخصصة ديناميكياً وإدارتها كذلك. كما تُستخدم مثل هذه القوالب أيضا في تخزين كائنات البيانات أو كائنات المصفوفات. توفر معظم اللغات المُنشاة المُنظمة واللغات غرضية التوجه مساحة من الذاكرة يُطلق عليها الكومة heap أو منطقة التخزين الحر، حيث يتم تخصيص الدوال ديناميكياً.
يوضح مثال التالي لكود لغة السي C طريقة بناء الكائنات ديناميكياً طريقة تزويدها بالمراجع. تدعم مكتبة لغة السي C القياسية وظيفة دالة malloc لتخصيص قوالب الذاكرة من الكومة heap. حيث تُسجل حجم الكائن بهدف تخصيصه على هيئة متغيرات ويُعيد المؤشر إلى قالب ذاكرة مقسم في شكل جديد بحيث يكون مُناسب لتخزين الكائن، أو تُعيد مؤشر null في حالة فشل عملية التخصيص.
يُوضح الكود التالي كيفية عدم تخصيص كائنات الذاكرة ديناميكياً أي إعادتها إلى الكومة heap أو منطقة التخزين الحر. تُوفر المكتبة القياسية للغة C وظيفة free لعدم تخصيص كقالب الذاكرة المخصصة مسبقاً وإعادتها إلى الكومة heap. \* عدم تخصيص مادة الكائن*\ void destroy_item(struct item *item) { \* البحث عن مؤشر الكائن null *\ if (item == NULL) return; \* عدم تخصيص سلسلة الاسم المحفوظة داخل المادة *\ if (item->name != NULL) { free(item->name); item->name = NULL; }
\* عدم تخصيص المادة نفسها *\ free(item); }
أجهزة الذاكرة المعنونة
يُمكن استخدام المؤشرات في بعض تراكيب وأبنية الحوسبة للمعالجة الذاكرة أو أجهزة الذاكرة المعنونة بشكل مباشر. تُعد عملية تحديد عناوين للمؤشرات هي أحد الأدوات الهامة خلال برمجة المتحكمات الدقيقة أو المايكروكونترولر microcontrollers. فيما يلي مثال بسيط يُوضح مؤشر من نوع int وتهيئتها لعنوان نظام عد السداسي عشر hexademical وفي هذا المثال سوف تكون القيمة الثابتة هي 0x7FFF:
ظهر استخدام لغة BISO بهدف الوصول إلى إمكانيات الفيديو لأجهزة الحاسب الآلي في فترة منتصف الثمانينات بطيء السرعة. عادة ما تُستخدم التطبيقات ذات العرض المكثف للولوج إلى ذاكرة الفيديو CGA وذلك عن طريق تحويل قيمة نظام عد السداسي عشر hexademical الثابتة 0xB8000000 لمؤشر لمصفوفة تتكون من 80 من قيم -bit int 16 بالغير مُشار إليها. تتألف كل قيمة من كود ASCII في الخانة ذات الوزن المنخفض من وحدات البايت، والخانة ذات الألوان ذات وحدات البايت العالية. لذا، لوضع حرف "A" في الصف رقم 5 والعمود رقم 2 باللون الأبيض على الأزرق الساطع، يمكنك كتابة الكود كالتالي:
المؤشرات والتحويل القسري
في العديد من اللغات، يوجد في بعض المؤشرات قيد إضافي ألا وهو أن الكائن المُشار إليه كائن من نوع خاص. على سبيل المثال، ربما يُعلن عن المؤشر للإشارة إلى عدد صحيح؛ لذا ستحاول اللغة منع المبرمج من الإشارة إلى كائنات الأعداد بخلاف العدد الصحيح، مثل الأرقام العشرية، والتخلص من بعض الأخطاء. على سبيل المثال في لغة السي C
سيكون money مؤشر لعدد صحيح و bags ستكون مؤشر char. سوف يُظهر الناتج التالي تحذير مترجم بان «مهمة من نوع مؤشر غير متجانس» وفقاً للغة GCC
نظراً لإعلان money و bags بأنواع مختلفة. يجب توضيح رغبتك الفعلية في عمل المهمة عن طريق typecasting وتعني " كيفية تغيير نوع البيانات من نوع إلي نوع أخر وقت البرمجة بدون التقييد بنوع معين وبدون التغيير في قيمتها إلا في حالات معينة فقط. للتوضيح " وذلك لمنع ظهور هذا التحذير للمترجم.
يُوضح ذلك تغيير أو تحويل مؤشر العدد الصحيح لـ money إلى مؤشر char والإشارة إلى bags. يجب أن تحتفظ مسودة 2005 للمتطلبات القياسية للغة السي C التي تقوم بتحويل مؤشر مستمد من أحد الأنواع إلى نوع آخر على الحيادية الصحيحة لكلا النوعين (مؤشرات 6.3.2.3، par.7)
تضع حسابات المؤشرات في الحسبان حجم النوع في اللغات التي تُمكن المؤشر الحسابي في اللغات التي تُمكن المؤشر الحسابي. على سبيل المثال، ينتج عن إضافة عدد صحيح إلى المؤشر إلى ظهور مؤشر جديد يُشير إلى عنوان أعلى بمقدار مضاعفة هذا الرقم لحجم هذا النوع. يُمكننا ذلك من حساب عنوان عناصر المصفوفة لهذا النوع المحدد بسهولة ويُسر كما وُضح سابقاً في مثال مصفوفات لغة السي C. يجب على المبرمج أن يتوقع أن المؤشر الحسابي سيتم حسابه بطريقة مختلفة وذلك عند تحويله لأحد مؤشرات أحد الأنواع إلى مؤشر من نوع أخر من حجم مختلف. على سبيل المثال إذا بدأت مصفوفة في لغة السي C بmoney عند 0x2000 وsizeof(int) 4 بايت حيث sizeof(char) 1 بايت ومن ثم (money+1) سوف يُشير إلى 0x2004 ولكن سوف بُشير (bags+1) إلى 0x2001. ويُعد فقدان البيانات عند كتابة البيانات «الكبيرة» في محل البيانات «الصغيرة» من مخاطر التحويل القسري (على سبيل المثال bags[0]=65537;)، تظهر نتائج غير متوقعة عند تحويل القيم bit-shifting، ومشكلات المقارنة، خاصة مع القيم في مقابل القيم الغير موقعة.
تقوم بعض اللغات بتخزين معلومات نوع التشغيل التي يُمكن استخدامها للتأكد من أن هذه الأشكال الهامة صالحة في عملية التشغيل على الرغم من استحالة تحديدها أي من هذه الأشكال آمنة في آن واحد وذلك بوجه عام، في حين ترفض اللغات الأخرى القيمة التقريبية الغير قابلة للتغير من الأشكال الآمنة، أو لا تقبل أي منها على الإطلاق.
زيادة مستوى أمان المؤشرات
تسمح المؤشرات بوقوع العديد من أخطار البرمجة ويرجع ذلك لسماحها لبرنامج بالولوج إلى الكائنات التي لم يُعلن عنها بوضوح من قبل. بيد أن السلطة التي توفرها كبيرة جداً لدرجة أنه يُمكن أن يكون من الصعب القيام ببعض مهام البرمجة في غيابها. لذا فقد اختلقت بعض اللغات كائنات لها بعض خصائص المؤشرات المفيدة في حين تجنب بعض ثغراتها pitfalls للمساعدة في التعامل مع مثل هذه المشكلات. تواجه المؤشرات مشكلة رئيسية ألا وهي أنه أثناء معالجتها بشكل مباشر كأرقام، يُمكن تشكيلها للإشارة إلى العناوين غير المستخدمة أو إلى البيانات التي تستخدم لأغراض أخرى. العديد من اللغات، بما في ذلك معظم لغات البرمجة الوظيفية functional programming languages واللغات الأمرية الحديثة imperative languages مثل لغة Java إلي تستبدل المؤشرات بنوع أكثر تعقيداً من المرجع والذي عادة ما يُشار إليه ببساطة كالمرجع والذي يمكن استخدامه فقط للإشارة إلى الكائنات ولا تُعالج كأرقام لمنع هذا النوع من الأخطاء. تُتناول فهرسة المصفوفة كحالة خاصة. يُطلق على المؤشر الذي لا يحتوي على أي عنوان محدد له اسم المؤشر البدائي wild pointer. يمكن لأي محاولة لاستخدام مثل هذه المؤشرات الغير مهيأة أن تؤدي إلى سلوك غير متوقع إما لأن القيمة المبدئية ليست عنوان صالح وإما لأن استخدامها يمكنه تدمير أجزاء أخرى من البرنامج. وغالباً ما تكون النتيجة ظهور خطأ التجزئة segmentation fault أو انتهاك قواعد التخزينstorage violation.
مونرشتات
تاريخ
كانت المنطقة المحيطة بمونرشتات مأهولة على الأقل منذ حوالي عام 2100 قبل الميلاد. قام المستوطنون الأوائل من سلتيك بالزراعة في منطقة Grosswenkheim و Maria Bildhausen و Althausen (جميع القرى داخل حدود البلدية). حوالي القرن الأول الميلادي, تورينغيان وبعد فترة وجيزة, انتقل المستوطنون الفرانكوني إلى المنطقة واستخدموا التلال المحيطة (ميتشيلسبيرج) والغابات للحماية في أوقات الخطر. بحلول القرن الخامس الميلادي, كانت توجد قرية في المنطقة التي تلتقي فيها قاعدة ميتشيلسبيرج بنهر لاور.
عمدة
منذ مايو 2008, كان رئيس بلدية مونرشتات هو 2008 هيلموت بلانك (الاتحاد الاجتماعي المسيحي). أعيد انتخابه عام 2014 بنسبة 60.3٪ من الأصوات. في مارس 2020, تم انتخاب مايكل كاستل عمدة.
مؤشر (برمجة)
زيادة مستوى أمان المؤشرات
في الأنظمة تخصيص الذاكرة، من السهل بناء المؤشر التابع dangling pointer عن طريق عدم تخصيص منطقة الذاكرة التي تُشير إليها. يُعد هذا النوع من المؤشرات خطير ودقيق لأن منطقة الذاكرة الغير مخصصة يُمكنها أن تحتوي على نفس البيانات التي كانت بها قبل إلغاء تخصيصها ولكن يُمكن حينها إعادة تخصيصها والكتابة عليها من خلال استخدام كود غير متصل بها، غير معروف للكود السابق. يُزعم أن اللغات التي تحتوي على garbage collection تمنع هذا النوع من الأخطاء (حيث تتم عملية إلغاء التخصيص يتم بشكل تلقائي) ولكن لا تتم إزالة المؤشر نفسه بواسطة garbage collector ويمكن أن يشير إلى بيانات ذات صلة وغير متوقعة إذا أعيد استخدامها في أي وقت بعد إلغاء تخصيصها.
تُدعم بعض اللغات مثل لغة C++ المؤشرات الذكية smart pointers والتي تستخدم نموذج مبسط من حساب المرجع للمساعدة في تتبع تخصيص الذاكرة الديناميكية بالإضافة إلى العمل كمرجع. في غياب حلقات المرجع، حيث يشير الكائن إلى نفسه بصورة غير مباشرة من خلال سلسلة من المؤشرات الذكية smart pointers, يلغي هذا على إمكانية المؤشرات التابعة dangling pointer وتسريبات الذاكرة. تدعم سلاسل Delphi حساب المرجع محلياً.
مؤشر Null
غالباً ما يحتوي مؤشر Nullعلى قيمة محددة، ولكنها ليست بالضرورة أن تكون القيمة صفر، توضح أنه لا يشير إلى أي كائن. تُستخدم مؤشرات Null روتينياً، خاصة في لغة C ولغة C++ حيث يستخدم compile-time constant (بالرغم من تفضيل الأعداد الصحيح للصفر في لغة C++ إلا أن لغة C++0x أدخلت nullptr constant لاستخدامه كبديل)، لتوضيح ظروف مثل القصور في successor للكائن الأخير في القائمة المرتبطة linked list، مع الحفاظ على بنية متسقة لنقاط القائمة. هذا الاستخدام لمؤشرات Null يمكن مقارنتها مع أنواع nullable ومع قيم null في قواعد البيانات الارتباطية ومع قيم Nothing في option type. قد اخترعت مراجع Nullable من قبل C.A.R. Hoare في عام 1965 كجزء من لغة Algol W. وقد وصف Hoare اختراعه لاحقاً (2009) بأنه «خطأ بمليار دولار»:
لقد أطلقت عليه خطأ المليار دولار الخاص بي. كان اختراع مرجع null في عام 1965. في هذا الوقت، كنت أصمم أول نظام النوع الشامل للمراجع في اللغة غرضية التوجه (ALGOL W). كان هدفي من ذلك هو التأكيد على أن كل استخدامات المراجع لابد وأن تكون آمنة، مع التحقق من التنفيذ التلقائي عن طريق المجمع. ولكن لم أستطع مقاومة الإغراءات لوضع مرجع null ببساطة لأن تنفيذه كان سهل جداً. أدى هذا إلى عدد لا يحصى من الأخطاء ونقاط الضعف ووقوع أعطال في النظام والتي ربما تسببت في مليار دولار من الألم والضرر في الأربعين سنة الماضية.
نظراً لعدم إشارة مؤشر null إلى أي كائن ذات معنى، فإن محاولة تتبع مؤشر null عادة ما يتسبب في ظهور خطأ بالتشغيل. إذا لم يتم التعامل مع هذا الخطأ فإن البرنامج يتوقف عن العمل على الفورً. في حالة لغة C على كمبيوتر عام، يتوقف التنفيذ من خطأ التجزئة segmentation fault لأن عنوان null الحرفي لا يقسم أبداً لبرنامج قيد التشغيل (يُمكن حدوث العديد من الأشياء مع برنامج لغة C في الأنظمة المدمجة embedded system). في لغة Java يشغل الولوج إلى مرجع null NullPointerException التي يُمكن الحصول عليها من خلال كود معالجة الخطأ، ولكن التطبيق المفضل هو التأكد من عدم حدوث هذه الاستثناءات مطلقاً. في اللغات الآمنة يمكن استبدال مؤشر null المحتمل بوحدات مرتبطة tagged union التي تفرض معالجة واضحة للحالة الاستثنائية؛ في الحقيقة يمكن رؤية مؤشر null على أنه مؤشر tagged pointer بإضافة محسوبة. توفر اللغات الأخرى، مثل لغة Objective-C، عملية إرسال الرسائل إلى عنوان nil (قيمة المؤشر الذي لا يشير إلى كائن صالح) دون التسبب في توقف البرنامج عن العمل؛ وسيتم تجاهل الرسالة ببساطة والقيمة المعادة (إذا وجدت) تكون صفر أو 0، اعتماداً على النوع.
يُضمن في برمجة لغة C ولغة C++، المقارنة العادلة بين مؤشرين null؛ تضمن لغة ANSI C أن أي مؤشر null يساوي 0 في مقارنة مع نوع العدد الصحيح؛ علاوة على ذلك يُعرَّف macro NULL على أنه مؤشر null ثابت، قيمته 0 (إما كأحد أنواع الأعداد الصحيح أو المحولة إلى مؤشر لـ void)، لذا سيقارن مؤشر null بالتساوي مع NULL.
وينبغي عدم الخلط بين مؤشر null والمؤشر الغير مهيأ: يُسمح لمؤشر null لمقارنة الغير متكافئ مع أي مؤشر صالح، بينما وفقاً للغة وتنفيذ المؤشر غير المهيأ قد تكون إما قيمة غير محددة (عشوائية أو قيمة بلا معنى) أو يمكن تهيئتها لثابت أولي (محتملة لكن ليس بالضرورة NULL).
تُعيد دالة malloc مؤشر null في معظم بيئات برمجة لغة السي C إذا لم يكن قادراً على تخصيص منطقة الذاكرة المطلوبة، والتي تنبه المتصل بعدم وجود ذاكرة كافية. بالرغم من ذلك بعض تطبيقات malloc(0) مع إعادة مؤشر null وبدلا من ذلك تحدد الفشل عن طريق إعادة مؤشر null وإدخال errno إلى قيمة مناسبة.
تقوم أنظمة الحاسب الآلي على tagged architecture القادرة على التفريق في الأجهزة بين تتبع Null والمحاولة المشروعة للولوج إلى كلمة أو بناء على العنوان صفر. في بعض بيئات لغة البرمجة (على الأقل تطبيق Lisp على سبيل المثال) القيمة المستخدمة على مؤشر null (يطلق عليها اسم nil في Lisp) ربما يكون مؤشر لقالب من البيانات الداخلية المفيدة للتطبيق (لكن لا يمكن الوصول إليها بشكل جلي من خلال برامج المستخدم)، لذا يُفيد السماح باستخدام نفس العدد الصحيح كثابت وكذلك الطريقة السريعة للولوج إلى تطبيقات التنفيذ. يُعرف هذا بأنه ناقل nil.
مؤشر Autorelative
مؤشر autorelative (أو self-relative) هو المؤشر الذي تُفسر قيمته كإزاحة من عنوان المؤشر نفسه؛ لذا، إذا كان هيكل البيانات M له مؤشر autorelative فالكائن p الذي يُشير إلى جزء من M نفسه فإن M ربما يعيد تخصيصها في الذاكرة من دون الحاجة إلى تحديث قيمة p.
مؤشر الارتكاز Based
مؤشر الارتكاز هو المؤشر الذي قيمته عبارة عن إزاحة من قيمة مؤشر آخر. يمكن استخدامه لتخزين وتحميل كتل من البيانات، محددة عنوان بداية الكتلة إلى مؤشر الارتكاز.
المراوغة المزدوجة
في بعض اللغات يمكن أن يشير المؤشر إلى مؤشر آخر، يتطلب عمليتان للتتبع للوصول للقيمة الأصلية. بينما كل مستوى من المراوغة ربما يضيف تكلفة أداء، وأحياناً ضرورية لتقديم سلوك صحيح لهياكل البيانات المعقدة. على سبيل المثال، في لغة C تُعرَّف القائمة المرتبطة من حيث الكائن الذي يحتوي مؤشر للكائن التالي في القائمة:
معركة الرياض (1902)
معركة الرياض وتسمى أيضاً فتح الرياض هي معركة وقعت في 5 شوال 1319 هجرياً والذي يوافق 15 يناير 1902، في قلعة المصمك في الرياض، عاصمة المملكة العربية السعودية في الوقت الحاضر. وكانت بين عبد العزيز آل سعود ابن عبد الرحمن بن فيصل بن تركي آل سعود آخر حكام الدولة السعودية الثانية، وعجلان بن محمد العجلان أمير الرياض التابع لعبد العزيز بن متعب بن عبد الله الرشيد أمير إمارة آل رشيد.
مؤشر (برمجة)
المراوغة المزدوجة
يستخدم هذا التطبيق مؤشر للكائن الأول في القائمة كبديل للقائمة ككل. إذا أضيفت قيمة جديدة إلى بداية القائمة يجب تغيير المقدمة للإشارة إلى الكائن الجديد. بما أن براهين C تمرر عادة بالقيمة، يتيح استخدام المراوغة المزدوجة بتنفيذ الإدخال بصورة صحيحة، وبه الآثار الجانبية المرغوبة للقضاء على كود الحالة الخاصة للتعامل مع المدخل في أول القائمة:
معركة الرياض (1902)
كانت الرياض تحت حكم آل سعود وعاصمة لدولة السعودية الثانية، حتى سقطت تحت حكم آل رشيد بعد انتصارهم على الإمام عبد الرحمن آل سعود. وتم نفي عائلة آل سعود خارج نجد. فانتقلت عائلة آل سعود إلى قطر ثم البحرين ثم إلى محطتهم الأخيرة الكويت. حتى أعدّ عبد العزيز آل سعود عُدّته ووضع خطته لإستعادة الرياض، فإتجه من الكويت إلى الرياض، يوم 20 رمضان 1319هـ، فوصل إلى مشارفها في الأول من شوال 1319هـ، واقتحم عبد العزيز آل سعود قصر المصمك بعد صلاة الفجر وقتل عجلان بن محمد العجلان وقطع رأسه ورماه على أهل الرياض، وتم الإعلان عن تأسيس الدولة السعودية الثالثة بعد المعركة في 5 شوال 1319هـ، الموافق 15 يناير 1902 ميلادياً. ويُعد فتح الرياض اللبنة العسكرية والسياسية الأولى، في تأسيس المملكة العربية السعودية، على يد الملك عبد العزيز آل سعود.
خلفية تاريخية
لقد كانت نهاية الدولة السعودية الثانية تدريجية، فقد كانت تلك الدولة قبل سقوطها دولة قوية في كيانها السياسي في شبه الجزيرة العربية في عهد أحد أبرز أئمتها وهو الإمام فيصل بن تركي بن عبد الله آل سعود في فترة حكمه الثانية، إلا أن تلك الدولة أخذت في التآكل والتصدع نتيجة لعدة عوامل داخلية، تأتي في الفتنة المحلية التي أعقبت عهد هذا الإمام في مقدمتها. وكانت النتيجة الحتمية سقوط تلك الدولة بعد أن تفسخت مناطقها، فاجتاح العثمانيون منطقة الأحساء، واجتاح آل رشيد كل البلاد النجدية، فأنهى آل رشيد حكم آل سعود في كل نجد، رغم أن إمارة آل رشيد كانت قد نشأت بمساندة ودعم من الإمام فيصل بن تركي بن عبد الله آل سعود لأميرها عبد الله بن علي الرشيد حين عينه أميراً على جبل شمر. ومنذ ذلك الحين والإمارة الرشيدية قائمة، تلك الإمارة التي قوضت دعائم الحكم السعوديّ في نجد ثُمَّ أسقطته في عهد الإمام عبد الرحمن بن فيصل بن تركي آل سعود آخر أئمة الدولة السعودية الثانية بعد معركة المليداء، ومعركة حريملاء بين عبد الرحمن آل سعود إمام الدولة السعودية الثانية، وآل رشيد أمراء إمارة جبل شمر، حيث فشل الإمام عبد الرحمن آل سعود في هزيمة آل رشيد، فانهزم الإمام عبد الرحمن آل سعود ومن معه وتشتت قواته وقُتل في تلك المعركة عدد من آسرة آل سعود، واحتلت الرياض من قبل آل رشيد، وغادرت عائلة آل سعود الرياض إلى قطر ثم البحرين ثم إلى الكويت واستقبلهم أميرها مبارك الصباح. وانتهت الدولة في أوائل أغسطس 1891م.
مؤشر (برمجة)
المؤشرات البدائية
المؤشرات البدائية هي المؤشرات التي لم يتم تهيأتها بعد (لا يوجد عنوان محدد للمؤشر البدائي) ربما تتسبب مثل هذه المؤشرات في تعطيل البرنامج أو العمل بطريقة بدائية. تُشير المؤشرات التي لم يتم تهيأتها في لغات برمجة Pascal أو لغة السي C إلى عناوين غير متوقعة في الذاكرة.
يوضح مثال الكود التالي مؤشر بدائي:
معركة الرياض (1902)
الموقف السياسي
كان الموقف السياسي، آنئذٍ، يتلخص في النقاط التالية:
مؤشر (برمجة)
المؤشرات البدائية
هنا، ربما تشير p2 إلى أي مكان في الذاكرة، لذا أداء المهمة *p2 = ‘b’ سيفسد منطقة غير معروفة من الذاكرة التي ربما تحتوي على بيانات حساسة.
معركة الرياض (1902)
المحاولة الأولى
جاءت المحاولة الأولى لاستعادة عاصمة الدولة (الرياض) في عام 1318هـ (1901م) عندما تحرك الشيخ مبارك الصباح على رأس جيش كبير ومعه عبد الرحمن بن فيصل لمحاربة ابن رشيد، وعندما وصل الجيش إلى (الشوكي) في الدهناء استغل الملك عبد العزيز هذه الفرصة واستطاع إقناع والده ومبارك الصباح بأن يذهب على رأس سرية من رجاله لفتح الرياض وبذلك يضطّر ابن رشيد إلى أن يقاتل بجيشه على جبهتين مختلفتين مما يضعف صفوفه ويزيد من فرص الانتصار عليه، فأذنا له بالسير إلى هناك فقطع المسافة ما بين الشوكي والرياض في يوم. علمت حامية ابن رشيد بالأمر وخرجت للتصدي له بقيادة من عينه ابن رشيد على الرياض (الأمير عبد الرحمن بن ضبعان) فقاتلها عبد العزيز وهزمها ودخل المدينة، ثم لجأت الحامية إلى داخل القصر (المصمك) وتحصّنت فيه فحاصرها الملك عبد العزيز وباشر في حفر نفق إلى داخل القصر وفي الجهة الأخرى دارت الحرب الطاحنة بين ابن رشيد والشيخ مبارك في مكان يسمى الصريف في القصيم على مقربة من الطرفية في 17 ذي الحجة سنة 1318هـ الموافق 7 أيار (مارس) 1901م، كان النصر فيها من نصيب ابن رشيد وقواته فعاد مبارك الصباح إلى الكويت ومعه عبد الرحمن بن فيصل الذي أرسل إلى ولده الملك عبد العزيز يحذره ويطلب منه ترك محاصرة الرياض والعودة بمن معه إلى الكويت خوفا عليهم من قوات ابن رشيد بعد نشوة هذا الانتصار.
مؤشر (برمجة)
الشعبة البدائية
حيث يستخدم المؤشر كعنوان لنقطة الدخول لبرنامج أو بداية لروتين كما أنه يكون إما غير مهيأ أو فاسد، إذا تم الاتصال أو القفز مع ذلك إلى هذا العنوان، فيقال أنه تفسد «الشعبة البدائية». والعواقب دائماً غير متوقعة وربما يظهر الخطأ نفسه بعدة طرق مختلفة اعتماداً على إذا كان المؤشر عنوان صالح أم لا وإذا كان هناك (من قبيل الصدفة) إرشاد صالح (شفرة تشغيل) على هذا العنوان. يمكن أن يوضح اكتشاف الشعبة البدائية أحد أصعب عمليات التصحيح وأكثرها إحباطاً حيث أنه ربما تم بالفعل تدمير كثير من الأدلة من قبل أو عن طريق تنفيذ واحد أو أكثر من التعليمات الغير مناسبة في موقع الشعبة. في حالة ما إذا كان متاحاً، يمكن ألا تكون محاكاة مجموعة التعليمات عادة تضبط فقط الشعبة البدائية قبل دخولها حيز التنفيذ، لكن تقدم أيضاً تتبع كامل أو جزئي لتاريخها.
المحاكاة باستخدام فهرس المصفوفة
من الممكن محاكاة سلوك المؤشر باستخدام فهرس المصفوفة (عادة بعد واحد). بدايةً للغات التي لا تدعم المؤشرات بوضوح ولكن تدعم المصفوفات، يمكن اعتبار المصفوفة ومعالجتها كما لو كانت نطاق الذاكرة بالكامل (في نطاق مصفوفة محددة) وأي فهرس يمكن اعتباره مكافئ لسجل الغرض العام في لغة التجميع (يشير هذا إلى البايت الفردي ولكن التي تناسب قيمته الفعلية لبداية المصفوفة، ليس عنوانه المطلق في الذاكرة). على افتراض أن المصفوفة هي هيكل بيانات 16 ميجا بايت مترابط، وحدات البايت الفردي (أو سلسلة من وحدات البايت المرتبطة في المصفوفة) يمكن عنونتها مباشرة ومعالجتها باستخدام اسم المصفوفة مع العدد الصحيح 31 بايت الغير موقع كمؤشر المحاكاة (يماثل هذا أمثلة مصفوفات اللغة C الموضحة سابقاً). يمكن محاكاة المؤشر الحسابي بالإضافة أو الطرح من الفهرس، مع الحد الأدنى من الإضافات العامة التي تُقارن بالمؤشر الحسابي الحقيقي. حتى انه من الممكن نظرياً، استخدام التقنية السابقة مع جهاز المحاكاة مجموعة الإرشادات لمحاكاة أي كود آلة أو الوسطية (كود البايت) لأي معالج/ لغة في لغة أخرى التي لا تدعم المؤشرات مطلقاً (على سبيل المثال، لغة Java / لغة JavaScript). لتحقيق هذا، يمكن تحميل الشفرة الثنائية بدايةً إلى وحدات بايت مرتبطة من المصفوفة لمحاكاة «القراءة»، التفسير والعمل كلياً مع الذاكرة المحتوية على نفس المصفوفة. إذا كان ضرورياً، لتجنب مشاكل تجاوز سعة المخزن كليةً يمكن للتدقيق الفائق العمل للمجمع (أو إذا لم يكن، كتابة الكود في جهاز المحاكاة)
معركة الرياض (1902)
الحشد للرياض
وسمحت الفرصة للشاب عبد العزيز بن عبد الرحمن بن فيصل آل سعود، وهو في الكويت، ان يخوض أولى تجاربه العسكرية، ففي الأشهر الأولى من عام 1318هـ - يونيه 1900م، قام شيخ الكويت، الشيخ مبارك بن صباح بحشد قواته، في منطقة الجهراء، استعداداً لمحاربة ابن رشيد. وكان الإمام عبد الرحمن بن فيصل، ضمن جيش الشيخ مبارك، يرافق ابنه، عبد العزيز، في هذه الحملة. ووصل الجيش إلى مكان في نجد، يسمى«الشوكي»، على بُعد مئة وستين ميلاً عن الرياض، إلى جهة الشمال الشرقي منها. وفي ذلك المكان، فارق عبد العزيز جيش الشيخ مبارك، وسار على رأس قوة صغيرة، متجهاً إلى الرياض، أملاً في انتزاعها من عبد الرحمن بن ضبعان، الأمير المعين عليها من قبل ابن رشيد. وقد تمكن عبد العزيز من الوصول إلى الرياض، بعد يومَين فقط. ودخل الرياض دون صعوبة، ثم بدأ بحصار أميرها، الذي اعتصم بقصر المصمك. وعلى أثر هزيمة الشيخ مبارك في معركة الصريف، التي حدثت في 17 مارس 1901م، فك عبد العزيز الحصار المضروب على قصر المصمك، وغادر الرياض، قافلاً إلى الكويت. بعد حصول الأمير عبد العزيز على موافقة والده، وتأييد الشيخ مبارك بن صباح، خرج من الكويت، غازياً، في النصف الأول من عام 1319هـ - 1901م، بعد أن جهزه شيخها ببعض الأسلحة والمؤن والركائب. وبدأ الأمير عبد العزيز رحلته إلى الرياض، ومعه عدد من أقربائه ومؤيديه، يرجح أنهم لا يزيدون على الأربعين، إلا قليلاً.
مؤشر (برمجة)
لغة Ada
Ada هي لغة كتابة قوية حيث أن جميع المؤشرات تكتب ويسمح فقط بالمحادثة المكتوبة الآمنة. تهيأ جميع المؤشرات افتراضياً إلى null، وأي محاولة للولوج إلى البيانات عن طريق مؤشر null يسبب ظهور استثناء. تسمى المؤشرات في لغة Ada بأنماط الولوج. لا تسمح لغة Ada 83 بالحسابات على أنماط الولوج (على الرغم من أن العديد من الموردين المقدمين لها كميزة غير معيارية)، لكن لغة Ada 95 تُدعم الحسابات «الآمنة» على أنماط الولوج عبر حزمة System.Storage_Elements.
لغة Basic
لا تدعم لغة Basic المؤشرات بصورة عامة. اللهجات الحديثة في لغة Basic، مثل FreeBASIC أو BlitzMax لديها تطبيق شامل للمؤشر. في FreeBASIC، تُعامل حسابات مؤشرات ANY (تعادل void* في لغة C) كما لو كان مؤشرANY نطاقه 1 بايت. لا يمكن تتبع مؤشرات ANY، كما في لغة C. أيضاً، الإلقاء بين ANY وأي مؤشر من نوع آخر من المؤشرات لن يسبب أي مخاطر.
معركة الرياض (1902)
الحشد للرياض
توجهوا عبر الإحساء نحو الجنول إلى الربع الخالي. وفي الطريق اجتذب هذا الفصيل محاربين من قبائل العجمان وآل مرة وسبيع والسهول. وتحول الفصيل إلى قوات من عدة آلاف شخص. وأخذ عبد العزيز يغزو بهذه القوات القبائل المعادية وقرى نجد التي ظلت موالية لآل الرشيد.
مؤشر (برمجة)
لغة C ولغة C++
المؤشرات في لغة C ولغة C++ هي المتغيرات التي تخزن العناوين ويمكن أن تكون null. يسير كل مؤشر إلى نوع خاص به، ولكن يمكن للفرد التنقل بحرية بين أنواع المؤشرات، على الرغم من أن السلوك هو تطبيق معروف. يسمح نوع خاص من المؤشرات يطلق عليه «مؤشر void» بالإشارة إلى أي نوع من المتغيرات، ولكن تحده حقيقة أنه لا يمكن تتبعه مباشرةً. غالباً يمكن معالجة العنوان نفسه مباشرة بإلقاء مؤشر من وإلى نوع متكامل بحجم مناسب، على الرغم من أن النتائج هي تطبيقات معروفة ويمكن أن تتسبب في سلوكيات غير معروفة؛ بينما لا يوجد لدى معايير لغة C السابقة نوع متكامل الذي ضُمن أن يكون كبير بدرجة كافية، لغة C99 تحدد اسم uintptr_t typedef المعرَّفة في <stdint.h>، لكن لا يحتاج التطبيق لتوافرها.
معركة الرياض (1902)
الحشد للرياض
وكان الإمام عبد الرحمن، قد اجتمع بابنه، عبد العزيز، قبل خروجه من الكويت. وقال لـه: «تـرى يا عبد العزيز، ما قصدي، أن أقف في سبيل إقدامك. ولكن، كما ترى، موقفنا وحالنا، يقضيان باستعمال الحكمة في إدارة أمرنا. أمَا وقد عزمت، فأسأل الله العون والظفر».
مؤشر (برمجة)
لغة C ولغة C++
تدعم لغة ++C بالكامل مؤشرات لغة السيC وتحويل نوع المتغير typecasting لغة C. كما تدعم مجموعة جديدة من مشغلات التحويل نوع المتغير typecasting للمساعدة في التقاط بعض الاشكال الخطيرة في الوقت الواحد. كما تقدم المكتبة المعيارية للغة C++ auto ptr نوع من المؤشرات الذكية الذي يمكن استخدامه في بعض المواقف كبديل آمن للمؤشرات الأولية في لغة C. كما تدعم لغة C++ شكل آخر من المرجع، مختلف عن المؤشر يطلق عليه ببساطة المرجع أو نمط المرجع.
المؤشر الحسابي هو القدرة على تعديل عنوان المؤشر المستهدف بعمليات حسابية (وكذلك مقارنات الحجم) ويقتصر على معايير اللغة للبقاء ضمن حدود كائن المصفوفة الواحدة (أو فقط بعد ذلك)، على الرغم من أن العديد من الهياكل المتكاملة ستسمح بالمزيد من التساهلات الحسابية. الإضافة أو الطرح من مؤشر يحركه بمضاعفات الحجم من نوع البيانات التي تشير إليها. على سبيل المثال، إضافة 1 إلى مؤشر قيمته 4 بايت سيزيد المؤشر بمقدار 4. وهذا له تأثير في زيادة المؤشر للإشارة إلى الكائن التالي في المصفوفة المرتبطة من الأعداد الصحية- غالباً ما تكون هذه هي النتيجة المطلوبة. لا يمكن للمؤشر الحسابي الأداء على مؤشر void لأن نوع void ليس له حجم، وبالتالي لا يمكن إضافة العنوان المشار إليه، عل الرغم من أن gcc وغيرها من المجمعات ستؤدي حسابات البايت على void* كامتداد غير معياري. للعمل مباشرةً مع وحدات البايت يلقوا عادةً المؤشرات إلى BYTE*، أو char* غير الموقعة إذا لم تُعرَّف BYTE في المكتبة المعيارية المستخدمة.
معركة الرياض (1902)
الحشد للرياض
عندما علم ابن متعب بأعماله بعث برسائل إلى السلطات العثمانية في بغداد والبصرة طالبا إبعاد عبد العزيز عن الإحساء. وعلم البدو بذلك فتركوا الأمير الشاب خشية بطش الأتراك. فظل عبد العزيز مع جماعته الأولى التي لايتجاوز عددها الأربعين شخصا. وأدرك عبد الرحمن أن أعمال إبنه تتحول إلى مغامرة خطرة فطلب منه العودة إلى الكويت والتخلي عن خطة الاستيلاء على الرياض. وأرغمت السلطات التركية في الإحساء فصيله على ترك المنطقة. وقضى عبد العزيز شهر رمضان في واحة يبرين. يبدو أن ابن متعب لم يعر اهتماما كبيرا لهجمات الأمير الشاب، مما أفاد هذا الأخير. وقرر عبد العزيز المجازفة مرة أخرى رغم ممانعة أبيه. وفي 12 كانون الثاني (يناير) 1902 ظهر في أطراف عاصمة السعوديين السابقة.
مؤشر (برمجة)
لغة C ولغة C++
يقدم المؤشر الحسابي للمبرمج طريقة واحدة للتعامل مع مختلف الأنواع: إضافة وطرح رقم الكائن المطلوب بدلاً من الإزاحة الفعلية بوحدات البايت. (مع ذلك مؤشر char، يُعرف char بأنه الحصول دائما على حجم بقيمة 1 بايت، يسمح بإزاحة الكائن من المؤشر الحسابي إلى الممارسة ليتساوى مع إزاحة البايت الواحد) على وجه الخصوص، يوضح تعريف لغة Cصراحةً أن الصيغة a[n] حيث أن n-th كائن في المصفوفة a، تكافئ *(a+n) وهو محتوى الكائن المشار إليه بواسطة a+n. يعني هذا أن n[a] يتساوى مع n[a] ويمكن كتابة مثلاً a[3] أو [a]3 سيلج كلاهما إلى الكائن الرابع من المصفوفة A.
معركة الرياض (1902)
الحشد للرياض
وبعد أن أخذ قسطا من الراحة في واحة صغيرة ترك فيها جماعة من أفراده من الإبل والخيل وأوصاهم بالفرار إذا لم يعد في الفجر. أما الباقون فتوجهوا إلى أسوار المدينة. وفي ظلام الليل اجتاز المحاربون وعلى رأسهم عبد العزيز سور المدينة في منطقة (الشمسية)، وتركوا احتياطيا عشرة رجال وتوجهوا إلى صاحبهم جويسر الذي كان يعيش قرب منزل الحاكم الشمري عجلان بن محمد. كان عجلان متزوجا سراً من إحدى نساء الرياض وكان يعودها نهارا، ويفضل قضاء الليل مع الحامية التي يوجده فيها زهاء 80 شخصا في حصن المصمك. أطعم جويسر عبد العزيز ورجاله ثم تسللوا إلى منزل زوجة عجلان. لم يجدوا عجلان فيه، ولكنهم حبسوا زوجته وامرأة أخرى في إحدى الغرف. واستدعى عبد العزيز شقيقه محمد مع الرجال العشرة الذين تركهم وراء سور المدينة. واجتمع الفصيل كله في منزل عجلان. وقالت زوجته أنه يمكن أن يأتي إليها بعد صلاة الصبح فقرروا الانتظار. وبلغ التوتر أوجه هذه الجماعة الصغيرة التي كانت تشعر تماما بالصيغة المغامرة لأعمالها.
مؤشر (برمجة)
لغة C ولغة C++
بينما يمكن للمؤشر الحسابي أن يكون مصدر bugs الحاسب الآلي. فإنه يميل إلى إرباك المبرمجين المبتدئين، مما يضطرهم إلى سياقات مختلفة: يمكن أن يكون تعبير حسابي عادي أو أن يكون تعبير مؤشر حسابي، وأحياناً من السهل عمل خطأ في أحدهما للآخر. واستجابة لهذا، العديد من لغات الحاسب الآلي الحديثة المتقدمة (على سبيل المثال Java) لا تسمح بالولوج المباشر إلى الذاكرة باستخدام العنوان. كذلك، تتناول لهجة لغة C الآمنة Cyclone العديد من الموضوعات المتعلقة بالمؤشرات. راجع لغة البرمجة C للمزيد من الانتقادات. مؤشر void أو void* يُدعمه ANSI لغة C ولغة C++ كنوع مؤشر عام. مؤشر void يمكنه تخزين عنوان لأي نوع بيانات وفي لغة C يتحول ضمنياً إلى أي نوع آخر من المؤشرات أثناء المهمة، ويجب أن يلقى صراحة إذا كان تتبع المؤشر ضمني. K&R تستخدم لغة C char* لغرض «المؤشر agnostic» (قبل ANSI C).
معركة الرياض (1902)
الطريق إلى الرياض
تحرك عبد العزيز بن عبد الرحمن وأتباعه، الذين بلغ عددهم أربعين، وقيل ستين، رجلاً، في 21 رمضان سنة 1319هـ - 2 يناير 1902م، من واحة يبرين، قاصدين الرياض، وفي نيتهم شيء واحد، هو المغامرة باقتحام قصرالمصمك، وهو مقر الحاكم.
مؤشر (برمجة)
لغة C ولغة C++
لا تسمح لغة C++ بالتحويل الضمني لـ void* إلى نوع آخر من المؤشرات، حتى أثناء المهمات. كان هذا قرار في التصميم لتجنب الإهمال وحتى الاشكال غير المرغوبة، مع ذلك معظم المجمعين يستخرجون التحذيرات فقط وليس الأخطاء عند مواجهة إلقاءات أخرى سيئة.
معركة الرياض (1902)
الطريق إلى الرياض
خرج الأمير عبد العزيز بن عبد الرحمن آل سعود على رأس حملة صغيرة من ستين رجلاً من أقاربه والمؤيدين لمشروعه الكبير الرامي إلى إعادة ملك آل سعود ليس في نجد فقط، وإنما في كل البلاد التي كانت قبل ذلك تشكل جزءًا من أجزاء الدولتين السعوديتين الأولى والثانية.
مؤشر (برمجة)
لغة C ولغة C++
في لغة C++، لا يوجد void& (مرجع لـ void) لاستكمال void*، لأن المراجع تتصرف مثل الأسماء المستعارة للمتغيرات التي تشير إليها، ولا يمكن وجود متغير من نوع void.
معركة الرياض (1902)
الطريق إلى الرياض
اتجه الأمير عبد العزيز بن عبد الرحمن بن فيصل آل سعود ومن معه صوب الرياض. وأقام الأمير وقوته الصغيرة فترة قصيرة في يبرين وهي واحة في الجافورة على أطراف الربع الخالي في رجب عام 1319هـ، الموافق أكتوبر 1901م. وكان الأمير عبد العزيز بن عبد الرحمن بن فيصل آل سعود قد وضع خطة عسكرية لدخول الرياض واستردادها من قوات ابن رشيد، فقد وضع نصب عينه ألا يلتقي مواجهة مع قوات ابن رشيد التي تفوق قواته عدداً وعتاداً وتدريباً. وقرر أن يكون تزود قواته من البلدان والقرى التي يمر بها أو يصل بالقرب منها، لأن قواته قليلة العدد من جهة، وليس لديها وسائل نقل من الإبل كافية لحمل الزاد الكثير والمعدات والعتاد، ولو فعل ذلك لربما انكشف أمره لابن رشيد. واعتمدت خطة عبد العزيز على أسلوب المباغتة في الحرب وعلى عنصر السرعة في الأداء بالإضافة إلى التحرك في الليل والنوم والاختفاء وقت النهار حتى لاينكشف أمره فتضيع الفرصة الذهبية منه. حيث بقي متخفياً، حتى 20 رمضان 1319هـ - 1 يناير 1902م. حتى أنطلق من الجافورة في 21 رمضان 1319هـ - 2 يناير 1902م إلى "أبي الجفان ووصل إليها في 29 رمضان 1319هـ - 10 يناير 1902م، وصل الأمير عبد العزيز إلى ضلع الشقيب، على مقربة من الرياض. في 4 شوال 1319هـ / 14 يناير 1902م، وقسم قواته، استعداداً لاقتحام الرياض.
مؤشر (برمجة)
لغة C#
في لغة برمجة C#، تُدعم للمؤشرات تحت شروط معينة: أي كتلة من الكود المتضمنة المؤشرات لابد من الإشارة عليها بعلامة غير آمن. تتطلب مثل هذه الكتل أذونا أمان أعلى من المسموح بها لتشغيلها. الصيغة هي نفسها الموجودة في لغة C++ والعنوان المشار إليه يمكن أن يكون إما ذاكرة متحكم بها أو غير متحكم بها. مع ذلك، مؤشرات الذاكرة المتحكم بها (أي مؤشر لكائن متحكم به) يجب الإعلان عنها باستخدام كلمة أساسية ثابتة، والتي تمنع garbage collector من تحريك الكائن المشار إليه كجزء من التحكم بالذاكرة بينما يكون المؤشر في النطاق وهذا يحافظ على صلاحية العنوان.
استثناء هذا من استخدام بنية IntPtr وهو تحكم آمن يتساوى مع int* ولا يتطلب كود عدم الأمان. يستعاد هذا النوع غالباً عند استخدام طرق من النظام. Runtime.InteropServices على سبيل المثال:
معركة الرياض (1902)
الطريق إلى الرياض
بدأ عبد العزيز رحلة العودة إلى الرياض، مزوداً بالكثير من الدعوات والعزيمة، وقليل مما من سواهما، تاركاً أول أبنائه، تركياً، رضيعاً في الكويت. فاتجه عبد العزيز إلى الصحراء القريبة من الأحساء. وكانت خطته ترمي أولاً إلى ضرب العشائر المعادية لأبيه، والموالية لابن رشيد، في محاولة منه لإقناع القبائل، الصديقة والمحايدة، بالانضمام إليه. وقد أثمرت تلك الخطة، وانضم إليه عدد لا بأس به من المحاربين، من قبائل مختلفة، مثل العجمان وسُبيع والسهول وآل مرة، حتى وصل عدد أتباعه إلى حوالي ألف راكب ذلول، وأربعمائة خيال. وقام عبد العزيز ببعض الغارات الموفقة، على بعض العشائر في نجد. ثم عاد إلى أطراف الأحساء، التي كان يمون جيشه الصغير منها. ولئن زادت هذه الغارات من عدد أتباع عبد العزيز، من طالبي الكسب، فإنها لفتت نظر الأمير عبد العزيز بن متعب بن رشيد، أمير حائل، إلى خطر هذا الوضع، الأمر الذي جعله يطلب من العثمانيين طرد عبد العزيز وأتباعه من نواحي الأحساء. وقد فعلت الدولة العثمانية ما أراده ابن رشيد، ومنعت عبد العزيز من التمون من الأحساء. وقد أدى هذا الإجراء العثماني إلى تفرق أتباعه من البدو، وجعله في موقف صعب. وبقي عبد العزيز في الصحراء، بلا تموين، ومع قليل من الأتباع، إذ تخلى عنه كل من انضم إليه، طالباً للكسب، بعد ما أدركوا ما سيتعرضون له من عقوبات اقتصادية عثمانية، من جراء انضمامهم إلى جيشه. فتوجه بأتباعه إلى منطقة يبرين، الواقعة بين قطر والربع الخالي، ليرسم خططه المستقبلية، بتمعن وروية.
مؤشر (برمجة)
لغة COBOL
مساحة الذاكرة لكل كائن بيانات مشار إليه يقسم ديناميكياً عادةً باستخدام بيانات الاتصال الخارجي أو عن طريق بناء اللغة الموسع المتكامل مثل بيانات EXEC CICS أو EXEC CICS. كما تقدم الإصدارات الممتدة من COBOL متغيرات المؤشر المعلن عنه في شروط استخدام المؤشر. فيم مثل هذه المؤشرات تحددت وعدلت باستخدام بيانات SET و SET ADDRESS. كما تقدم بعض الإصدارات الممتدة من لغة COBOL متغيرات PROCEDURE-POINTER القادرة على تخزين عنوان الكود القابل للتنفيذ.
لغة D
لغة البرمجة D مشتقة من لغة C ولغة C++ وهي تؤيد مؤشرات C وتحويل نوع المتغير typecasting C تأييداً كاملاً.
معركة الرياض (1902)
الطريق إلى الرياض
وكانت الدولة العثمانية قد اتخذت إجراء آخر، ضد الإمام عبد الرحمن، إذ قطعت معاشه، الذي كان يتقاضاه، أثناء إقامته في الكويت، فتكالبت هذه المشاكل على عبد العزيز، وهو في واحة يبرين.
مؤشر (برمجة)
لغة Eiffel
تدعم اللغة الوجهة Eiffel المؤشرات في شكل المراجع، التي تكتب ولا تسمح بأي شكل من أشكال المؤشر الحسابي. معيار ECMA من لغة Eiffel يتضمن آلية «النوع المرفق» التي تدَّعي ضمان سلامة void.
لغة Fortran
توضح لغة Fortran-90 قدرة المؤشر الكتابي القوية. تحتوي مؤشرات Fortran على أكثر من مجرد عنوان ذاكرة بسيط. كما تنطوي على الحدود العليا والدنيا من أبعاد المصفوفة، الخطوات (على سبيل المثال لدعم أقسام المصفوفة التعسفية)، وغيرها من البيانات الوصفية. المشغل المنتسب، => يستخدم لينسب المؤشر إلى متغير له صفة الهدف. بيانات تخصيص لغة Fortran-90 يمكن استخدامها أيضا لنسب المؤشر إلى كتلة من الذاكرة. على سبيل المثال، يمكن استخدام الكود التالي لتعريف وتكوين هيكل قائمة مرتبطة:
معركة الرياض (1902)
استرداد الرياض
أصبحت الرياض قاعدة للحكم آل سعود، بعد أن اتخذها الإمام تركي بن عبد الله آل سعود عاصمة له، سنة 1240هـ - 1824م ، بدلاً من الدرعية. واستمرت عاصمة الدولة السعودية الثانية، إلى سقوطها، سنة 1309هـ- 1891م ، لتصبح، بعد ذلك، واحدة من البلدان، التي تخضع لحكم ابن رشيد في نجد. ولكن الرياض لها تاريخها العريق في أذهان الناس، خاصة في نجد، لكونها قاعدة للحكم السعودي، ورمزاً إلى شرعية ذلك الحكم. ولهذا، فقد قرر عبد العزيز، أن يهاجمها، يشجعه على ذلك تأييد أهلها له ولأسرته، ولرغبتهم في التخلص من حكم ابن رشيد، الذي سامهم سوء العذاب، بعد محاولة عبد العزيز الأولى، لاسترداد البلدة.
مؤشر (برمجة)
لغة Fortran
تضيف لغة Fortran-2003 دعم للمؤشرات الإجرائية. كذلك، كجزء من ميزة التشغيل المتداخل في لغة C تدعم لغة Fortran-2003 الوظائف الجوهرية لتحويل أنواع مؤشرات C إلى مؤشرات Fortran وإعادتها.
معركة الرياض (1902)
خطة الهجوم
واصل عبد العزيز بن عبد الرحمن، ورفاقه، السير الحثيث، يستريحون نهاراً، ويسيرون ليلاً، حتى بلغوا مكاناً، يقال له «الشقيب»، من ضواحي الرياض، في 5 شوال 1319هـ - 15 يناير 1902م. ووضع عبد العزيز بن عبد الرحمن بن فيصل آل سعود قرب الرياض خطة للهجوم، فقسم قواته إلى ثلاثة مجموعات:
مؤشر (برمجة)
لغة Go
تحتوي لغة Go على مؤشرات. تتماثل صيغتها المعلنة مع مؤشرات لغة C، ولكن تكتب بالعكس، منتهية بالنوع. على عكس لغة C، لدى Go garbage collection ولا تسمح بالمؤشر الحسابي. لا يمكن تعريف أنواع المرجع مثل لغة C++ لكن يتم تمرير بعض الأنواع الضمنية عن طريق المرجع؛ يجب أن تتكون تلك بجعل الكلمة الأساسية بدلاً من الجديدة. كطريقة مختلفة (عن أنواع المرجع) لتوحيد الصيغة بين المؤشر وغير المؤشر، انخفض مشغل السهم (->)والمجمع يعرف فقط أن المبرمج يعني تتبع المؤشر باستخدام مشغل النقطة (.) (بينما على لغة C ولغة C++ سيكون هذا خطأ كامل).
معركة الرياض (1902)
خطة الهجوم
حل صباح 15 يناير 1902 ، وخرج عجلان بن محمد من قصر المصمك، بعد شروق الشمس، ومعه عدة رجال، أطلق عليه عبد العزيز النار من بندقيته، فلم يقتله. ثم تتابع الرصاص من الباقين، صائحين صيحة، ملأت البلد: (أهل العوجا.. أهل العوجا) وتعقبوا عجلان ورجاله. وتمكن عبد العزيز من إمساك رِجل، عجلان، وهو يحاول العودة إلى القصر، وقد أدخل يديه ورأسه في فتحة باب القصر (الجوخة)، فرفس عبد العزيز، وأفلت من يديه. فازدحم عبد العزيز ورفاقه، عند باب القصر، والحامية تصب رصاصها عليهم. ودخل عبد الله بن جلوي القصر، في أثر عجلان، فأدركه جريحاً في مسجد القصر، فأجهز عليه برصاصة من بندقيته. وقُتل عدد من أتباعه. وتتابع رجال عبد العزيز في دخول القصر، فاضطر باقي رجال الحماية إلى الاستسلام. ونودي، في الرياض، أن الحكم لله، ثم لعبد العزيز بن عبد الرحمن آل سعود.
مؤشر (برمجة)
لغة Modula-2
يتم تطبيق المؤشرات كثيرا كما في Pascal، كذلك باراميترات VAR في الإجراءات يطلق عليها Modula-2 وهي أقوى كتابياً من Pascal، مع عدد قليل من الطرق للهروب من نظام الكتابة. بعض المتغيرات في لغة Modula-2 (مثل Modula-3) تحتوي على garbage collection.
معركة الرياض (1902)
خطة الهجوم
وبعد انتهاء معركة القصر، تتبع عبد العزيز رجال ابن رشيد، الذين كانوا خارج القصر وقتلهم. وخرج فهد بن جلوي، على جواد من خيل عجلان، وذهب إلى الرجال، الذين أبقوهم عند الرواحل، وأدخلهم البلدة.
مؤشر (برمجة)
لغة Pascal
على النقيض من العديد من اللغات التي تميز المؤشرات فإن معيار ISO Pascal يسمح فقط للمؤشرات بالإشارة إلى المؤشرات المكتوبة ديناميكياً والغير معروفة ولا يسمح لهم بالإشارة إلى المعيار الثابت أو المتغيرات المحلية. لا يوجد بها مؤشر حسابي. يجب أن تحتوي المؤشرات أيضاً على نوع مترابط والمؤشر من نوع ما لا يتفق مع المؤشر من نوع آخر (مثل مؤشر char لا يتفق مع مؤشر العدد الصحيح). يساعد هذا على القضاء على القضايا الأمنية المتأصلة تطبيقات المؤشر الآخر، تستخدم هذه خاصة للغة PL/I أو للغة C. كما أنها تزيل بعض المخاطر التي يسببها المؤشر المتدلي، ولكن القدرة على السماح الديناميكي للمساحة المتبعة باستخدام عملية معيار التصرف (الذي له نفس تأثير مثل وظيفة المكتبة الحرة الموجودة في اللغة C) مما يعني أن خطورة مؤشرات التدلي لم يتم القضاء عليها كلياً.
معركة الرياض (1902)
خطة الهجوم
لقد استفاد رجال عبد العزيز من عنصر المباغتة فانتقموا من الحامية الشمرية الموجودة في الحصن ، ثم قتلوا من كان في المدينة. وأطلق سراح عشرين من الشمريين بكلمة شرف بعد أن اعتصموا في البرج. وكانت خسائر الأمير الشاب هي قتيلان وثلاثة جرحى لاغير. وكان انتصاره الرائع غير المتوقع قد خلب ألباب أهالي نجد بالطبع ، وفيما بعد صار الشعراء والرواة يتغنون به في روايات وقصائد كثيرة. وأقسم أهل الرياض يمين الولاء لعبد العزيز الذي بدأ على الفور يتحصن أسوار المدينة. وعندما علم ابن متعب بنبأ سقوط الرياض استولى عليه الهيجان وأقسم بأن يثأر من أعدائه التقليديين. ونزح من الفرات الأوسط إلى حائل ليجمع العساكر ويتوجه إلى الرياض، إلا أن الاستعدادات استغرقت عدة أشهر.
مؤشر (برمجة)
لغة Pascal
مع ذلك في بعض المصادر التجارية والمفتوحة للغة Pascal (أو مشتقاتها) يسمح بتطبيقات مثل Free Pascal أو Turbo Pascal أو Object Pascal في Embarcadero Delphi – يسمح للمؤشر بالإشارة إلى المعيار الثابت أو المتغيرات المحلية ويمكن الإلقاء من نوع من المؤشرات إلى آخر. علاوة على ذلك، المؤشر الحسابي غير مقيد: الإضافة أو الطرح من المؤشر يحركه بمقدار هذا الرقم من وحدات البايت في كلا الاتجاهين، لكن استخدام إجراءات معيار Inc أو dec معه يحرك المؤشر بحجم نوع البيانات المصرح للإشارة إليه.
لغة البرمجة Perl
تدعم لغة برمجة Perl المؤشرات، على الرغم من ندرة استخدامها، في شكل وظائف من الحزم والتفريغ. تهدف هذه للتفاعلات البسيطة فقط مع مكتبات OS المجمعة. في جميع الحالات الأخرى، تستخدم لغة Perl المراجع المكتوبة والتي لا تسمح بوجود أي شكل من أشكال المؤشر الحسابي. فهي تستخدم لبناء تراكيب البيانات المعقدة.
معركة الرياض (1902)
خطة الهجوم
وبذلك خطى عبد العزيز بن عبد الرحمن بن فيصل آل سعود خطوته الأولى، لاستعادة حكم آبائه وأجداده، ومن ثم، توحيد معظم أجزاء شبه الجزيرة العربية. وفي ذلك التاريخ، 5 شوال 1319هـ - 15 يناير 1902م، بدأت الدولة السعودية الثالثة.
مبايعة الرياض
اندفع سكان الرياض إلى مبايعة حاكمهم الجديد، الذي أعاد الحق إلى أصحابه. ولم ينس الابن أباه، فأرسل عبد العزيز رفيقه، ناصر بن سعود، ليبشر الإمام عبد الرحمن، والشيخ مباركاً، في الكويت، بفتح الرياض، ويطلب المدد. وفي الوقت نفسه، شرع يحصن الرياض. وتمكن، بمساعدة أهلها، من بناء سور حصين للعاصمة، في أربعين يوماً، بعد أن كان هدمه ابن رشيد، على أثر معركة حريملاء، عام 1308هـ. وأمده والده والشيخ مبارك الصباح، بسبعين رجلاً وذخيرة، تحت قيادة أخيه، سعد بن عبد الرحمن الفيصل.
وبعد نجاح هذه المحاولة بداية حقيقية لتأسيس الدولة السعودية الثالثة (الحديثة)، ومنها تبدأ عملية توحيد البلاد في إطار دولة سعودية حديثة تعيد المناطق والأقاليم التي كانت تابعه للدولة السعودية الأولى والثانية. لقد كانت هذه المحاولة محاولة جادة وصعبة جداً، وهي مغامرة يحسب لها كل حساب لأن نجاحها غير مضمون ولامتوقع. ولذا وصفها الكاتب كنث وليمز بأنها طريقة تدل على براعة فائقة وحذق مدهش. ويصفها فؤاد حمزة بأنها من أروع قصص البطولة وأعظمها شأنًا وأجلها قدراً. ويصفها حافظ وهبة بأنها قصة تشبه قصص أبطال اليونان، وترينا عظم الأخطار التي أحاطت بابن سعود.
رعاشة أبنوسية
رعاشة أبنوسية أو رعاشة سوداء الأجنحة  هي  من الحشرات يتبع  الرعاشة من  الرعاشية.
كورا (هايبرماركت)
كورا هي شركة هولندية متخصصة في السوبرماركت.
واتيرفورد (كاليفورنيا)
واتيرفورد  هي إحدى مدن مقاطعة ستانيسلاوس، كاليفورنيا. تم إعطاءها لقب مدينة في 7 نوفمبر، 1969.
آرثر كونينغ
آرثر كونينغ هو  هولندي، ولد في 22 سبتمبر 1944 في أمستردام في هولندا، وتوفي بنفس المكان في 10 يوليو 2015.
محمد سليم رشدان
محمد سليم رَشدان (1921 - قبل 2004) شاعر أردني. ولد في مدينة السلط. حصل على شهادة الماجستير في الأدب واللّغات العّامية. عمل مدرّسًا للّغة العربية في فلسطين، والعراق وسوريا والأردن وتقلّب في عدّة وظائف في التوجية التربوي. أشرف على تحرير مجلّة رسالة المعلم وأنشأ مجلة أرض الإسراء وتولّى إدارتها نحو عشرة أعوام. كان يجيّد الإنكليزية والفارسيّة. له دواوين شعرية ومجموعات قصصية ومؤلفات عدة وكتب مترجمة عن الفارسية والإنكليزية. تاريخ وفاته غير معلوم لكنه قبل 2004.
سيرته
ولد محمد سليم رشدان سنة 1921 أو يقال في 1918 في مدينة السلط. درس في الجامعة الأمريكية في بيروت، ومعهد الدراسات الشرقية في القدس، ونال بشهادة الماجستير في الأدب واللغات السامية.
عمل مدرسًا للغة العربية في فلسطين والعراق ودمشق وعمّان ثم تقلّب في عدة وظائف شملت التوجية التربوي، ورئاسة عدة أقسام، والإشراف على تحرير مجلة رسالة المعلم.
أنشأ مجلة أرض الإسراء وتولى إدارتها من 1975 حتى 1984 بتوجيه المؤتمر الإسلامي في عمّان. أتقن التكلم والكتابة باللغتين الإنجليزية والفارسية. كتب قصص وتمثليات نشر بعضها وأذيع بعضها الآخر وله أشعار.
حياته الشخصية
تزوج من ربيحه محمد فياض السلطي، ام هشام، التي توفيت في 18 مايو 2004 ولهما 3 أبناء و 3 بنات.
جوائز
حصل على وسام المعلم من الأردن 1975 ووسام الدولة الإندونسية 1980.
ديفيد دوفال
ديفيد دوفال هو لاعب غولف أمريكي، ولد في 9 نوفمبر 1971 في جاكسونفيل في الولايات المتحدة.
كريستيان رودريغيز (لاعب كرة قدم)
كريستيان رودريغيز (12 سبتمبر 1995 في الولايات المتحدة - ) هو لاعب كرة قدم أمريكي في مركز الوسط.
كأس الإمبراطور 1997
كأس الإمبراطور 1997 هو الموسم 77 من كأس الإمبراطور. فاز فيه كاشيما أنتلرز.
جوديث بلاك
جوديث بلاك هي  ومصورة وممثلة أمريكية، ولدت في 1945.
آيت بوطيب (البعيزات أولاد سليمان)
آيت بوطيب هو دُوَّار يقع بجماعة تفتاشت، إقليم الصويرة، جهة مراكش آسفي في المملكة المغربية. ينتمي الدوّار لمشيخة البعيزات أولاد سليمان التي تضم 8 دواوير. يقدر عدد سكانه بـ 849 نسمة حسب الإحصاء الرسمي للسكان والسكنى لسنة 2004.