title: مؤشر (برمجة)

text: ظهر استخدام لغة BISO بهدف الوصول إلى إمكانيات الفيديو لأجهزة الحاسب الآلي في فترة منتصف الثمانينات بطيء السرعة. عادة ما تُستخدم التطبيقات ذات العرض المكثف للولوج إلى ذاكرة الفيديو CGA وذلك عن طريق تحويل قيمة نظام عد السداسي عشر hexademical الثابتة 0xB8000000 لمؤشر لمصفوفة تتكون من 80 من قيم -bit int 16 بالغير مُشار إليها. تتألف كل قيمة من كود ASCII في الخانة ذات الوزن المنخفض من وحدات البايت، والخانة ذات الألوان ذات وحدات البايت العالية. لذا، لوضع حرف "A" في الصف رقم 5 والعمود رقم 2 باللون الأبيض على الأزرق الساطع، يمكنك كتابة الكود كالتالي:


title: مؤشر (برمجة)

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


title: مؤشر (برمجة)

text: سيكون money مؤشر لعدد صحيح و bags ستكون مؤشر char. سوف يُظهر الناتج التالي تحذير مترجم بان "مهمة من نوع مؤشر غير متجانس" وفقاً للغة GCC


title: مؤشر (برمجة)

text:
نظراً لإعلان money و bags بأنواع مختلفة. يجب توضيح رغبتك الفعلية في عمل المهمة عن طريق typecasting وتعني " كيفية تغيير نوع البيانات من نوع إلي نوع أخر وقت البرمجة بدون التقييد بنوع معين وبدون التغيير في قيمتها إلا في حالات معينة فقط.
للتوضيح " وذلك لمنع ظهور هذا التحذير للمترجم.


title: مؤشر (برمجة)

text:
يُوضح ذلك تغيير أو تحويل مؤشر العدد الصحيح لـ money إلى مؤشر char والإشارة إلى bags.
يجب أن تحتفظ مسودة 2005 للمتطلبات القياسية للغة السي C التي تقوم بتحويل مؤشر مستمد من أحد الأنواع إلى نوع آخر على الحيادية الصحيحة لكلا النوعين (مؤشرات 6.3.2.3، par.7)


title: مؤشر (برمجة)

text: تضع حسابات المؤشرات في الحسبان حجم النوع في اللغات التي تُمكن المؤشر الحسابي في اللغات التي تُمكن المؤشر الحسابي. على سبيل المثال، ينتج عن إضافة عدد صحيح إلى المؤشر إلى ظهور مؤشر جديد يُشير إلى عنوان أعلى بمقدار مضاعفة هذا الرقم لحجم هذا النوع. يُمكننا ذلك من حساب عنوان عناصر المصفوفة لهذا النوع المحدد بسهولة ويُسر كما وُضح سابقاً في مثال مصفوفات لغة السي C. يجب على المبرمج أن يتوقع أن المؤشر الحسابي سيتم حسابه بطريقة مختلفة وذلك عند تحويله لأحد مؤشرات أحد الأنواع إلى مؤشر من نوع أخر من حجم مختلف. على سبيل المثال إذا بدأت مصفوفة في لغة السي C بmoney عند 0x2000 وsizeof(int) 4 بايت حيث sizeof(char) 1 بايت ومن ثم (money+1) سوف يُشير إلى 0x2004 ولكن سوف بُشير (bags+1) إلى 0x2001. ويُعد فقدان البيانات عند كتابة البيانات "الكبيرة" في محل البيانات "الصغيرة" من مخاطر التحويل القسري (على سبيل المثال bags[0]=65537;)، تظهر نتائج غير متوقعة عند تحويل القيم bit-shifting، ومشكلات المقارنة، خاصة مع القيم في مقابل القيم الغير موقعة.


title: مؤشر (برمجة)

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


title: مؤشر (برمجة)

text:
تسمح المؤشرات بوقوع العديد من أخطار البرمجة ويرجع ذلك لسماحها لبرنامج بالولوج إلى الكائنات التي لم يُعلن عنها بوضوح من قبل. بيد أن السلطة التي توفرها كبيرة جداً لدرجة أنه يُمكن أن يكون من الصعب القيام ببعض مهام البرمجة في غيابها. لذا فقد اختلقت بعض اللغات كائنات لها بعض خصائص المؤشرات المفيدة في حين تجنب بعض ثغراتها pitfalls للمساعدة في التعامل مع مثل هذه المشكلات.
تواجه المؤشرات مشكلة رئيسية ألا وهي أنه أثناء معالجتها بشكل مباشر كأرقام، يُمكن تشكيلها للإشارة إلى العناوين غير المستخدمة أو إلى البيانات التي تستخدم لأغراض أخرى. العديد من اللغات، بما في ذلك معظم لغات البرمجة الوظيفية functional programming languages واللغات الأمرية الحديثة imperative languages مثل لغة Java إلي تستبدل المؤشرات بنوع أكثر تعقيداً من المرجع والذي عادة ما يُشار إليه ببساطة كالمرجع والذي يمكن استخدامه فقط للإشارة إلى الكائنات ولا تُعالج كأرقام لمنع هذا النوع من الأخطاء.
تُتناول فهرسة المصفوفة كحالة خاصة.
يُطلق على المؤشر الذي لا يحتوي على أي عنوان محدد له اسم المؤشر البدائي wild pointer. يمكن لأي محاولة لاستخدام مثل هذه المؤشرات الغير مهيأة أن تؤدي إلى سلوك غير متوقع إما لأن القيمة المبدئية ليست عنوان صالح وإما لأن استخدامها يمكنه تدمير أجزاء أخرى من البرنامج. وغالباً ما تكون النتيجة ظهور خطأ التجزئة segmentation fault أو انتهاك قواعد التخزينstorage violation.


title: مؤشر (برمجة)

text: في الأنظمة تخصيص الذاكرة، من السهل بناء المؤشر التابع dangling pointer عن طريق عدم تخصيص منطقة الذاكرة التي تُشير إليها. يُعد هذا النوع من المؤشرات خطير ودقيق لأن منطقة الذاكرة الغير مخصصة يُمكنها أن تحتوي على نفس البيانات التي كانت بها قبل إلغاء تخصيصها ولكن يُمكن حينها إعادة تخصيصها والكتابة عليها من خلال استخدام كود غير متصل بها، غير معروف للكود السابق. يُزعم أن اللغات التي تحتوي على garbage collection تمنع هذا النوع من الأخطاء (حيث تتم عملية إلغاء التخصيص يتم بشكل تلقائي) ولكن لا تتم إزالة المؤشر نفسه بواسطة garbage collector ويمكن أن يشير إلى بيانات ذات صلة وغير متوقعة إذا أعيد استخدامها في أي وقت بعد إلغاء تخصيصها.


title: مؤشر (برمجة)

text: تُدعم بعض اللغات مثل لغة C++ المؤشرات الذكية smart pointers والتي تستخدم نموذج مبسط من حساب المرجع للمساعدة في تتبع تخصيص الذاكرة الديناميكية بالإضافة إلى العمل كمرجع. في غياب حلقات المرجع، حيث يشير الكائن إلى نفسه بصورة غير مباشرة من خلال سلسلة من المؤشرات الذكية smart pointers,، يلغي هذا على إمكانية المؤشرات التابعة dangling pointer وتسريبات الذاكرة. تدعم سلاسل Delphi حساب المرجع محلياً.


title: مؤشر (برمجة)

text: غالباً ما يحتوي مؤشر 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) بأنه "خطأ بمليار دولار":


title: مؤشر (برمجة)

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


title: مؤشر (برمجة)

text: نظراً لعدم إشارة مؤشر null إلى أي كائن ذات معنى، فإن محاولة تتبع مؤشر null عادة ما يتسبب في ظهور خطأ بالتشغيل. إذا لم يتم التعامل مع هذا الخطأ فإن البرنامج يتوقف عن العمل على الفورً. في حالة لغة C على كمبيوتر عام، يتوقف التنفيذ من خطأ التجزئة segmentation fault لأن عنوان null الحرفي لا يقسم أبداً لبرنامج قيد التشغيل (يُمكن حدوث العديد من الأشياء مع برنامج لغة C في الأنظمة المدمجة embedded system). في لغة Java يشغل الولوج إلى مرجع null NullPointerException التي يُمكن الحصول عليها من خلال كود معالجة الخطأ، ولكن التطبيق المفضل هو التأكد من عدم حدوث هذه الاستثناءات مطلقاً. في اللغات الآمنة يمكن استبدال مؤشر null المحتمل بوحدات مرتبطة tagged union التي تفرض معالجة واضحة للحالة الاستثنائية؛ في الحقيقة يمكن رؤية مؤشر null على أنه مؤشر tagged pointer بإضافة محسوبة. توفر اللغات الأخرى، مثل لغة Objective-C، عملية إرسال الرسائل إلى عنوان nil (قيمة المؤشر الذي لا يشير إلى كائن صالح) دون التسبب في توقف البرنامج عن العمل؛ وسيتم تجاهل الرسالة ببساطة والقيمة المعادة (إذا وجدت) تكون صفر أو 0، اعتماداً على النوع.


title: مؤشر (برمجة)

text: يُضمن في برمجة لغة C ولغة C++، المقارنة العادلة بين مؤشرين null؛ تضمن لغة ANSI C أن أي مؤشر null يساوي 0 في مقارنة مع نوع العدد الصحيح؛ علاوة على ذلك يُعرَّف macro NULL على أنه مؤشر null ثابت، قيمته 0 (إما كأحد أنواع الأعداد الصحيح أو المحولة إلى مؤشر لـ void)، لذا سيقارن مؤشر null بالتساوي مع NULL.


title: مؤشر (برمجة)

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


title: مؤشر (برمجة)

text: تُعيد دالة malloc مؤشر null في معظم بيئات برمجة لغة السي C إذا لم يكن قادراً على تخصيص منطقة الذاكرة المطلوبة، والتي تنبه المتصل بعدم وجود ذاكرة كافية. بالرغم من ذلك بعض تطبيقات malloc(0) مع إعادة مؤشر null وبدلا من ذلك تحدد الفشل عن طريق إعادة مؤشر null وإدخال errno إلى قيمة مناسبة.


title: مؤشر (برمجة)

text:
تقوم أنظمة الحاسب الآلي على tagged architecture القادرة على التفريق في الأجهزة بين تتبع Null والمحاولة المشروعة للولوج إلى كلمة أو بناء على العنوان صفر.
في بعض بيئات لغة البرمجة (على الأقل تطبيق Lisp على سبيل المثال) القيمة المستخدمة على مؤشر null (يطلق عليها اسم nil في Lisp) ربما يكون مؤشر لقالب من البيانات الداخلية المفيدة للتطبيق (لكن لا يمكن الوصول إليها بشكل جلي من خلال برامج المستخدم)، لذا يُفيد السماح باستخدام نفس العدد الصحيح كثابت وكذلك الطريقة السريعة للولوج إلى تطبيقات التنفيذ. يُعرف هذا بأنه ناقل nil.


title: مؤشر (برمجة)

text: مؤشر autorelative (أو self-relative) هو المؤشر الذي تُفسر قيمته كإزاحة من عنوان المؤشر نفسه؛ لذا، إذا كان هيكل البيانات M له مؤشر autorelative فالكائن p الذي يُشير إلى جزء من M نفسه فإن M ربما يعيد تخصيصها في الذاكرة من دون الحاجة إلى تحديث قيمة p.


title: مؤشر (برمجة)

text: مؤشر الارتكاز هو المؤشر الذي قيمته عبارة عن إزاحة من قيمة مؤشر آخر. يمكن استخدامه لتخزين وتحميل كتل من البيانات، محددة عنوان بداية الكتلة إلى مؤشر الارتكاز.


title: مؤشر (برمجة)

text: في بعض اللغات يمكن أن يشير المؤشر إلى مؤشر آخر، يتطلب عمليتان للتتبع للوصول للقيمة الأصلية. بينما كل مستوى من المراوغة ربما يضيف تكلفة أداء، وأحياناً ضرورية لتقديم سلوك صحيح لهياكل البيانات المعقدة. على سبيل المثال، في لغة C تُعرَّف القائمة المرتبطة من حيث الكائن الذي يحتوي مؤشر للكائن التالي في القائمة:


title: مؤشر (برمجة)

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


title: مؤشر (برمجة)

text: في هذه الحالة، إذا كانت قيمة البند أقل من head فإن مقدمة المتصل تُحدَّث بشكل صحيح في عنوان البند الجديد.


title: مؤشر (برمجة)

text: المؤشرات البدائية هي المؤشرات التي لم يتم تهيأتها بعد (لا يوجد عنوان محدد للمؤشر البدائي) ربما تتسبب مثل هذه المؤشرات في تعطيل البرنامج أو العمل بطريقة بدائية. تُشير المؤشرات التي لم يتم تهيأتها في لغات برمجة Pascal أو لغة السي C إلى عناوين غير متوقعة في الذاكرة.


title: مؤشر (برمجة)

text: يوضح مثال الكود التالي مؤشر بدائي:


title: مؤشر (برمجة)

text: هنا، ربما تشير p2 إلى أي مكان في الذاكرة، لذا أداء المهمة *p2 = ‘b’ سيفسد منطقة غير معروفة من الذاكرة التي ربما تحتوي على بيانات حساسة.


title: مؤشر (برمجة)

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


title: مؤشر (برمجة)

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


title: مؤشر (برمجة)

text: Ada هي لغة كتابة قوية حيث أن جميع المؤشرات تكتب ويسمح فقط بالمحادثة المكتوبة الآمنة. تهيأ جميع المؤشرات افتراضياً إلى null، وأي محاولة للولوج إلى البيانات عن طريق مؤشر null يسبب ظهور استثناء. تسمى المؤشرات في لغة Ada بأنماط الولوج. لا تسمح لغة Ada 83 بالحسابات على أنماط الولوج (على الرغم من أن العديد من الموردين المقدمين لها كميزة غير معيارية)، لكن لغة Ada 95 تُدعم الحسابات "الآمنة" على أنماط الولوج عبر حزمة System.Storage_Elements.


title: مؤشر (برمجة)

text:
لا تدعم لغة Basic المؤشرات بصورة عامة. اللهجات الحديثة في لغة Basic، مثل FreeBASIC أو BlitzMax لديها تطبيق شامل للمؤشر.
في FreeBASIC، تُعامل حسابات مؤشرات ANY (تعادل void* في لغة C) كما لو كان مؤشرANY نطاقه 1 بايت. لا يمكن تتبع مؤشرات ANY، كما في لغة C. أيضاً، الإلقاء بين ANY وأي مؤشر من نوع آخر من المؤشرات لن يسبب أي مخاطر.


title: مؤشر (برمجة)

text: المؤشرات في لغة C ولغة C++ هي المتغيرات التي تخزن العناوين ويمكن أن تكون null. يسير كل مؤشر إلى نوع خاص به، ولكن يمكن للفرد التنقل بحرية بين أنواع المؤشرات، على الرغم من أن السلوك هو تطبيق معروف. يسمح نوع خاص من المؤشرات يطلق عليه "مؤشر void" بالإشارة إلى أي نوع من المتغيرات، ولكن تحده حقيقة أنه لا يمكن تتبعه مباشرةً. غالباً يمكن معالجة العنوان نفسه مباشرة بإلقاء مؤشر من وإلى نوع متكامل بحجم مناسب، على الرغم من أن النتائج هي تطبيقات معروفة ويمكن أن تتسبب في سلوكيات غير معروفة؛ بينما لا يوجد لدى معايير لغة C السابقة نوع متكامل الذي ضُمن أن يكون كبير بدرجة كافية، لغة C99 تحدد اسم uintptr_t typedef المعرَّفة في ، لكن لا يحتاج التطبيق لتوافرها.


title: مؤشر (برمجة)

text: تدعم لغة ++C بالكامل مؤشرات لغة السيC وتحويل نوع المتغير typecasting لغة C. كما تدعم مجموعة جديدة من مشغلات التحويل نوع المتغير typecasting للمساعدة في التقاط بعض الاشكال الخطيرة في الوقت الواحد. كما تقدم المكتبة المعيارية للغة C++ auto ptr نوع من المؤشرات الذكية الذي يمكن استخدامه في بعض المواقف كبديل آمن للمؤشرات الأولية في لغة C. كما تدعم لغة C++ شكل آخر من المرجع، مختلف عن المؤشر يطلق عليه ببساطة المرجع أو نمط المرجع.


title: مؤشر (برمجة)

text: المؤشر الحسابي هو القدرة على تعديل عنوان المؤشر المستهدف بعمليات حسابية (وكذلك مقارنات الحجم) ويقتصر على معايير اللغة للبقاء ضمن حدود كائن المصفوفة الواحدة (أو فقط بعد ذلك)، على الرغم من أن العديد من الهياكل المتكاملة ستسمح بالمزيد من التساهلات الحسابية. الإضافة أو الطرح من مؤشر يحركه بمضاعفات الحجم من نوع البيانات التي تشير إليها. على سبيل المثال، إضافة 1 إلى مؤشر قيمته 4 بايت سيزيد المؤشر بمقدار 4. وهذا له تأثير في زيادة المؤشر للإشارة إلى الكائن التالي في المصفوفة المرتبطة من الأعداد الصحية- غالباً ما تكون هذه هي النتيجة المطلوبة. لا يمكن للمؤشر الحسابي الأداء على مؤشر void لأن نوع void ليس له حجم، وبالتالي لا يمكن إضافة العنوان المشار إليه، عل الرغم من أن gcc وغيرها من المجمعات ستؤدي حسابات البايت على void* كامتداد غير معياري. للعمل مباشرةً مع وحدات البايت يلقوا عادةً المؤشرات إلى BYTE*، أو char* غير الموقعة إذا لم تُعرَّف BYTE في المكتبة المعيارية المستخدمة.


title: مؤشر (برمجة)

text: يقدم المؤشر الحسابي للمبرمج طريقة واحدة للتعامل مع مختلف الأنواع: إضافة وطرح رقم الكائن المطلوب بدلاً من الإزاحة الفعلية بوحدات البايت. (مع ذلك مؤشر char، يُعرف char بأنه الحصول دائما على حجم بقيمة 1 بايت، يسمح بإزاحة الكائن من المؤشر الحسابي إلى الممارسة ليتساوى مع إزاحة البايت الواحد) على وجه الخصوص، يوضح تعريف لغة Cصراحةً أن الصيغة a[n] حيث أن n-th كائن في المصفوفة a، تكافئ *(a+n) وهو محتوى الكائن المشار إليه بواسطة a+n. يعني هذا أن n[a] يتساوى مع n[a] ويمكن كتابة مثلاً a[3] أو [a]3 سيلج كلاهما إلى الكائن الرابع من المصفوفة A.


title: مؤشر (برمجة)

text:
بينما يمكن للمؤشر الحسابي أن يكون مصدر bugs الحاسب الآلي. فإنه يميل إلى إرباك المبرمجين المبتدئين، مما يضطرهم إلى سياقات مختلفة: يمكن أن يكون تعبير حسابي عادي أو أن يكون تعبير مؤشر حسابي، وأحياناً من السهل عمل خطأ في أحدهما للآخر. واستجابة لهذا، العديد من لغات الحاسب الآلي الحديثة المتقدمة (على سبيل المثال Java) لا تسمح بالولوج المباشر إلى الذاكرة باستخدام العنوان. كذلك، تتناول لهجة لغة C الآمنة Cyclone العديد من الموضوعات المتعلقة بالمؤشرات. راجع لغة البرمجة C للمزيد من الانتقادات.
مؤشر void أو void* يُدعمه ANSI لغة C ولغة C++ كنوع مؤشر عام. مؤشر void يمكنه تخزين عنوان لأي نوع بيانات وفي لغة C يتحول ضمنياً إلى أي نوع آخر من المؤشرات أثناء المهمة، ويجب أن يلقى صراحة إذا كان تتبع المؤشر ضمني. K&R تستخدم لغة C char* لغرض "المؤشر agnostic" (قبل ANSI C).


title: مؤشر (برمجة)

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


title: مؤشر (برمجة)

text: في لغة C++، لا يوجد void& (مرجع لـ void) لاستكمال void*، لأن المراجع تتصرف مثل الأسماء المستعارة للمتغيرات التي تشير إليها، ولا يمكن وجود متغير من نوع void.


title: مؤشر (برمجة)

text: في لغة برمجة C#، تُدعم للمؤشرات تحت شروط معينة: أي كتلة من الكود المتضمنة المؤشرات لابد من الإشارة عليها بعلامة غير آمن. تتطلب مثل هذه الكتل أذونا أمان أعلى من المسموح بها لتشغيلها. الصيغة هي نفسها الموجودة في لغة C++ والعنوان المشار إليه يمكن أن يكون إما ذاكرة متحكم بها أو غير متحكم بها. مع ذلك، مؤشرات الذاكرة المتحكم بها (أي مؤشر لكائن متحكم به) يجب الإعلان عنها باستخدام كلمة أساسية ثابتة، والتي تمنع garbage collector من تحريك الكائن المشار إليه كجزء من التحكم بالذاكرة بينما يكون المؤشر في النطاق وهذا يحافظ على صلاحية العنوان.


title: مؤشر (برمجة)

text: استثناء هذا من استخدام بنية IntPtr وهو تحكم آمن يتساوى مع int* ولا يتطلب كود عدم الأمان. يستعاد هذا النوع غالباً عند استخدام طرق من النظام. Runtime.InteropServices على سبيل المثال:


title: مؤشر (برمجة)

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


title: مؤشر (برمجة)

text:
مساحة الذاكرة لكل كائن بيانات مشار إليه يقسم ديناميكياً عادةً باستخدام بيانات الاتصال الخارجي أو عن طريق بناء اللغة الموسع المتكامل مثل بيانات EXEC CICS أو EXEC CICS.
كما تقدم الإصدارات الممتدة من COBOL متغيرات المؤشر المعلن عنه في شروط استخدام المؤشر. فيم مثل هذه المؤشرات تحددت وعدلت باستخدام بيانات SET و SET ADDRESS.
كما تقدم بعض الإصدارات الممتدة من لغة COBOL متغيرات PROCEDURE-POINTER القادرة على تخزين عنوان الكود القابل للتنفيذ.


title: مؤشر (برمجة)

text: لغة البرمجة D مشتقة من لغة C ولغة C++ وهي تؤيد مؤشرات C وتحويل نوع المتغير typecasting C تأييداً كاملاً.


title: مؤشر (برمجة)

text: تدعم اللغة الوجهة Eiffel المؤشرات في شكل المراجع، التي تكتب ولا تسمح بأي شكل من أشكال المؤشر الحسابي. معيار ECMA من لغة Eiffel يتضمن آلية "النوع المرفق" التي تدَّعي ضمان سلامة void.


title: مؤشر (برمجة)

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


title: مؤشر (برمجة)

text: تحتوي لغة Go على مؤشرات. تتماثل صيغتها المعلنة مع مؤشرات لغة C، ولكن تكتب بالعكس، منتهية بالنوع. على عكس لغة C، لدى Go garbage collection ولا تسمح بالمؤشر الحسابي. لا يمكن تعريف أنواع المرجع مثل لغة C++ لكن يتم تمرير بعض الأنواع الضمنية عن طريق المرجع؛ يجب أن تتكون تلك بجعل الكلمة الأساسية بدلاً من الجديدة. كطريقة مختلفة (عن أنواع المرجع) لتوحيد الصيغة بين المؤشر وغير المؤشر، انخفض مشغل السهم (->)والمجمع يعرف فقط أن المبرمج يعني تتبع المؤشر باستخدام مشغل النقطة (.) (بينما على لغة C ولغة C++ سيكون هذا خطأ كامل).


title: مؤشر (برمجة)

text: يتم تطبيق المؤشرات كثيرا كما في Pascal، كذلك باراميترات VAR في الإجراءات يطلق عليها Modula-2 وهي أقوى كتابياً من Pascal،، مع عدد قليل من الطرق للهروب من نظام الكتابة. بعض المتغيرات في لغة Modula-2 (مثل Modula-3) تحتوي على garbage collection.


title: مؤشر (برمجة)

text: كثيراً ما تتوافر المؤشرات مع Modula-2. ما زال هناك القليل من الطرق للتهرب من النظام الكتابي وبذلك تكون لغة Oberon ومتغيراتها ما زالت آمنه فيما يتعلق بالمؤشرات أكثر من لغة Modula-2 ومتغيراتها. كما في Modula-3 تمثل garbage collection جزء من مواصفات اللغة.


title: مؤشر (برمجة)

text: على النقيض من العديد من اللغات التي تميز المؤشرات فإن معيار ISO Pascal يسمح فقط للمؤشرات بالإشارة إلى المؤشرات المكتوبة ديناميكياً والغير معروفة ولا يسمح لهم بالإشارة إلى المعيار الثابت أو المتغيرات المحلية. لا يوجد بها مؤشر حسابي. يجب أن تحتوي المؤشرات أيضاً على نوع مترابط والمؤشر من نوع ما لا يتفق مع المؤشر من نوع آخر (مثل مؤشر char لا يتفق مع مؤشر العدد الصحيح). يساعد هذا على القضاء على القضايا الأمنية المتأصلة تطبيقات المؤشر الآخر، تستخدم هذه خاصة للغة PL/I أو للغة C. كما أنها تزيل بعض المخاطر التي يسببها المؤشر المتدلي، ولكن القدرة على السماح الديناميكي للمساحة المتبعة باستخدام عملية معيار التصرف (الذي له نفس تأثير مثل وظيفة المكتبة الحرة الموجودة في اللغة C) مما يعني أن خطورة مؤشرات التدلي لم يتم القضاء عليها كلياً.


title: مؤشر (برمجة)

text: مع ذلك في بعض المصادر التجارية والمفتوحة للغة Pascal (أو مشتقاتها) يسمح بتطبيقات مثل Free Pascal أو Turbo Pascal أو Object Pascal في Embarcadero Delphi – يسمح للمؤشر بالإشارة إلى المعيار الثابت أو المتغيرات المحلية ويمكن الإلقاء من نوع من المؤشرات إلى آخر. علاوة على ذلك، المؤشر الحسابي غير مقيد: الإضافة أو الطرح من المؤشر يحركه بمقدار هذا الرقم من وحدات البايت في كلا الاتجاهين، لكن استخدام إجراءات معيار Inc أو dec معه يحرك المؤشر بحجم نوع البيانات المصرح للإشارة إليه.


title: مؤشر (برمجة)

text: تدعم لغة برمجة Perl المؤشرات، على الرغم من ندرة استخدامها، في شكل وظائف من الحزم والتفريغ. تهدف هذه للتفاعلات البسيطة فقط مع مكتبات OS المجمعة. في جميع الحالات الأخرى، تستخدم لغة Perl المراجع المكتوبة والتي لا تسمح بوجود أي شكل من أشكال المؤشر الحسابي. فهي تستخدم لبناء تراكيب البيانات المعقدة.


title: آر بي جي (لغة برمجة)

text: آر بي جي RPG هي لغة برمجة عالية المستوى للتطبيقات الخاصة بالأعمال. الأحرف الأولى التي تصف اسم البرنامج ترمز إلى المعنى " مولد برنامج التقرير". وشركة IBM هي صانعة البرنامج والبائع الرئيسي له، ولكن اللغة متاحة أيضا من مصنعي أجهزة كمبيوتر رئيسية أخرى وأجهزة الكمبيوتر الضخمة ومنهم يونيسيس Unisys. النسخة الأخيرة من آر بي جي هي آر بي جي 4 RPG IV (وتعرف ب ILE RPG) وهي على خوادم باور آي الخاصة بIBM، وهي ترث النظام آي من سمات بيئة اللغة المتكاملة مثل وظائف النماذج الأصلية وإجراءاتها والروابط الديناميكية والثابتة والوصول إلى مكتبات لغة سي الروتينية، ومكاتب الرابط الديناميكي والشفرة الوحدوية المتكررة أو المعاد إدخالها.


title: آر بي جي (لغة برمجة)

text: تعرف لغة آر بي جي (التي تعرف أيضا باسم آر بي جي فور وRPGLE) بأنها لغة برمجة مألوفة لمنصة IBM Power i. وقد صنعت خصيصا كأداة لكتابة التقارير لIBM401 في بداية الستينات، وقد تطورت آر بي جي منذ هذا الوقت إلى لغة HLL مكافئة هي كوبول وبي إل آي


title: آر بي جي (لغة برمجة)

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


title: آر بي جي (لغة برمجة)

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


title: آر بي جي (لغة برمجة)

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


title: آر بي جي (لغة برمجة)

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


title: آر بي جي (لغة برمجة)

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


title: آر بي جي (لغة برمجة)

text: وقد كانت لغة فارجو (fourteen o-one Automatic Report Generation Operation أو عملية توليد التقارير 1401 الأوتوماتيكية) هي اللغة السابقة لآر بي جي في IBM 1401. وقد استهدفت كلا اللغتين تسهيل الانتقال إلى جهاز تسجيل الوحدات الآلي المجدول IBM للفنيين إلى أجهزة الكمبيوتر الجديدة.


title: آر بي جي (لغة برمجة)

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


title: آر بي جي (لغة برمجة)

text: وقد كانت اللغات البديلة المتاحة بشكل عام في هذا الوقت هي أسيمبلر وكوبول وفورتران. وكانت لغة الكوبول لغة عملية شبيهة باللغات الطبيعية والفورتران كانت لغة سهلت كافة التطبيقات الرياضية. من اللغات الأخرى في هذا الوقت كانت ألجول وأوتوكودر وبعد عدة سنوات بي إل وان. وقد كانت الللغتين أسيمبلر وكوبول شائعتين في العمليات الخاصة بأجهزة الكمبيوتر الرئيسية (طرازات سيستم 360 30 وأعلى) وتستخدم آر بي جي بشكل شائع من جانب العملاء الذين انتقلوا من أجهزة ومعدات الجدولة (سيستم 360 طراز 20).


title: آر بي جي (لغة برمجة)

text: تم تقديم لغة آر بي جي تو مع مجموعة سيستم ثري من أجهزة الكمبيوتر. ثم استخدمت فيما بعد مع سيستم 32 وسيستم 34 وسيستم 36، مع نسخة معدلة من اللغة. كما أنتجت آي سي إل أيضا نسخة على نظام تشغيلها VME/KK.


title: آر بي جي (لغة برمجة)

text: ظهرت آر بي جي ثري لتعمل على سيستم 38 وما تلاها AS/400. وقد تم ترحيل آر بي جي ثري من اللغة الأصلية بحيث وفرت مقومات هيكلية عصرية مثل بلوكات IF-ENDIF وحلقات دو والكمبيوتر الرشيس IBM System/370 اليذ يعمل ب OS/VS1. كما كانت متاحة أيضا من يونيسيس لنظام التشغيل VS/9 الذي يعمل على الكمبيوتر الرئيسي يونيفاك 90/60


title: آر بي جي (لغة برمجة)

text: أما لغة DE/RPG أو آر بي جي لإدخال البيانات كانت متوفرة بشكل حصري في مجموعة حواسيب آي بي إم 5280 من محطات عما إدخال البيانات في بداية الثمانينات. وقد كانت شبيهة بآر بي جي ثري ولكن ينقصها مواصفات البيانات الخارجية (DDS) لوصف (ملفات) البيانات مثلما في نظام سيستم 38 وكل ما تلاه. بدلا من ذلك، يجب إدراج جزء DDS في مصدر آر بي جي نفسها.


title: آر بي جي (لغة برمجة)

text: آر بي جي 400 كان فعليا آر بي جي ثري الذي يعمل على AS/400. وأعادت IBM تسمية مصنف آر بي جي باسم "آر بي جي 400" ولكنه كان شبيها بمصنف آر بي جي ثري حتى بدأت IBM تطوير شفرات تشغيل جديدة مثل سكان وكات وإكسليت بعد عدة سنوات من توافر AS/400. هذه التعزيزات لآر بي جي ثري لم تكن متوفرة في نسخة سيستم 38 من آر بي حي ثري.


title: آر بي جي (لغة برمجة)

text: آر بي جي فور (أو التي تعرف ب RPGLE أو RPG/ILE) صدرت عام 1994 ولم يعد الاسم بعد ذلك مجرد أحرف بادئة تمثل معنى الكلمة. قدمت آر بي جي فور مجموعة متنوعة من التعبيرات من خلال سماتها الحسابية المتوسعة فاكتور تو Factor-2، ولاحقا في الحياة، من خلال مواصفاتها الحسابية الخالية من التنسيق وتركيبات الجمل الإجرائية. وتعد آر بي جي فور النسخة الوحيدة من آر بي جي التي تدعمها آي بي إم في كل سلسلة المنتجات الواسعة التالية لنظام AS/400.


title: آر بي جي (لغة برمجة)

text: في عام 2001، ومع إصدار OS/400 V5R1، قدمت آر بي جي فور حرية أكبر من أجل الحسابات التي تقدمها المواصفات الحسابية الموسعة فاكتور تو : مدخل مصدري ذو إمكانية للنصوص خالية من التنسيق، كبديل للنسق المصدري الأصلي المعتمد على الأعمدة. إن حساب /freeلا يتطلب وضع شفرة تشغيل في عمود معين، وشفرة التشغيل هي أمر خياري بالنسبة لعمليات تشغيل EVAL وCALLP كما يتشابه تركيب الجمل بشكل كبير مع لغات برمجة الحواسيب الرئيسية متعددة الأغراض.


title: آر بي جي (لغة برمجة)

text: واليوم تعد لغة آر بي جي فور بلا شك لغة قوية. ويمكن أن يتم التحرير أيضا عبر محرر بسيط أو يمكن التحرير عبر الكمبيوتر الشخصي باستخدام برنامج "ويب سفير ديفيلوبمنت ستوديو" التابع لIBM والذي عرف حاليا باسم RDi (راشيونال ديفيلوبمنت ستوديو لآي) وهو تطبيق مصمم خصيصا من إكليبس. وتقوم آي بي إم بشكل مستمر بالتوسع في إمكاناتها وإضافة المزيد من الوظائف المدمجة داخليا (BIFs). وهي لديها القدرة على الارتباط بعناصر الجافا، وi5/OS APIs، ويمكن استخدامها لكتابة برنامج سي جي آي بمساعدة صندوق أدوات الذو إشارة Cgidev2 التابع لIBM وRPGLIP (مجموعة من مئات الأعمال الروتينية المكتوبة مسبقا عبر RPG IV) وCGILIB وصندوق أدوات آر بي جي ومجموعة باقات تمكينية تجارية أخرى للمواقع الإليكترونية. حتى مع التغييرت، لا تزال تحتفظ بمجموعة من التوافق الخلفي، لذا فإن برنامج آر بي جي الذي كتب منذ 37 عاما يمكن تشغيله اليوم بالقليل من التعديلات أو بدون تعليمات على الإطلاق.


title: آر بي جي (لغة برمجة)

text: علاوة على ذلك، مع تطبيق المصنف المسبق لإس كيو إل، يمكن لمطوري آر بي جي الاستفادة من إس كيو إي المعتمدة على التكاليف والتابعة لآي بي إم (SQL Query Engine). وعلى عكس التوجه التقليدي F-Spec، حيث يستيع المطور تحديد طريق وصول محدد لمجموعة بيانات، يمكن للمطور الآن تنفيذ بيانات إس كيو إل مدمجة مباشرة في البرنامج. وعند تصنيفها، يقوم المصنف المسبق لإس كيو إل بتحويل بيانات إس كيو إل المدمجة غير الصالحة إلى بيانات ر بي جي صالحة تستدعي برنامج مدير قواعد البيانات الذي يقوم في النهاية بتنفيذ طلب التساؤل.


title: آر بي جي (لغة برمجة)

text: تمت إعادة تسمية OS/400 لاحقا i5/OS ليتماشى مع مبادرة تسمية المنتج الجديدة IBM System i5، تم إسقاط 5 من التسمية لاحقا ليصبح الاسم system I فقط وخطوط إنتاج System p. كما انتهج نظام الطاقة الجديد أيضا أعداد نسخ تسلسلية أكثر لتستبدل 6.1 بالتدوين V1R1M0 التي تبلغ من العمر 20 عاما. وتمت الإشارة لآخر الإصدارات باسم IBM i 7.1 وتدعم بالكامل لغة آر بي جي فور والعديد من اللغات الأخرى أيضا. كما يشار إلى تابع ويبسفير ديفيلوبمنت ستوديو (WDSC) باسم المطور العقلاني للآي (RDi)، والذي يتوافر منه ثلاث مستويات من المنتجات. وهي تسمى المطور العقلي للآي RDi والهيكل ذو التوجه الخدمي RDi SOA ومطور التطبيقات العقلاني RDA. ويتيح الخط الجديد كافة أدوات ودعم التطوير بباقات حبيبية أكثر قدمتها النسخة WDSC والنسخة


title: آر بي جي (لغة برمجة)

text: تدعم لغة آر بي جي أنماط البيانات التالية.


title: آر بي جي (لغة برمجة)

text: البرنامج التالي يستقبل رقم العميل كمعيار للمدخلات ويقوم بإرجاع الاسم والعنوان كمعيار للنواتج.


title: آر بي جي (لغة برمجة)

text: يستعين نفس البرنامج بحسابات حرة:


title: آر بي جي (لغة برمجة)

text: يستعين نفس البرنامج بحسابات حرة: وSQL مدرج


title: آر بي جي (لغة برمجة)

text: لنفترض أن نموذج الجدول ARMSTF1 صنع باستخدام عبارة SQL التالية:


title: آر بي جي (لغة برمجة)

text: وبالنسبة لنظام تشغيل V7R1، فإن البرنامج السابق يمكن كتابته (بشكل صحيح وكامل) كالآتي:


title: آر بي جي (لغة برمجة)

text: كما ذكرنا مسبقا، فقد تم التعريف بلغة البرمجة آر بي جي في البداية عبر IBM لملكيتهم لكل من 1401, /360, /3, /32, /34, /36, /38 AS/400 ونظام آي سيستم I system. كما كان هناك أيضا عدد من التطبيقات للديجيتال في إيه إكس Digital VAX وسبيري يوينفاك Sperry Univac BC/7 ويونيفاك سيستم 80 UNIVAC Sytem 80 وسيمنز بي إس 2000 Siemens BS2000 وبور بي 700 Borroughs B700 وبي 1700 B1700، وهيوليت باكارد إتش بي 3000 Hewlett Packard HP3000، وآي سي إل 2900 ICL 2900، هوني ويل 6220 و2020 Honeywell 6220، 2020، فور فيز فور/70 Four-phase IV/70 وIV/90 وWANG VS ومجموعة كبيرة ومتنوعة من المصنفات وبيئات التشغيل الزمني للأجهزة المعتمدة على يونيكس (INFINITE 36 (سابقا UNIBOL36)) والحواسيب الشخصية (Baby/400, Lattice-RPG).


title: آر بي جي (لغة برمجة)

text: آخر المنصات التي استقبلت منصة آر بي جي هي وينوز دوت نت عبر منصف وين آر بي جي. تحتوي هذه النسخة امتدادات لآر بي جي فور بعيدة عن مصنف IBM الرئيسي. هذه الامتدادات توفر خطافات ويندوز ودوت نت.


title: آر بي جي (لغة برمجة)

text: ولا تزال تطبيقات آر بي جي تو مدعومة بنظم تشغيل IBM z/VSE and z/OS ونظام تشغيل HP MPE على HP3000 ونظام التشغيل OpenVMS على كل من VAX, Alpha ويونيسيس إم سي بي.


title: ممبس

text:
إن ممبس MUMPS (وهو اختصار لاسم نظام البرمجة المتعدد لتشغيل مستشفى ماساتشوسيتس العام (Massachusetts General Hospital Utility Multi-Programming System) أو اختصارا بحرف إم هو لغة برمجة ظهرت في أواخر ستينيات القرن العشرين من أجل أن تستخدم في صناعة الرعاية الصحية. وكانت مصممة لإنتاج تطبيقات قائمة على قاعدة البيانات متعددة المستخدمين. وهي تسبق لغة سيC واللغات الأكثر شعبية الأخرى في الاستخدام الحالي، ولها بنية ومصطلحات مختلفة تماما.
وقد تم تبنيها على نطاق واسع خلال السبعينيات والثمانينيات في نظم معلومات/ وقواعد بيانات الرعاية الصحية والنواحي المالية، ولا تزال تستخدم من قبل العديد من نفس المستخدمين إلى اليوم. وتستخدم هذه اللغة حاليا في نظم التسجيل الصحي الإلكترونية وكذلك من قبل العديد من الشبكات المصرفية وخدمات التجارة / والاستثمار الإلكترونية.


title: ممبس

text:
طورت ممبس على يد نيل بابالاردو N. Pappalardo ورفاقه في معمل حيوانات د. أوكتو بارنيت في مستشفى ماساتشوستس العام في بوسطن خلال عامي 1966-1967. وكان نظام ممبس الأصلي مبنيا على قطع DEC PDP-7، مثلما كان عليه حال يونكسUnix بعد سنوات قليلة.
كما كان كل من نيل بابالاردو وأوكتو بارنيت مشاركين في التخطيط لمستشفى ماساشستس العام من خلال وضع نظام الملعومات بالمستشفى، وحصلا على PDP-9 المتوافق بأثر رجعي، وبدءا في استخدام ممبس في دورة admissions وتقرير الاختبارات المعملية. وكان ممبس حينذاك لغة مفسرة، ولم يكن حتى عند ذلك الوقت متضمنا نظام ملفات قاعدة بيانات تراتبية من أجل معايرة التفاعل مع البيانات. ويمكن تتبع بعض أوجه ممبس من جوس JOSS التابع لراند كوربوريشن من خلال BBN، وتيلكومب TELCOMP وسترينجكومب STRINGCOMP. وقد اختار فريق ممبس مضطرا أن يتضمن قدرة على الانتقال بين الآلات كهدف تصميمي. وهناك خاصية أخرى، لم تكن داعمة على نطاق واسع لآلات هذه المرحلة، في نظم التشغيل أو في المعدات، وأنها كانت متعددة المهام، وكانت أيضا مبنية في اللغة نفسها.


title: ممبس

text: وكانت القدرة على التنقل مفيدة في أقرب وقت، لأن ممبس سرعان ما أن تم تكييفها للتوافق مع DEC PDP-15، حيث استمرت لفترة من الزمن. وقد تم تطويرممبس بدعممن منحة بحثية حكومية، وهكذا تم إصدار ممبس أما ناق عام (ولم تعد هناك حاجة لمزيد من المنح)، وسرعان ما وصلت بعدد من النظم الأخرى بما فيها النظم الشهيرة DEC PDP-8، ونوفا العامة للبيانات the Data General Nova، و the DEC PDP-11، والكمبيوترات الدقيقة PC12 طراز أترونيكس.وقد انتشرت كلمة ممبس بقوة في المجتمع الطبي وبحلول أوائل السبعينيات كان مستخدما على نطاق واسع، وكان غالبا ما يتم تعديله محليا للتوفيق بينه وبين احتياجاتهم الخاصة.


title: ممبس

text: وبحلول أوائل السبعينيات كانت هناك العديد والأنواع المختلفة من تطبيقات ممبس على مجموعة من منصات المعدات. وكان أكثرها انتشارا ممبس -11 على PDP-11، وMIIS التابع لـ ميديتك. وفي عام 1972 شارك العديد من المستخدمي ممبس في مؤتمر كان يقوم بمعايرة اللغة الهشة حينذاك، وكونوا مجموعة مستخدمي ممبس ولجنة تطوير ممبس (MDC) من أجل القيام بذلك. وقد أثبتت هذه المجهودات نجاحها؛ وقد اكتملت المعايرة في عام 1974، وتم التصديق عليها، في 15 سبتمبر 1977 مثل معايرة ANSI، و X11.1-1977. وفي نفس الوقت تقريبا دشنت DEC ما عرف باسم DSM-11 (أي معايرة ممبس الرقمية Digital Standard MUMPS) من أجل PDP-11. وسرعان ما سيطر ذلك على السوق وأصبح التطبيق المرجعي لتلك الفترة.


title: ممبس

text:
وخلال أوائل الثمانينيات قدم العديد من المصنعين للبرامج عددا من المنصات القائمة على ممبس والتي تلبي معايرة أنسي ANSI للسوق. وكان الأكثر أهمية هي مؤسسة المعدات الرقمية Digital Equipment Corporation التي قدمت المعايرة الرقمية لممبس DSM، وإنترسيستم InterSystem التي قدمت انترسيستم إم على VMS ويونكسUNIX، و M/11+ على منصة PDP-11. وطورت الشركات الأخرى العديد من تطبيقات ممبس الهامة الأخرى:
وكانت إم جلوبال هي أو ممبس تجارية لأجهزة آي بي إم وتطبيق ماك الوحيد. وقد سبق DSM-11 إصدار VAX/DSM لمنصة VAX/VM، وكانت موصلة بألفا في نوعيها: DSM لـ OpenVMS و DSM لـ Ultrix.


title: ممبس

text: كما شهدت هذه الفترة نشاطا كبيرا لـ MDC. وكان الإصدار الثاني من معايرة أنسي ANSI Standard لممبس (X11.1-1984) قد تمت الموافقة عليها في 15 نومفبر 1984. وفي 11 نوفمبر 1990 تم التصديق على الإصدار الثالث من معايرة أنسي (X11.1-1990). وفي عام 1992 تم تبني نفس المعايرة كمعايرة أيزو ISO 11756-1992. وكان استخدام M كاسم بديل للغة قد تمت الموافقة عليه في نفس الوقت تقريبا. وفي 8 ديسمبر 1995 كان الإصدار الرابع من معايرة (X11.1-1995) قد تم التصديق عليه من معايرة أنسي، ومن قبل أيزو في عام 1999 باعتبارها ISO 11756-1999. وقامت MDC بتطوير نسخة أكثر تقدما للمعايرة في عام 1998 لكن ذلك لم يكن مقدما لأنسي لكي تصدق عليها. وفي 6 يناير 2005 ولاحقا في 25 يونيو 2010، واعادت أيزو تأكيدها على أن المعايير المرتبطة بممبس هي: : ISO/IEC 11756:1999, language standard, ISO/IEC 15851:1999, Open MUMPS Interconnect و ISO/IEC 15852:1999, MUMPS Windowing Application Programmers Interface.


title: ممبس

text: وبحلول عام 2000، أصبح مقدم المعدات الوسيطة إنترسيستمز InterSystems اللاعب المهيمن في سوق ممبس من خلال شراءها للعديد من الفاعلين في الصناعة. ومبدئيا فإنها استحوذت على داتاتري إنك في أوائل التسعينيات. وفي 30 ديسمبر 1995 استحوذت إنترسيستمز على خط إنتاج DSM من DEC. وقد دمجت إنترسيستمز هذه المنتجات في خط إنتاج واحد، وحملت علامات اسماءهم التجارية وفي العديد من منصات المعدات بلفظ OpenM. وفي عام 1997 فإن إنتر سيستمز أكملت بصورة كبيرة هذا الدمج من خلال توحيد وريثها الذي حمل اسم كاشيه Cache. وكان ذلك قائما على منتجهم الخاص بمدير نظم المعلومات ISM، لكن بتأثيرات من التطبيقات الأخرى. كما تم الاستحواذ على أصول مؤسسة مايكرونيتكس ديزين من قبل إنتر سيستمز في 21 يونيو 1998. ولا تزال إنترسيستمز اليوم (2007) هي المهيمن على منتجات ممبس، وكان بيع كاشيه لمطوري ممبس الذي يكتب تطبيقات لمجموعة من نظم التشغيل.


title: ممبس

text: وكان تطبيق GT.M التابع لجراستون تكنولوجي كوربوريشن قد تم بيعه إلى سانشيز كومبيوتر أسوشيتس إنك (وهي الآن جزء من فيداليتي ناشيونال فاينانشيال إنك) في منتصف التسعينيات. وفي السابع من نوفمبر 2000 صنعت سانشيز GT.M للينوكس وجعلته متاحا بترخيص من GPL وفي 28 أكتوبر 2005 صعنت GT.M من أجل OpenVMS و Tru64 UNIX وكانت أيضا متاحة بترخيص AGPL. وتواصل GT.M كونها متاحة لمنصات يونكس الأخرى وفقا للترخيص التقليدي.


title: ممبس

text:
وكان التطبيق الأحدث لممبس، والذي صدر في أبريل 2002، مشتقا من MSM يسمى M21 من شركة رجبي ريل للبرمجيات بالمملكة المتحدة.
وهناك أيضا العديد من تطبيقات المصادر المفتوحة لممبس بما فيها بعض المشروعات البحثية. ومن أبرز هذه التطبيقات والمشروعات هو Mumps/II من قبل البروفيسور كيفن أوكين (يعمل الآن بجامعة نورثرن إيوا) ومشروع للطلبة. كما وصل كل من د. أوكين وريان ميرفي إلى توصيل المترجم لنظام تشغيل ماك.


title: ممبس

text: وأحد المصنعين الأصليين للغة ممبس هو نيل بابالاردو الذي أسس في البداية شركة سماها ميديتك. وقاموا بالتوسع والبناء على لغة ممبس، وسموا اللغة الجديدة باسم MIIS (ولاحقا سميت لغة أخرى ماجيك MAGIC). وعلى غير ما هو عليه حال إنترسيستمز، فإن ميديتك لم تعد تبيع المعدات الوسيطة، لذلك فإن MIIS و MAGIC لا تستخدمان إلا على مستوى داخلي في ميديتك.


title: ممبس

text: كانت وزارة شئون المحاربون القدماء بالولايات المتحدة (سابقا إدارة المحاربون القدماء) من أوائل من تبنوا لغة ممبس. وكان عملهم التنموي (وإسهاماتهم المتوالية في قاعدة تشفير تطبيق ممبس المجانية) ذو تأثير على العديد من المستخدمين الطبيين في أنحاء العالم. وفي عام 1995 مان قد تم تطبيق نظام مرضي شئون المحاربين القدماء في الدخول والتتبع والصرف، من خلال برنامج الكمبيوتر الصحي غير المركزي Decentralized Hospital Computer Program قد تلقى جائزة سميثونيان العالمية لأفضل استخدام لتكنولوجيا المعلومات في مجال الطب. وبعد قرابة العقد (في يوليو 2006) تلقت وزارة شئون المحاربون القدماء (من خلال إدارة صحة المحاربون القدماء) جائزة الحكومة الأمريكية للابتكارات والتي قدمها معهد أش بمدرسة ج. ف. كينيدي الحكومية في جامعة هارفارد بسبب توفيرها لبرنامج الكمبيوتر الصحي في نظم معلومات صحة المحاربين القدماء وبينتها التكنولوجية VistA في يوليو 2006. وتقريبا فإن جميع نظم صحة المحاربين القدماء في الولايات المتحدة وفي الخدمة الصحية الهندية، وكذلك أجزاء رئيسية من وزارة الدفاع، فإن جميع هذه النظم تتم بتشغيل قواعد بيانات تتبع البيانات العيادية.


title: ممبس

text: وتستخدم الشركات الكبيرة حاليا ممبس بما فيها أميريباث AmeriPath (وهي الآن جزء من كويست للتشخيصات)، وكير سنتريك، وإيبك سيستم كوربوريشن، وEMIS، وشركاء الرعاية الصحية، وميديتك، وج إي للرعاية الصحية (سابقا نظم IDXو سنتريسيتي). وهناك العديد من المعامل المرجعية، مثل كويست للتشخيصات ودايناكير، تستخدم برمجيات ممبس المكتوبة أو القائمة على كود أنتريم كوربوريشن. وكان قم تم الاستحواذ على أنتريم، وشركتها الأم صنكويست، من قبل ميسيس في عام 2001.


title: ممبس

text: كما ورد أن Coventry Healthcare ومستشفى ماساشستس يستخدمان ممبس.


title: ممبس

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


title: ممبس

text: وقد أعلنت وكالة الفضاء الأوروبية في 13 مايو 2010 أنها سوف تستخدم ممبس (InterSystems Caché) من أجل دعم بعثة جايا Gaia mission. وكانت هذه البعثة تهدف إلى وضع خريطة لدرب اللبانة بدقة غير مسبوقة.


title: ممبس

text: وفي عام 2005 فإن غالبية استخدام M كان إما في شكل GT.M أو InterSystems Caché. وكان النوع الأخير قد سوق على نطاق كبير من قبل إنترسيستمز وكان قد حقق نجاحا في التوغل في أسواق جديدة، مثل الاتصالات، إضافة إلى الأسواق القائمة.


title: ممبس

text:
إن ممبس هي لغة عمدت إلى وصممت من أجل بناء تطبيقات قاعدة بيانات. وتضمنت مميزات اللغة الثانوية من أجل المساعدة المبرمجين في صنع التطبيقات باستخدام الموارد الحوسبية الدنيا. وكانت التطبيقات الأصلية مفسرة، بالرغم من أن التطبيقات الحديثة يمكن أن تكون مكتملة أو جزئية التنفيذ. إن "البرامج" المفردة تشغل في "تقسيمات" الذاكرة. وكانت تقسيمات الذاكرة المبكرة لممبس محدودة بقيمة 2048 بايت وكانت مختصرة للغاية ومساعدة للبرمجة المتعددة على المعدات المحدودة الموارد بشدة، ونظرا لأن أكثر من وظيفة لممبس يمكنها أن تناسب الذاكرات الصغيرة للغاية الموجودة في المعدات في ذلك الوقت. إن القدرة على تقديم نظم متعددة المستخدمين كانت تصميم لغوية آخر. إن البرمجة المتعددة في اختصار اسم اللغة. وحتى الآلات المبكرة التي كانت تشغل ممبس الداعمة لوظائف متعددة وتعمل في ذات الوقت. ومع التغيير من الكمبيوترات الصغيرة إلى الكمبيوترات الدقيقة بعد ذلك بسنوات، فإنه حتى "المستخدم المفرد لجهاز الكمبيوتر"، الذي لديه جهاز 8-بيت 8-bit بذاكرة 64 ك أو 64ك للذاكرة يمكنه أن يدعم المستخدمين المتعددين، وتشغيل الطرفيات الخرساء في وضع خط الأوامر (وبدون أي أثر لواجهة المستخدم الرسومية).
ونظرا لأن الذاكرة كانت محدودة بالأصل، فإن تصميم اللغة لممبس يقيم بكود مقتضب للغاية. وهكذا فإن كل أمر أو اسم وظيفة لممبس يمكن أن تختصر من حرف إلى ثلاثة أحرف في الطول على سبيل المثال. إغلاق (برنامج الخروج) مثل وظيفة Q $P== $Piece، وأمر R = Read، ووظيفة $TR == $Translate. إن الفراغات وعلامات نهاية السطور أمر كبير في ممبس لأن نطاق السطر يدعم نفس تصميم اللغة المقتضبة. ومن ثم فإن سطر إدخال كود البرنامج يمكن أن يعبر عن نفس الفكرة بعدد صغير من الحروف التي يمكن للغات البرمجية الأخرى أن تأخذ من 5 إلى 10 أضعاف من الحروف للتعبير عنها. إن الاختصار كان ميزة شائعة في اللغات المصممة في تلك الفترة (على سبيل المثال FOCAL-69، ولغات البيسك المبكرة مثل Tiny BASIC، الخ). وهناك لسوء الحظ أثر جانبي لهذه الازدواجية مع الحاجة المبكرة لكتابة كود في أقل سعة ممكنة وهو أن مبرمجي ممبس لا يقومون بالتعليق على الكود واستخدموا اختصارات موسعة، مما يعني أنه حتى خبير ممبس المبرمج لا يمكنه مجرد طوي صفحة الكود لرؤية وظيفته لكن عليه تحليله سطر وراء سطر.


title: ممبس

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


title: ممبس

text: إن جميع الحروف المتغيرة التي لا تكون مسبوقة بحرف بقبعة ("^") تكون مؤقتة وخاصة. ومثل المتغيرات العالمية فإنها أيضا تكون لديها نموذج تخزين تراتبي، لكنها لا تكون "متاحة إلا محلية" فقط لوظيفة مفردة، لذلك فغنها تسمى "محليات" Locals. وكل من جلوبالز ولوكالز يمكن أن تكون لديهم عقدات صغيرة (تسمى منخفضات subscripts في مفردات ممبس). ولا تكون المنخفضات محدودة بالأرقام – أي حرف ASCII أو مجموعة من الحروف يمكن أن تكون محددا منخفضا. وبينما ذلك لا يكون شائعا للغات الحديثة مثل بيرل أو جافاسكربت، فإن هناك ميزة غير معتادة للغاية في أواخر السبعينيات. إن هذه القدرة لم تطبق على مستوى العالم في نظم ممبس قبل عام معايرة أنسي في عام 1984.) وهكذا فإن المتغير المسمى "كار" Car يمكن أن يكون لديه منخفضات مثل "باب"، "محرك" ويمكن أن تحتوي كل منهم على قيمة لديها مخفضات خاصة بها. إن المتغير ^Car("Door") يمكن أن يضع منخفضا متغيرا "للون" على سبيل المثال. وهكذا فإنه يمكنك أن تقول


title: ممبس

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


title: ممبس

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


title: ممبس

text: وليس لممبس أنواع من البيانات. ويمكن معاملة الأرقام على أنها مسلاست من الأرقام، أو سلسلة يمكن التعامل معها على أنها أرقام من خلال المشغلون الرقميون (القسريون بلغة ممبس). وبأي حال فإنه يمكن أن يكون للقسر بعض الآثار الجانبية الضارة. على سبيل المثال فإنه عندما تكون سلسلة ما قسرية، فإن المحلل يتحول بدرجة كبيرة لعمل سلسلة (بادئا من اليسار) في رقم بقدر الإمكان، ثم التخلص من الباقي. وهكذا فإن البيان IF 20. ويسمح بالعديد من البيانات لكل خط وهو أمر شائع. إن نطاق أي IF، و ELSE، وأمر FOR هو "مذكر الخط الحالي".


title: ممبس

text: حساسية الحال: إن الوامر والوظائف الجوهرية تتسم بكونها غير ذات حساسية الحالة. وعلى العكس من ذلك فإن الأسماء والتصانيف المتغيرة تكون ذات حساسية حال. وليس هناك معنى خاص للحالة العليا مقارنة بالدنيا وهناك عدد قليل من الاتفاقات المتبعة. إن علامة النسبة (%) تعتبر قانونية باعتبارها الحرف الأول للمتغيرات والتصانيف.


title: ممبس

text: ما بعد الاشتراطات: إن تنفيذ معظم جميع الأوامر يمكن التحكم فيه بمتابعته بنقطتين وتعبيرا بالقيمة الموثوق فيها: وتضع SET:N<10 A="FOO" الرمز A لـ "FOO" إذا كانت N أقل من 10؛ وتؤدي DO:N>100 PRINTERR وظيفة PRINTERR إذا كانت N أكبر من 100. ويقدم هذا البناء حالة اشتراطية يكون نطاقها أقل من الخط الكامل.


title: ممبس

text:
الاختصار: يمكنك اختصار جميع الأوامر تقريبا والوظائف الأصيلة إلى حرف واحد أو اثنين أو ثلاثة.
الكلمات المحجوزة: لا توجد. لأن ممبس تفسر الشيفرة المصدرية من خلال السياق، فإنه ليست هناك حاجة لكلمات محجوزة. ويمكنك استخدام أسماء أوامر اللغات كمتغيرات. وليس هناك مسابقة مثل مسابقة كود سي الدولية the International Obfuscated C Code Contestلممبس، بالرغم من إمكانية الأمثلة كما يلي، وهي قانونية تماما ومتعلقة بشفرة ممبس:


title: ممبس

text: ويمكن جعل ممبس أكثر غموضا باستخدام بنية المشغل المتعاقد، كما يتضح في هذا المثال المشتق من المثال السابق:


title: ممبس

text: المصفوفات: وتصنع ديناميكيا، وتخزن على أنها بي-تريز، ويتم تحليلها (على سبيل المثال لا يتم في الغالب استخدام فراغ للعقد المفقودة)، ويمكنها استخدام أي رقم من المسجلات، ويمكن أن تكون هذه المسجلات سلاسل أو رقمية (بما فيها النقطة العائمة). وتكون المصفوفات دائما مخزنة آليا في نظام مصنف، لذل لا توجد أية فرصة للتصنيف والتعبئة أو إعادة الطلب أو إعادة تنظيم قاعدة البيانات. إن الوظائف الداخلية مثل $DATA, $ORDER, $NEXT, $QUERY تعتبر وظائف تقدم تناولا كافيا لبنية المصفوفة الأساسية أو القرص أو الذاكرة.


title: ممبس

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


title: ممبس

text: المصفوفات العالمية: ^abc, ^def ويتم تخزينها على القرص، وتكون متاحة لجميع العمليات وتكون مستمرة عندما تنتهي عملية التكوين. إن الجلوبالز الكبيرة للغاية (على سبيل المثال مئات الجيجابايت) تكون عملية وكافية في غالبية التطبيقات. وهذه هي آلية "قاعدة بيانات" الرئيسية. وهي مستخدمة بدلا من استدعاء نظام التشغيل لتكوين الملفات وكتابتها وقراءتها.


title: ممبس

text: عدم التوجيه: في العديد من السياقات يمكن استخدام codice_4 كما يمكن التخصيص بفاعلية لمحتويات VBL في بيان ممبس آخر. وتضع SET XYZ="ABC" SET @XYZ=123 المتغير ABC لـ 123. ويؤدي SET SUBROU="REPORT" DO @SUBROU النظام الفرعي المعروف باسم REPORT. ويسمح مثل هذا الاستبدال بالتقييم البطئ والإلزام المتأخر وكذلك فاعلية المكافئ التشغيلي "للمؤشرات" في اللغات الأخرى.


title: ممبس

text: وظيفة القطعة: تقسم هذه الوظيفة المتغيرات إلى قطع متفرقة تستدل بسلسلة المشغل المحددة للمستخدم (وتسمى أحيانا "محدد"). وسيجد الذين يعرفون awk أن ذلك أمرا معتادا لديهم. وتعني $PIECE(STRINGVAR,"^",3) أن "قطعة ثالثة من STRINGVAR". ويمكن أن تظهر وظيفة القطعة أيضا بوصفها هدف واجب (أمر SET). بعد


title: ممبس

text: $PIECE("world.std.com",".",2) تحقق yields "std" SET $P(X,"@",1)="office" وتؤدي إلى أن تصبح Xما يلي "office@world.std.com" (لاحظ أن $P تكافئ $PIECE، ويمكن أن تكتب هكذا).


title: ممبس

text: وظيفة الأمر


title: ممبس

text: $codice_5 yields 6, $codice_6 yields 10, $codice_7 yields 10, $codice_8 yields 15, $codice_9 yields "".


title: ممبس

text: وهنا فإن المعطيات كانت أقل تكرارا حتى توقفها من خلال إنهاء غلق Quit. ويطبع هذا الخط جدول من i وأشياء (i) حيث تكون i هي على التوالي 6، 10، 15.


title: ممبس

text:
المستخدمون المتعددون/ المهام المتعدد/ المعالجات المتعددة: تدعم ممبس مستخدمين وعمليات متعددون في وقت واحد حتى عندما لا يكون نظام التشغيل القائم (E.g. MS-DOS).. إضافة إلى ذلك فإنه هناك القدرة على تخصيص البيئة لمتغير ما، مثل من خلال تخصيص اسم الآلة في المتغير (كما في SET ^|"DENVER"|A(1000)="Foo")، والذي يمكن أن يسمح لك بالولوج إلى البيانات من آلات بعيدة.
وبالنسبة للإدراج المتواصل لبقية أوامر، ومشغلو، ووظائف، والمتغيرات الخاصة لممبس، انظر هذه المصادر على الإنترنت:


title: ممبس

text:
بينما لا يحظى هذا العنوان إلا باهتمام محدود خارج مجتمع ممبس/ M، فإن هذا الموضوع متواصل هناك.
إن جميع المواضع التالية يمكن أن يتم دعمها من خلال ناس قادرون على التحصيل المعرفي في أوقات مختلفة:


title: ممبس

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


title: ممبس

text: إن المعيار الأكثر حداثة (ISO/IEC 11756:1999، والمعاد توكيده في 25 يونيو 2010) لا يزال يذكر كل من إم وممبس كاسمين مقبولين رسميا.


title: ممبس

text: في ممبس فإن التاريخ والوقت الحاليين محتويين في متغير نظام خاص، $H(اختصارا لـ ‘HOROLOG’). ويكون التنسيق زوجا من المكملات مفصول بينهما بواسطة فاصلة، مثال. "54321,12345" والرقم الأول هو رقم الأيام منذ 31 ديسمبر 1840، مثل رقم اليوم 1 وهو 1 يناير 1841؛ ويشير الرقم الثاني للثواني منذ منتصف الليل.


title: ممبس

text:
وقد كتب جيمس م. بوتراس أنه قد اختار هذه الفترة لطرق التاريخ ولاوقت في المجموعة التي طورها من قبل مجموعته في MGH في عام 1969:
إن التنفيذ المباشر للشيفرة المصدرية على منصات الحوسبة التاريخية في عهد الأقراص الدقيقة، والرامات صغيرة ووصلات 300 بود التسلسلية قد أدت إلى أسلوب تشفير تاريخي كان مكثفا ومصاحبا للخبراء، حتى أن أساليب التشفير المعاصرة لممبس تنتج حاليا تشفيرا أكثر قابلية للقراءة.
أولا، كمثال لشيفرة M من عام 2010، فإن حلا لتدريب قياسي قائم على حساب المتوالية الأطول المتحققة عند حساب المتوالية الأطول حدس كولاتز لمجموعة من المكملين. وهذا المثال مكتوب بلغة GT.M ويستغل ويجسد العديد من مميزات ممبس


title: ممبس

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


title: ممبس

text: وفيما يلي تطبيقا ثانيا والذي يجسد إمكانات الإيجاز في ممبس.


title: ممبس

text: A second implementation is below, which illustrates the possibilities of concision in MUMPS.


title: ممبس

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


title: ممبس

text: ويقوم نفس اللوغاريتم باستخدام متغير موسع وأسماء أوامر


title: ممبس

text: ويقوم هذا البرنامج بوضع قيمة "xx" للاسم المتغير x، ثم يبدأ تنفيذا مطلقا لـ x يمكن أن يسفر عن تدفق مفرط في التكويم. وعند مجرد 13 حرف، بما فيها الفراغات وعلامة نهاية السطر (لأن معايرة ممبس تحدد السعة التخزينية بالحروف وليس بالبايت)، باستخدام حرفين، يظهر المتغير الأول أنه من الممكن أيضا كتابة تشفير موجز في M.


title: هندسة الأداء

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


title: هندسة الأداء

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


title: هندسة الأداء

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


title: هندسة الأداء

text: مفهوم "ظروف محددة" هو أمر ضروري. وسوف يتجلى ذلك في المثال:


title: هندسة الأداء

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


title: هندسة الأداء

text:
لا تقتصر المتطلبات الغير وظيفية عن حالات الاستخدام. فيجب تحديد أحجام النظام العامة. وستصف هذه تحميل النظام العام خلال فترة زمنية محددة، وتحديد عدد كل نوع من المعاملات التجارية التي سيتم تنفيذه في كل وحدة من الوقت. الأحجام العامة عادة ماتصف يوم عمل نموذجي، ومن ثم يتم تقسيمها لكل ساعة. وهذا يصف كيفية اختلاف تحميل النظام على مدار اليوم. فعلى سبيل المثال: 1200 معاملة ألف، و300 معاملة باء، و3300 معاملة جيم، وغيرها في يوم عمل معين؛ ثم في ساعة 1 سيتم تنفيذ عدد معين من ألف وباء وجيم وغيرها، وفي ساعة 2 سيتم تنفيذ عدد معين، وهلم جرا. وغالبا ما يتم تنسيق المعلومات في شكل جداول للتوضيح. إذا نفذ المعاملات طبقات مستخدمين مختلفة، سيتم دمج هذه المعلومات أيضا في توثيق NFR. وأخيرا، يمكن تصنيف المعاملات إلى نوع عام، عادة كتفاعل المستخدم، وتوليد التقرير، وتجهيز الدفعات.
وسيتم استخدام أحجام النظام الموثقة في وثائق NFR كمدخلات لكلا من اختبار تحميل واختبار تحمل النظام من خلال اختبار الأداء.


title: هندسة الأداء

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


title: هندسة الأداء

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


title: هندسة الأداء

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


title: هندسة الأداء

text: في المرحلة الأولية من هذه المرحلة يتتطلب عددا من أداة الأداء التاابعة للأنشطة. وهي تشمل:


title: هندسة الأداء

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


title: هندسة الأداء

text:
وينبغي إدخال مفهوم تطبيق الأجهزة هنا بمشاركة منظمة مراقبة تقنية المعلومات. والعديد من نظم مراقبة البائع لديهم قدرات الأداء، وهم غالبا ما يعملون في نظام التشغيل، والشبكة، ومستويات الخادم؛ على سبيل المثال استخدام وحدة المعالجة المركزية، واستخدام الذاكرة، ومدخلات/مخرجات القرص، ولخوادم منصة جافا، النسخة التجارية يتضمن أداء آلة جافا الأفتراضية جمع القمامة.
ولكن هذا النوع من الرصد لا يسمح بتتبع مستوى أداء حالة الاستخدام. والوصول إلى هذا المستوى من القدرة على الرصد يمكن ان يقتضي أن يكون التطبيق نفسه مجهزاً. وبدلا من ذلك، يمكن استخدام مجموعة أدوات رصد والتي تعمل على مستوى التحول. (من الأمثلة على ذلك تقنية Cx من TeaLeaf، و Foglight من Quest Software، و RUM من هوليت باكارد، و SuperAgent من NetQoS، أو ClientVantage من Compuware). وكان يجب على فريق الرصد تحديد الاحتياجات في المرحلة السابقة، ويجب عليه العمل مع فريق التطوير لضمان تضمُن رصد مستوى حالة الاستخدام.


title: هندسة الأداء

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


title: هندسة الأداء

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


title: هندسة الأداء

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


title: هندسة الأداء

text:
على سبيل المثال: لنفترض أننا يمكن أن تحسن 70 ٪ من وحدة نمطية بموازتها، وتعمل على 4 وحدات معالجة مركزية بدلا من وحدة معالجة مركزية واحدة. إذا كان α هو جزء من العملية الحسابية المتتابعة، و(α - 1) هو الجزء الذي يمكن أن يكون بشكل متوازي، اذن فالسرعة القصوى التي يمكن تحقيقها باستخدام المعالجات P تَعطى وفقا لـ قانون أمدال:
في هذا المثال سوف نحصل على: 1/(.3+(1-.3)/4) == 2.105. ولمضاعفة قوة المعالجة لأربعة أضعاف نقوم بمضاعفة الأداء (من 1 وحتي 2.105). ونحن الآن في الطريق إلى إضعاف الواردات. وإذا داومنا على مضاعفة القدرة الحاسوبية مرة أخرى من 4 إلى 8 معالجات سنحصل على 1/(.3+(1-.3)/8) == 2.581. اذن فعند مضاعفة قوة المعالجة مرة أخرى فسوف نحصل على تحسن الأداء بحوالي الخَمس (من 2.105 وحتى 2.581).


title: هندسة الأداء

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


title: هندسة الأداء

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


title: هندسة الأداء

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


title: هندسة الأداء

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


title: هندسة الأداء

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


title: هندسة الأداء

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


title: هندسة الأداء

text: (ITIL)


title: قرية أليكساندرو إيوان كوزا

text: قرية أليكساندرو إيوان كوزا هي قرية تقع في مدينة أقليم ياش في رومانيا .


title: أندريشيني

text: أندريشيني هي قرية تقع في إقليم ياش في رومانيا وبلغ عد سكانها 4435 نسمة في عام 2002م .


title: أرونيانو

text: أرونيانو هي قرية تقع في إقليم ياش في رومانيا وبلغ عدد سكانها 2,884 نسمة في عام 2002م .


title: بالاش (ياش)

text: بالاش هي قرية تقع في إقليم ياش في رومانيا .


title: بالتساتس

text: بالتساتس هي قرية تقع في إقليم ياش في رومانيا وبلغ عدد سكانها 5,019 نسمة في عام 2002 .


title: بيرنوفا

text: بيرنوفا هي قرية تقع في إقليم ياش في رومانيا وبلغ عدد سكانها 3,935 نسمة في عام 2002م .


title: بيلتشت

text:
بيلتشت هي قرية تقع في إقليم ياش في رومانيا وبلغ عدد سكانها 11,179 نسمة في عام 2002م .
وتقع القرية على نهر باهلوي على بعد 44 كم عن مدينة ياش.


title: بيفولاري

text: بيفولاري هي قرية تقع في إقليم ياش في رومانيا وبلغ عدد سكانها 4,513 نسمة في عام 2002م .


title: الصفا (توضيح)

text: الصفا قد تعني:


title: برايشت

text: برايشت هي قرية تقع في إقليم ياش في رومانيا وبلغ عدد سكانها 3,265 نسمة في عام 2002م .


title: بوتيا (ياش)

text: بوتيا هي قرية تقع في إقليم ياش في رومانيا وبلغ عدد سكانها 3,927 نسمة في عام 2002م .


title: تشبلينتسا

text: تشبلينتسا هي قرية تقع في إقليم ياش في رومانيا وبلغ عدد سكانها 4,572 نسمة في عام 2002م .


title: تشوهوراني

text: تشوهوراني هي قرية تقع في إقليم ياش في رومانيا .


title: وكالة الانباء الوطنية العراقية

text: وكالة الانباء الوطنية العراقية - ونا أول وكالة انباء حرة مستقلة في العراق والمنطقة اسست بتاريخ 15 تموز 2003 وتنضوي وكالة الأنباء الوطنية العراقية – (ونا) تحت مظلة منظمة أوروك الأعلامية العراقية المستقلة ,وقد بدأت الوكالة بثها في 15/ 7 / 2003 م معتمدة على حضورها في قلب الاحداث العراقية والمنطقة العربية.


title: وكالة الانباء الوطنية العراقية

text: تعتمد الوكالة في تغطية الاحداث على شبكة من المراسلين يتوزعون في معظم محافظات العراق أضافة إلى عدد من المراسلين في الدول العربية المجاورة.


title: وكالة الانباء الوطنية العراقية

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


title: وكالة الانباء الوطنية العراقية

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


title: وكالة الانباء الوطنية العراقية

text: رغم صعوبة العمل الصحافي في بلد مثل العراق وما يشهده من أحداث دموية يومية لم تستثن ِ حتى الصحافيين من شرورها أصر العاملون في الوكالة على تأدية عملهم والمجازفة بأرواحهم من اجل نقل الحقيقة وبناء نظام اعلامي جديد لم يكن متعارفا عليه في المشهد العراقي, إلا أن هذا العمل لم يكن دون خسائر ضمن طاقم المراسلين فقد خسرت الوكالة الشهيد بسام كريم العزاوي خلال تغطية احداث المواجهات بين القوات الاميركية وجيش المهدي في مدينة كربلاء في 19-5-2004 بعد تعرضه لإطلاق نار من قبل جنود جيش الاحتلال الاميركي، ومن ثم قدمت الوكالة شهيدا آخرا هو الزميل المرحوم حيدر كريم العزاوي بعد تعرضه لإطلاق نار من قوات الاحتلال داخل مدينة بغداد في 2-7-2005, لكن هذا لم يثن الوكالة عن تادية عملها وأستمرت بالعمل حتى الآن.


title: وكالة الانباء الوطنية العراقية

text: يتميز موقع الوكالة بخدمة مميزة وغير مسبوقة على مستوى وكالات الانباء العربية والعالمية مثل خدمة "الأخبار العاجلة" عبر رسائل الهاتف الجوال القصيرة sms لتجعل الخبر في متناول الجميع بأقصى سرعة ممكنة.


title: وكالة الانباء الوطنية العراقية

text: وقد اتاحت الوكالة لمتصفحي الموقع خدمة متميزة أخرى هي خدمة rss لتسهيل عمل المؤسسات الاعلامية الراغبة بالاستفادة من إعادة بث أخبار الموقع.


title: وكالة الانباء الوطنية العراقية

text: أخيرا فأن وكالة الانباء الوطنية العراقية – ونا, تعد زوار موقعها الكرام بالتواصل وتقديم كل ماهو جديد ومفيد بما يسهم في صناعة اعلام عربي حر ومتطور.


title: وكالة الانباء الوطنية العراقية

text: رقم الايداع في دار الكتب والوثائق العراقية : 2434 لسنة 2014


title: وكالة الانباء الوطنية العراقية

text:
وكالة الانباء الوطنية العراقية(الموقع الرسمي)
نص النظام الداخلي للوكالة : تعديل النظام الاساسي لوكالة الانباء الوطنية العراقية (ونا) (النص الكامل)


title: وكالة الانباء الوطنية العراقية

text:
مصدر المقالة
موقع الوكالة بالإنكليزية


title: كيقباد الأول

text: كَيقُبَاد الأول وهو علاء الدين كَيقُبَاد بن كيخسرو، (1188 م - 1237م ) سلطان سلاجقة الروم في الفترة بين 1220 و1237م. وسّع علاء الدين كيقباد حدود السلطنة على حساب جيرانه وخصوصاً إمارات المنكوجكيين والأيوبيين كما دعم وجود السلاجقة في البحر المتوسط بعد سيطرته على ميناء ألانيا (أي: علائیة) والذي سمي هكذا على اسم "علاء" فيما بعد تكريماً له. كما أخضع جنوب شبه جزيرة القرم لسيطرة السلاجقة لفترة وجيزة من الزمن بعد غزوه لسوداك (Sudak) على البحر الأسود. ويلقب هذا السلطان أيضاً بكيقباد العظيم وذكره ابن كثير بأنه كان مِنْ أَعْدَلِ المُلُوك وَأَحْسَنِهِمْ سِيرَة ويذكر اليوم بتراثه المعماري الغني والثقافة الرائعة التي ازدهرت في ظل حكمه.


title: كيقباد الأول

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


title: كيقباد الأول

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


title: كيقباد الأول

text: لكن بعد الوفاة المفاجأة لكيكاوس سنة 1220م حرر كيقباد من سجنه ونجح في تولي العرش.


title: كيقباد الأول

text: وقد ضعفت مملكة أرمينيا الصغرى وأصبحت خاضعة لسلطة السلاجقة وقد وطن السلطان التركمان على طول حدود جبال طوروس في منطقة عرفت فيما بعد باسم مرسين وقد أسس هؤلاء التركمان فيما بعد إمارة قرمان. تقدم كيقباد في سنة 1228/1227م إلى شرق الأناضول، وقد خلق وصول جلال الدين منكبرتي الفار من مملكة الغزنويين بعد دمارها على يد المغول حالة من عدم الاستقرار السياسي. كما نجح السلطان في هزيمة الأيوبيين والأرتقيين وإمارات المينجوجيك واستولى على حصون في أديامان وكاهاتا وجمشكزك.


title: كيقباد الأول

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


title: كيقباد الأول

text: وضع كيقباد نصب عينيه ازدياد قوة المغول وتوسع نفوذهم فأقام القلاع وعزز الدفاعات في المحافظات الشرقية، لكنه توفي في سن مبكرة سنة 1237م.


title: تشورتيشتي

text: تشورتيشتي هي قرية تقع في إقليم ياش في رومانيا وبلغ عدد سكانها 4,366 نسمة في عام 2002م .


title: الانتخاب بالقائمة النسبية

text: الانتخاب بالقائمة النسبية :


title: الانتخاب بالقائمة النسبية

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


title: الانتخاب بالقائمة النسبية

text: مما يذكر أن نظام القائمة - وكما ذكر القاضي أحمد مكي - لا يستقيم إلا في المجتمعات الديمقراطية، لأنه يستدعي حرية تكوين الأحزاب.


title: الانتخاب بالقائمة النسبية

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


title: الانتخاب بالقائمة النسبية

text: إن هذا النظام قد يشوبه بعض التعقيد حيث يشمل بعض الإجراءات المطولة.. جدير بالذكر أن هذا الأسلوب كان معمولاً به في قانون الانتخاب سنة 1986.


title: الانتخاب بالقائمة النسبية

text: في هذا النظام توزع المقاعد الشاغرة علي الأحزاب المختلفة بنسبة عدد الأصوات التي حاز عليها كل واحد منها، فلو افترضنا أن هناك ثلاث قوائم تتنافس علي عشرة مقاعد في دائرة انتخابات معينة، وقد حصلت القائمة الأولي علي 6000 صوت والقائمة الثانية علي 3000 صوت والقائمة الثالثة علي 1000 صوت، فإن المقاعد العشرة ستوزع بنسبة عدد الأصوات التي حصلت عليها كل قائمة لتفوز القائمة الأولي بستة مقاعد هم الستة مرشحين من 1 ـ 6 والقائمة الثانية بثلاثة مقاعد هم المرشحون رقم 1 و2 والقائمة الثالثة بمقعد واحد هو المرشح رقم 1 في قائمة حزبه فقط.


title: الانتخاب بالقائمة النسبية

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


title: الانتخاب بالقائمة النسبية

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


title: صادق الأحمر

text: صادق بن عبد الله الأحمر (20 يونيو 1956) "شيخ مشائخ حاشد"، هو أكبر أبناء عبد الله بن حسين الأحمر، وقيادي في حزب التجمع اليمني للإصلاح، وفقا لبعض المصادر، أرسله والده لدراسة المرحلة الابتدائية والاعدادية في مصر خلال ثورة 26 سبتمبر ولكنه عاد بعدما اشتد الخلاف بين عبد الله بن حسين الأحمر والرئيس عبد الله السلال. وفقا لنفس المصدر، توجه مرة أخرى إلى مصر لاكمال دراسته الثانوية ولم يكمل دراسته الجامعية لإن الرئيس إبراهيم الحمدي قطع بعثته الدراسية نتيجة خلافه مع عبد الله بن حسين الأحمر. يُزعم أنه درس الطيران المدني في الولايات المتحدة وتخرج عام 1987.


title: صادق الأحمر

text: برز دوره السياسي إبان ثورة الشباب اليمنية حين أعلن انضمام قبيلة حاشد إلى الثورة السلمية. وفي خضم الشحن السياسي في اليمن أثناء الثورة، وبالتحديد يوم الثلاثاء 21 جمادى الثانية 1432 هـ الموافق 24 مايو 2011 أمر الرئيس علي عبدالله صالح جنوده بمهاجمة بيت الشيخ الأحمر في صنعاء وتصادف بدء الهجوم مع وجود وسطاء لحل المشكلة ما أدى لإصابة بعض الوسطاء ومقتل بعض رجال الأحمر وبلغت جملة القتلى حتى صباح الخمييس 40 قتيلا و86 جريحا، واستمر الاقتتال بين الجانبين عدة أيام حتى أصدر الرئيس اليمني أمره باعتقال الشيخ الأحمر وبقية إخوته ومحاكمتهم بتهمة التمرد.


title: تشوريا

text:
تشوريا هي قرية تقع في إقليم ياش في رومانيا وبلغ عدد سكانها 10,092 في عام 2002م .
يوجد في القرية تسعة مدارس.


title: أطفال السيكربت

text:
سكربتات صبيانية أو طفولية , أو عادة skid, script bunny, script kitty, script-running juvenile (SRJ)، أو ما شابه هو مصطلح ناقص يستخدم لوصف الذين يستخدمون النصوص أو البرامج التي يتم تطويرها لهجوم على أنظمة الكمبيوتر والشبكات وتشويه مواقع الشبكة.
في تقرير كارنيه ميلون والذي أعد لقسم الدفاع الأمريكي 2005 تم تعريف نص الطفيلي كالتالي
نص الأطفال
"عدم نضوج زائد ولكن لسوء الحظ غالبا ما يستغل الثغرات الأمنية على الانترنت. غالبا ما تستخدم النصوص الطفلية أساليب مشهورة وبرامج سهل الحصول عليها للبحث واستغلال نقاط الضعف علي الحاسبات الأخرى على الانترنت، غالبا ما تكون عشوائية وغالبا بإهتمام أقل أو ربما حتى فهم لإمكانية حدوث نتائج مضرة.


title: أطفال السيكربت

text: النصوص الطفلية تحتوي على عدد كبير من البرامج الضارة سهلة التحميل قادرة على خرق الحاسبات والشبكات، مثل هذه البرامج تحتوي على إمكانية رفض الخدمة عن بعد مثل؛ WinNuke trojans Back Orifice, NetBus, Sub7, وProRat وضعف الماسح الضوئي/ Metasploit, المدخل، وبرامج غالبا ما تكون مصممة للأمان أصلا، في استبيان لطلاب الكلية في عام 2010 والذي كان تحت إشراف جمعية رؤساء ضباط الشرطة التابعة للمملكة المتحدة، قاموا بتبيين مستوى عالي من الاهتمام في بدأ الاختراق، واخترق 23% من طلاب الجامعة أنظمة تكنولوجيا المعلومات، اعتقد 32% أن الاختراق شيء جيد / جميل، واعتبر 28% أنه شيء سهل.


title: أطفال السيكربت

text:
إن النصوص الطفلية تخرب المواقع لسببين الإثارة وإعلاء سمعتهم بين أقرانهم، استخدم المزيد من النصوص الطفلية الضارة صناديق الفيروسات لإنتاج وتكاثر فيروسات Anna Kournikova وLove Bug.[1]، تفتقر نصوص الأطفال إلى مهارات التشفير الكافية لفهم الآثار والآثار الجانبية لعملهم فهي على الأقل تطورها فقط، ونتيجة لهذا فهم يتركون أثار هامة تؤدي إلى الكشف عنهم أو يهاجمون بشكل مباشر الشركات التي لديها بالفعل أنظمة كشف وأنظمة مضادة، أو في الحالات الحالية، تترك تصادم يدل على أنه ما زال يعمل.
نصوص الأطفال غالبا ما تكون قادرة على استغلال الأنظمة الضعيفة وتكافح من أجل نجاح متوسط. بعض من الأمثلة الغير مشهورة تشمل:
كالس a.k.a مافيابوي طالب ثانوي من مونتريال كندا تم إلقاء القبض عليه في عام 2000 لاستخدامه أدوات تم تحميلها للإطلاق سلسلة من هجمات إخفاء الخدمة المنشورة ضد ملفات تعريف المواقع مثل ياهو، دل وغي باي وسي إن إن، تم تقدير الضرر المالي بنحو 102 مليون دولار تضمن الأضرار الاقتصادية العالمية، لقد أنكر كالس المسئولية مبدئيا ولكن حكم عليه على أنه مذنب فيما بعد، لكثرة القضايا المرفوعة ضده. ولقد أصر محاميه على أن عميله كان فقط يجري فحوصات للمساعدة في تصميم جدار حماية مطور، فيما بينت سجلات المحاكمة أن الشاب لم يبد أي ندم وقد عبر عن رغبته في الرحيل إلى إيطاليا لعدم قسوة قوانين جرائم الكمبيوتر هناك. حكمت محكمة الشباب في مونتريال عليه في 12 سبتمبر 2001 بثمانية شهور تحت "الوصاية المفتوحة" سنة تحت الاختبار، واستخدام محكوم للإنترنت وغرامة صغيرة.


title: أطفال السيكربت

text: استخدم نص طفلي غير معروف في عام 1999 لتشويه سمعة طالب قانون يدرس في جامعة لوند في السويد. قام بتحميل Child pornography موقع إباحي على جهازه الحاسب من موقع غير معروف، ولكن تم تبرئته من التهم في عام 2004 حينما تم الكشف عن أنه تم استخدام NetBus للتحكم في جهازه الحاسب.


title: أطفال السيكربت

text: كان Jeffrey Lee Parson، a.k.a T33Kid طالب ثانوي عمره 18 سنة من ولاية مانسوتا وكان مسئولا عن نشر Blaster (computer worm) الغير مشهورة المتنوعة. قام بارسون فقط بتعديل Blaster (computer worm) الأصلي مستخدما hex editor والسائد بالفعل لإضافة اسم الشاشة الخاص به إلى الموجود والذي يعمل بالفعل ثم أضاف باب خلفي آخر وليثيوم ثم قام ببثه على موقعه، بعد هذا التعديل البسيط فإن البرنامج الجديد القابل للتطبيق يعد بديل ولكن الجهات المعنية يمكنها تبع الاسم الذي يعود اليه البرنامج. كان البرنامج جزء من هجوم DoS والذي كان يهاجم أجهزة الكمبيوتر التي تعمل بنظام تشغيل Microsoft Windows،وأخذ الهجوم شكل SYN flood الذي سبب حد أدنى من الضرر، ثم حكم عليه بالسجن لمدة 18 شهر في 2005.


title: أطفال السيكربت

text: عل عموم كل هذا الكلام خرطي كلام فاضي


title: سيمولا (لغة برمجة)

text: سيمولا هو اسم للغتين برمجيتين (سيمولا 1 وسيمولا 67)، تم تطويرهم في عام 1960 م في المركز النرويجي للحوسبة في اوسلو بواسطة أولي يوهان دال و كريستين نيغارد. تركيب نحوي (Syntactically) إنها مجموعة معترف بها بشكل منصف من ALGOL 60.


title: سيمولا (لغة برمجة)

text:
قدم سيمولا 67 كائنات(objects) ,فئات(3classes) , فئات فرعية(2subclasses) , طرق ظاهرية(virtual methods) , الروتين الثانوي(coroutines) ,محاكاة منفصلة الحدث(discrete event simulation) , جامع القمامة (garbage collection).
يعتبر السيمولا أول لغة برمجة كائنية التوجه. كما يوحي به اسمة. صمم سيمولا لإداء المحاكاة ولتلبية احتياجات الإطارات المقدمة لبيئة العمل لكثير من لغات البرمجة كائنية التوجهالمستخدمة اليوم.
أستخدم سيمولا في مجموعة واسعة من البرامج مثل محاكاة تصميم دارات التكامل الفائقVLSI ,عمليات النمذجة (process modeling) , ميثاق اتصالات (protocols) , خوارزمية (algorithms) , وفي غسرها من البرامج مثل التنضيد (typesetting) , رسومات الحاسب(computer graphics) وفي التعليم (education).
منذ ان اعيد تنفيذ كائتنات سمولا في C++ ,الجافا(Java) , C#. غالباً ماتم الاستهانة بتأثير السيمولا.
اعترف مخترع لغة ++C بينجامين ستروتروب (Bjarne Stroustrup) بأن السيمولا 67 كان له التأثير العظيم لجعلة يخترع C++, لتحقيق نوع من التحسينات في الإنتاجية التي تقدمها سيمولا لتسريع الحاسوبية الخام التي تقدمها لغات المستوى الأدنى مثل لغة البرمجة الأساسية المختلط (BCPL).
لا يزال يستخدم سيمولالأنواع مختلفة من الدورات الدراسية الجامعية،
على سبيل المثال قام جيريك سكلنار(Jarek Sklenar [3])بتعليم السيمولا للطلاب في جامعة مالطا.


title: سيمولا (لغة برمجة)

text: ملحوظة المعلومات القادمة مبنية على المقالات التأريخية لجان رون.


title: سيمولا (لغة برمجة)

text:
ابتدء كرستن نيقارد بكتابة برامج المحاكاة للحاسب في عام 1957 م. ورأى نيقارد احتياج لطريقة أفضل لوصف
عدم التجانس ومجموعة التعليمات (operation) للنظام (system).
لإكمال فكرتة على لغة برمجة رسمية لوصف النظام , استنتج نيقارد بأنة يحتاج إلى شخص ما يملك مهارات أكثر منه في كتابة البرامج.انضم اولي جوهان دال لعمل نيقارد في كانون الثاني يناير عام 1962 م. واتخذ قرار ربط اللغة لـALGOL 60 بعد فترة وجيزة من انضمام أولى.
وضعت المفاهيم الأساسية للغة المحاكاة في شهر مايو 1962 م. ولدت سيمولا I كلغة برمجة لأغراض خاصة لمحاكات منفصلة لأحداث الأنظمة.
تمت دعوة كرستن نيقار في لقاء لكي ينظم إلى UNIVAC في اخر شهر مايو 1962 م من اجل التسويق للحاسب الجديد UNIVAC 1107.
في ذلك اللقاء استعرض نيقارد فكرتة سيمولا لمدير نظم البرمجة في Univac ريبورت بيمر.
كان بيمر هاوً ومحلفاً عند ALGOLووجد ان مشروع سيمولا قاهر. وكان بيمر أيضاً يترئس موسم في المؤتمر الدولي الثاني حول معالجة المعلومات المستضاف من IFIP. وقد قام بدعوة نيقارد الذي قام بدورة باستعراض فكرتة سيمولا كامتداد لـ ALGOL لوصف فصل الحدث للشبكات.
حصل المركز النرويجي للحوسبة على UNIVAC 1107 لانة على خصم كبير علية في أغسطس 1963 م.
حيثنفذداهلسيمولا IبموجبالعقدمعUNIVAC. واستند التنفيذ على مترجم UNIVAC ALGOL 60
وشغل سيمولا I بكامل طاقته على حاسب UNIVAC 1107 في كانون الثاني يناير 1965. وخلال السنتين التالية قام داهل ونيقارد بصرف الكثير من الوقت لتعليم السيمولا I. وانتشر السيمولا I في دولتين حول العالم وشغل سيمولا I في وقت لاحق على حاسب Burroughs B5500 computers والروسي URAL-16 computer.
في عام 1966 م قدم C. A. R. Hoareالمبدء في مفهوم سجل بناء الفئة والذي أمد دال ونيجاردلفهم مفهوم التقديم وغيرها من الميزات لتلبية احتياجاتهم لمفهوم عملية معممة.
استعرضدالونيجاردفي شهر مايو 1967 م ورقتهم البحثية في مقرعمل مؤتمراتIFIPعنالفئة والفئة الفرعيةالاعلانية على لغات المحاكاة في أوسلو.وكانت هذه الورقة أول ورقة تعريفية رسمية للسيمولا 67.
وفي شهر يونيو 1967 م عقد مؤتمر لتوحيد اللغة والشروع في عدد من التطبيقات. واقترح دال توحيد نوع ومفهوم الطبقة , وأدى ذلك إلى الكثير من النقاشات الجادة. ورفض الاقتراح من قبل المجلس.
وفي شهر فبراير 1968 م أصبح سيمولا 67 موحد المعاييررسميافي الاجتماع الأول لمجموعة سيمولا.
أصبح سيمولا مؤثراً لدى مطورين Smalltalk ولاحقاً object-oriented programming languages.
وأيضاً ساعد في الهام Actor model لتزامن الحسابات , وأيضاً سيمولا كان الوحيد الذي يدعم co-routines وأيضاً التزامن الغير صحيح concurrency , في اواخر الستينيات وبداية السبعينيات كان هنالك اربع تطبيقات لدى سيمولا وهي :
هذه التطبيقات نفذت لممجموعة واسعة من المنصات. الـ TOPS-10 لتنفيذ مفهوم العامة , المحمية , الطرق ومتغيرات العضو الخاص. وفي وقت لاحق تم دمجها لسيمولا 87.
سيمولا 87 هو اخر المعايير وتم تنفيذة لمجموعة واسعة من المنصات , وبشكل أساسي هنالك ثلاث تطبيقات له وهي :


title: سيمولا (لغة برمجة)

text:
في نوفمبر 2001 استلمداهلونيقارد جائزة لـ IEEE John von Neumann Medal لتقديمهم مفهومInstitute of Electrical and Electronic Engineers للمفاهيم الأساسية الكامنة لـobject-oriented programming من خلال تصميم وتطبيقات سيمولا 67.
وفي شهر فبراير 2002 تسلموا جائزة 2001 وهي جائزة تورينغ Turing Award عن طريق جمعية الحاسبات والمكنات Association for Computing Machinery مع التنوية. للأفكار الأساسية في ظهور البرمجة الموجهة من خلال تصميمهم للغة البرمجة سيمولاوسيمولا 67. وللأسف كلاً من داهلونيقارد لم يتمكنوا من الوصول لمحاضرة جائزة تورينغ ACM Turing Award Lecture. ولقد تم الجدولة لتسليمهم الجائزة عن طريق مؤتمر OOPSLA في سياتل عام 2002 لأنهم توفوا بفارق شهرين عن بعضهم البعض في يونيو وأغسطس على التوالي.
مركز ابحاث سيمولا Simula Research Laboratory هو معهد ابحاث سمي بعد لغة سيمولا. وقد قام نيقارد بعقد دوام جزئي هناك منذ افتتاحة عام 2001.


title: سيمولا (لغة برمجة)

text:
أن ملف الحاسب الفارغ computer file يكون برنامج الحد الأدنى في سيمولا. مقاس عن طريق الحجم للكود مصدريsource code انه يتألف من شيء واحد فقط وهو بيان (statement) الدمية.
وعلى كل حال برنامج الحد الأدنى بشكل مريح يمثل بكتلة فارغة:


title: سيمولا (لغة برمجة)

text: يبدأ تنفيذ وينهي فورا , اللغة لايكون لها أي عائد (return value) من البرنامج نفسة.


title: سيمولا (لغة برمجة)

text:
ملحوظة ان سيمولا حساس لحالة الأحرفcase-insensitive. مثال لبرنامج مرحباً
ياعالم (Hello world program) في سيمولا:


title: سيمولا (لغة برمجة)

text: مثال أكثر واقعية للفئات[1]:1.3.3, 2, والفئات الفرعية [1]:2.2.1 والطرق الظاهرية [1]:2.2.3:


title: سيمولا (لغة برمجة)

text: المثال أعلاه يملك واحداً من الفئة العظمىsuper class (الشكل المنقوش) مع اثنين من الفئات الفرعية (subclasses) (شار والخط). وهناك طريق ظاهرية واحدة مع اثنين من التطبيقات implementations. التنفيذ يبدأ تنفيذ البرنامج الرئيسي. سيمولا ليس لديه مفهوم فئات مجردة الطبقات abstract classesمع أساليب الظاهرية البحتة pure virtual methodsيمكن تمثيلة instantiated. وهذا يعني أنه في المثال أعلاه جميع الطبقات يمكن تمثيلها. وسوف يدعو الطريقة الظاهري الصرفة (pure virtual method) ولكن على اية حال سوف ينتج خطأrun-time error.


title: سيمولا (لغة برمجة)

text:
يدعم سيمولاالنداء بالاسم call by name[1]:8.2.3 ولذلك يمكن بسهولة لجهاز جينسن Jensen's Device ان ينفذ.على اية حال , طور الانتقال الافتراضي لأجل المحيط البسيط يكون هو النداء بالقيمة call by value ,وهو عكس ALGOL الذي يستخدم النداء بالاسم (call by name). الكود المصدري لجهاز جينسنز Jensen's Device يوجب نداء بالاسم دعوة المحيط عندما يطلبها مترجم سيمولا.
مثال اخر ابسط بكثير وهو للوظيفة الحسابية(summation function∑) الذي يمكن تطبيقه كما يلي :


title: سيمولا (لغة برمجة)

text:
المثال بالأعلى يستخدم نداء بالاسم call by name للتحكم بالمتغير (K) والمعبر U)). وهذا يسمح بالتحكم بالمتغير عن طريق المعبر.
ملحوظة معايير سيمولا تسمح لقيود محددة في التحكم بالمتغير في حلقة واحدة (for loop).الكود الذي بالأعلى عندما تكون الحلقة في أقصى قابلية لها.
ما يلي :
formula_1


title: سيمولا (لغة برمجة)

text: يمكن تنفيذه كالتالي :


title: سيمولا (لغة برمجة)

text:
يتضمن سيمولامجموعة من المحاكات لفعل محاكاة منفصلة الحدث (discrete event simulations). هذه المجموعة مبنية على مفهوم ميزات والروتين البرمجة كائنية التوجه (object oriented) التابع لسيمولا.
سام، سالي، واندي يتسوقون لشراء الملابس. يجب عليهم التشارك في غرفة واحدة لقياس الملابس. كل واحد منهم يستعرض المتجر لمدة 12 دقيقة ثم يستخدم غرفة القياس لمدة ثلاث دقائق فقط ، كلالتالي وزع توزيع
عادي.محاكاة لتجربتهم غرفة القياس هي كما يلي :


title: سيمولا (لغة برمجة)

text: وتعد الكتلة الرئيسية الغير مسبوقة للمحاكاة هي تمكين المحاكاة. ويمكن استخدام.وحزمة المحاكاة يمكن استخدامها في الكتلة والمحاكاة ويمكنأنتتداخلحتىعندمانحاكيشخصيعمل المحاكاة.


title: سيمولا (لغة برمجة)

text:
العقبة الرئيسية للمحاكاة هي تمكين المحاكاة.وحزمة المحاكاة يمكن استخدامها في الكتلة والمحاكاة ويمكن أن تتداخل حتى عندما نحاكي شخص يعمل المحاكاة.
الكائن هو غرفة القياس يستخدم قائمة الانتظار(door) للسماح له بالدخول إلى غرفة القياس. عندما يطلب شخص ما غرفة القياس وتكون مشغولة يجب أن ينتظر في قائمة الانتظار هذه (Wait (door)). وعندما يقوم شخص ما بالخروج من غرفة القياس الأول (اذا وجد) يتم تحريرها من قائمة الانتظار (Activate door.first) وإزالتها من قائمة الانتظار وفقا لذلك الباب (door.First.Out).


title: سيمولا (لغة برمجة)

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


طريقة تقييم معيار تكامل نموذج نضوج المقدرة من أجل تحسين العملية (SCAMPI) هي الطريقة الرسمية في معهد هندسة البرمجيات Software Engineering Institute لتوفير تقييمات لقياس الجودة فيما يتعلق بنماذج تكامل نموذج نضوج المقدرة Capability Maturity Model Integration. ويتم استخدام تقييمات ( (SCAMPI لتحديد نقاط القوة والضعف في العمليات الحالية، واكتشاف مخاطر التطوير/الاكتساب، وتحديد تقييمات مستوى المقدرة والنضوج. وغالبا ما يتم استخدامها كجزء من برنامج عملية التحسين process improvement أو في تقييم الموردين. وتعرف الطريقة عملية التقييم على أنها تتكون من الإعداد، وأنشطة داخل الموقع، وملاحظات تمهيدية، ونتائج، وتقييمات، وكتابة التقرير النهائي، وأنشطة المتابعة.


title: طريقة تقييم معيار تكامل نموذج نضوج المقدرة من أجل تحسين العملية

text: هذه المجموعة من المستندات المصاحبة لنسخة معينة من تكامل نموذج نضوج المقدرة تشمل تحديدا للمتصلبات التي تسمى متطلبات التقييم لتكامل نموذج نضوج المقدرة (ARC)، والتي تحدد ثلاث مستويات لشكل التقييمات: الطبقة A و B و C. ويتم إجراء تقييم معيار تكامل نموذج نضوج المقدرة من أجل تحسين العملية ((SCAMPI الرسمي (الطبقة A) عن طريق مقيمين مفوضين من معهد هندسة البرمجيات والذين يستخدمون مستند تعريف طريقة A SCAMPI لإجراء التقييمات. والطبقة A، وهي الأكثر رسمية، لازمة لتحقيق تقييم (المستوى1(الأدنى) إلي المستوى5 (الأعلى))، باستخدام التمثيل المرحلي Staged Representation، من أجل السجل العام أو للرد على متطلبات وزارة دفاع الولايات المتحدة.


title: سايكويست

text:
شركة "كويست س" للتكنولوجيا تعرف الآن باسم SYQT. تشارك منذ وقت مبكر في سوق القرص الثابت القابلة للإزالة لأجهزة الكمبيوتر الشخصية. بدأت الشركة بالعمل عام 1982، وقد أسسها "سيد افتخار" الذي كان يعمل مسبقاً في شركة سيغيت، سميت بهذا الاسم المختصر للسبب نفسه بعد اجتماع الشركة حيث تقرر أن "SyQuest" يجب أن يكون اسم اختصار ل "كويست س" حيث كانت المنتجات التي يمكنها إنتاجها في اقرب فرصة هي محركات الأقراص الصلبة القابلة للإزالة 3،9 (100mm) وهي محركات الأقراص الصلبة القابلة للصدمات القوية وأيدت أي بي إم الاختصار وطبقته بشكل إلزامي لإنتاج بعض محركات الأقراص الثابتة في وقت مبكر ويبدو أن تصنيف محركات سيغيت، وخصوصاً عندما يقارنه المرء مع محرك أقراص وقدرته على استرداد هذه البيانات باستخدام هذا الجدول المنتج.
لسنوات عديدة كان "كويست س" الوسيلة الأكثر شعبية والواسعة الانتشار لنقل وثائق الناشر المكتبي إلى الطابعات. "كويست س" وكانت تسوق منتجاتها كما أنها كانت قادرة على إعطاء مستخدمي الكمبيوتر الشخصي وسيلة لا نهاية لها من حيث مساحة القرص الصلب لتطبيقات البيانات المكثفة مثل الناشر المكتبي، وشبكة الإنترنت وإدارة المعلومات، قبل الصحافة، والوسائط المتعددة والصوت والفيديو والتصوير الرقمي والنسخ الاحتياطي السريع، وتبادل البيانات والأرشفة، جنباً إلى جنب مع أمن البيانات السرية وسهولة الحمل عن المكتب والاحتفاظ بالأصول.


title: سايكويست

text: بعد عام 1995 لم تبل بلاء حسنا في السوق. بدأت "كويست س" في أعمال الناشر المكتبي الأساسية للعملاء على نحو متزايد لاستخدام قرص لوسائل الإعلام وبروتوكول نقل الملفات لنقل الملفات، في حين ان شركة وميجا تخصصت في كود المحركات وسيطرت على قطاع الشركات الصغيرة والاستخدامات المنزلية (سوهو) في السوق. انخفضت المبيعات خلال الفترة 1995 حتى 1997 المبيعات، مما أدى إلى سلسلة من الخسائر في الربع الأول من عام 1997 تم تخفيض هذه الخسائر إلى 6.8 مليون دولار مع زيادة الإيرادات الصافية إلى 48.3 مليون دولار. هذا بالمقارنة مع خسارة صافية قدرها 33.8 مليون دولار، أو 2،98 $ للسهم الواحد، على عائدات صافية قدرها 78700000 دولار للفترة نفسها من العام السابق.


title: سايكويست

text: قدمت شركة "كويست س" إعلان إفلاس في أواخر عام 1998، وتم شراؤها في وقت لاحق وأجزاء من الشركة من قبل شركة أوميجا في كانون الثاني / يناير 1999. احتفظ "كويست س" بحقوق البيع لمخزونها المتبقي بشرط إعادة تسمية أنفسهم "كويست س" من أجل مواصلة العمليات. لسنوات عدة لاحقة، وتباع على موقع ويب في www.SYQT.com محركات الأقراص ووسائط الإعلام، وقدمت تنزيلات في البرامج لدعم هذه المنتجات. بتاريخ 22 يناير 2009 وموقع ويب لم يعد موجود.


title: سايكويست

text: وكان من الأسباب الهامة للخسائر قضايا الجودة في سلسلة من المنتجات، بما في ذلك محرك SparQ ومحركات SyJet، التي تسببت في عدد كبير من الخلل في محركات الأقراص في غضون أشهر قليلة من العملية الأولية.


title: سايكويست

text: وشملت خط "كويست س" من المنتجات مثل هذه الأجهزة على النحو التالي : (إن 5،25 "محركات الأقراص القابلة للإزالة خرطوشة مع 44MB، 88MB، وكانت تستخدم في الغالب 200MB على أنظمة ماكنتوش من خلال واجهة السكازي).


title: لغة برمجة فائقة المستوى

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


title: وينتل

text:
وينتل هو مصطلح مركب يدمج كلا من ويندوز وإنتل ويشير إلى الحواسيب الشخصية التي تستخدم معالجات تتوفق مع بنية x86 من إنتل وتعمل بنظام الويندوز، وفي الغالب يستخدم هذا المصطلح لوصف الممارسات الاحتكارية التي تقوم بها كلا الشركتين في محاولة السيطرة على السوق.
كانت الشركات الصغيرة وغالبا الناشئة تتصدر سوق الحاسوب الدقيق microcomputer عندما بدأ في أواخر السبعينيات أكثر مما كان الوضع عليه في سوق الحاسوب المصغر minicomputer. بعدما أثبتت الشركات الأولى وجود هذا السوق بدأ في جذب اهتمام الشركات الكبرى له، في تجارب ناجحة أحيانا (تاندي كوربوريشن Tandy Corporation وهوليت-باكارد) وأحيانا فاشلة (تكساس إنسترمنتس Texas Instruments وديجيتال إيكويبمينت كوربرويشن DEC). ثم بدأت الشركات المتخصصة في مجال الحواسيب المركزية mainframe والمصغرة– بيج أيرون big iron – في التعرف على فرص النجاح الضخمة في سوق الحاسوب الدقيق.


title: وينتل

text: أدت فوضى وتضارب السنين الأولى في أوائل الثمانينيات إلى الاتفاق على مجموعة من المعايير مثل ناقلS-100 وCP/M وأبل II ومايكروسوفت بيزيك Microsoft BASIC في ذاكرة القراء فقط (الروم) والقرص المرن 5.25 بوصة. لم تكن هناك شركة واحدة متحكمة في السوق وجعلت المنافسة الشرسة الابتكار في البرمجيات والعتاد هو القاعدة وليس الاستثناء. أغلب البرمجيات المستخدمة اليوم تستند مباشرة إلى الأفكار التي ازدهرت في هذه الفترة الذهبية، مثل الجداول المطولة وأمثلة أخرى لا تعد.


title: وينتل

text: وفي عام 1981 دخلت آي بي إم سوق الحاسوب الدقيق، وقام قسم صغير في الشركة بعمل حاسوب آي بي إم الشخصي، لم يكن هذا منتجا متوقعا من آي بي إم لأنها تلقت العرض بتصنيعه من شركات مكونات components أخرى وكانت النية أن يعمل هذا الحاسوب بأنظمة تشغيل وبرمجيات الطرف الثالث third party. نشرت آي بي إم مواصفات ومخططات الحاسوب والمسماة بالبنية المفتوحة open architecture مما مكن شركات الطرف الثالث من إنتاج عتاد متوافق معها، وأصبح حاسوب آي بي أم واحدا من أنجح الأجهزة على الإطلاق.


title: وينتل

text: برغم أن حاسوب آي بي إم كان تقنيا متوسط المستوى وسعره يتجاوز أسعار السوق, إلا أن ميزته الأساسية هو مساندة سمعة آي بي إم المشرفة له. كانت تلك حادثة تاريخية أن يعمل حاسوب آي بي إم بمعالج إنتل (بدلا من المعالج موتورولا 68000 المتفوق عليه تقنيا والموصى باستخدامه) وأن يعمل بنظام PC-DOS (إصدار مرخص من MS-DOS بدلا من نظام تشغيل CP/M-86)، ولكن هذه الحادثة كان لها أثر بالغ على السنين اللاحقة.


title: وينتل

text: لأن حاسوب آي بي إم كان منتج شركة آي بي إم وعليه شعار آي بي إم بدأ الحاسوب الشخصي يحظى بالاحترام، أصبح من السهل على أي شركة تبرير حاجتها لشراء حاسوب دقيق أكثر مما كان الحال عليه قبل سنة أو سنتين، والأكثر سهولة تبرير شراء حاسوب آي بي إم الشخصي. نتيجة لعرض مواصفات بنية الحاسوب بدقة في كتيبات آي بي إم ونتيجة لقرب تصميم PC-DOS من نظام تشغيل CP/M السابق له أصبح هناك الآلاف من الكروت الإضافية والحزم البرمجية لحاسوب آي بي إم من شركات الطرف الثالث، فأصبح الحاسوب الشخصي هو الخيار المفضل لدى الكثيرين لدعمه لكل البرمجيات والعتاد الذي يحتاجونه.


title: وينتل

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


title: وينتل

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