CALM/arwiki huggingface dataset:
يبدأ برنامج آر بي جي بخصائص الملف، وعمل قائمة بكل الملفات ليتم كتابتها أو قراءتها من أو تحديثها، يلي ذلك مواصفات التعرف على البيانات والتي تتضمن عناصر البرنامج مثل هياكل البيانات ومصفوفة ذات الأبعاد كما لو كانت قسم "تخزين العمل" من برنامج كوبول أو بيانات فار في برنامج باسكال. يتبع ذلك مواصفات حسابية تحتوي على أصل الشفرة الفعلي. يمكن ا، يتبع ذلك مواصفات النواتج التي يمكن استخدامها لتحديد نموذج الملفات أو التقارير الأخرى. عبر الملفات البديلة، يمكن لبعض التقارير وهياكل البيانات أن يتم تحديدها خارجيا، وتقريبا عبر إزالة الحاجة لتسليم مواصفات مدخل الشفرة وناتجها.
في الأيام الأولى من آر بي جي، كانت تعرف نقطة قوتها الحقيقية بدورة البرنامج: يقوم كل برنامج آر بي جي بالعمل عبر حلقة ضمنية يمكن من خلالها تطبيق البرنامج على كل سجل من سجلات الملف. في هذا الوقت، يمكن مقارنة كل سجل (بطاقة مثقوبة فردية) مع كل سطر في البرنامج والذي سيقوم بالعمل على السجل أو لا وذلك اعتمادا على ما إذا كان هذا السطر ذو "مؤشر" يكون "عاملا" أو "غير فعالا" – من بين مجموعة من المتغيرات المنطقية مرقمة بالأعداد من 01-99 لأغراض يحددها المستخدم، أو مجموعات أخرى أصغر وذلك اعتمادا على التدوين، المجال أو وظائف معالجة التقارير.
وبديلا لذلك فإن الشفرة يمكن أن تجعل أي برنامج تفاعلي مستمر في العمل حتى يتوقف بوضوح.
واليوم يتجنب معظم مبرمجي آر بي جي استخدام هذه الدورة لصالح التحكم في فيض تدفق البرنامج بهياكل حلقية قياسية. إن مفهوم انكسارات المستوى وسجلات التطابق فريد بالنسبة للغة آر بي جي تو. وقد تطور في البداية مع قارئات بطاقات في الذهن. أما آر بي جي ثري فيضيف بعض المقومات الشيقة ولكن لغة آر بي جي الأصلية يصعب هزيمتها على افتراض أن المطور يمتلك كافة المقومات والسمات المتاحة.
تعد لغة آر بي جي واحدة من اللغات التي صنعت من أجل آلات ثقب البطاقات التي لا تزال شائعة الاستخدام في يومنا الحالي وهذا لأن اللغة قد تطورت بصورة ملحوظة مع مرور الوقت. وقد طورتها شركة IBM عام 1959. وق كان مسمى "مولد برنامج التقرير" مسمى وصفي لغرض اللغة : وهو توليد تقارير من ملفات البيانات بما في ذلك تقارير السجلات والتقارير الإجمالية الفرعية.
وقد كانت لغة فارجو (fourteen o-one Automatic Report Generation Operation أو عملية توليد التقارير 1401 الأوتوماتيكية) هي اللغة السابقة لآر بي جي في IBM 1401. وقد استهدفت كلا اللغتين تسهيل الانتقال إلى جهاز تسجيل الوحدات الآلي المجدول IBM للفنيين إلى أجهزة الكمبيوتر الجديدة.
وقد كان فنيو الأجهزة المجدولة معتادين على أسلاك القابسات إلى لوحات تحكم لتنفيذ عمليات الإدخال والنواتج والتحكم والمواجهة (الإضافة، الخصم، الضرب، القسمة). تم تنفيذ عدة برامج آلات جدولة عبر نبضات تنبعث في دورة الآلة، ومن ثم تضاهي فارجو وآر بي جي فكرة دورة الآلة مع دورة البرنامج. وكانت آر بي جي تفوق الفارجو وسرعان ما تم استبدالها كبرنامج توليد التقارير الاختياري.
وقد كانت اللغات البديلة المتاحة بشكل عام في هذا الوقت هي أسيمبلر وكوبول وفورتران. وكانت لغة الكوبول لغة عملية شبيهة باللغات الطبيعية والفورتران كانت لغة سهلت كافة التطبيقات الرياضية. من اللغات الأخرى في هذا الوقت كانت ألجول وأوتوكودر وبعد عدة سنوات بي إل وان. وقد كانت الللغتين أسيمبلر وكوبول شائعتين في العمليات الخاصة بأجهزة الكمبيوتر الرئيسية (طرازات سيستم 360 30 وأعلى) وتستخدم آر بي جي بشكل شائع من جانب العملاء الذين انتقلوا من أجهزة ومعدات الجدولة (سيستم 360 طراز 20).
نشأة اللغة.
تم تقديم لغة آر بي جي تو مع مجموعة سيستم ثري من أجهزة الكمبيوتر. ثم استخدمت فيما بعد مع سيستم 32 وسيستم 34 وسيستم 36، مع نسخة معدلة من اللغة. كما أنتجت آي سي إل أيضا نسخة على نظام تشغيلها VME/KK.
ظهرت آر بي جي ثري لتعمل على سيستم 38 وما تلاها AS/400. وقد تم ترحيل آر بي جي ثري من اللغة الأصلية بحيث وفرت مقومات هيكلية عصرية مثل بلوكات IF-ENDIF وحلقات دو والكمبيوتر الرشيس IBM System/370 اليذ يعمل ب OS/VS1. كما كانت متاحة أيضا من يونيسيس لنظام التشغيل VS/9 الذي يعمل على الكمبيوتر الرئيسي يونيفاك 90/60
أما لغة DE/RPG أو آر بي جي لإدخال البيانات كانت متوفرة بشكل حصري في مجموعة حواسيب آي بي إم 5280 من محطات عما إدخال البيانات في بداية الثمانينات. وقد كانت شبيهة بآر بي جي ثري ولكن ينقصها مواصفات البيانات الخارجية (DDS) لوصف (ملفات) البيانات مثلما في نظام سيستم 38 وكل ما تلاه. بدلا من ذلك، يجب إدراج جزء DDS في مصدر آر بي جي نفسها.
آر بي جي 400 كان فعليا آر بي جي ثري الذي يعمل على AS/400. وأعادت IBM تسمية مصنف آر بي جي باسم "آر بي جي 400" ولكنه كان شبيها بمصنف آر بي جي ثري حتى بدأت IBM تطوير شفرات تشغيل جديدة مثل سكان وكات وإكسليت بعد عدة سنوات من توافر AS/400. هذه التعزيزات لآر بي جي ثري لم تكن متوفرة في نسخة سيستم 38 من آر بي حي ثري.
آر بي جي فور (أو التي تعرف ب RPGLE أو RPG/ILE) صدرت عام 1994 ولم يعد الاسم بعد ذلك مجرد أحرف بادئة تمثل معنى الكلمة. قدمت آر بي جي فور مجموعة متنوعة من التعبيرات من خلال سماتها الحسابية المتوسعة فاكتور تو Factor-2، ولاحقا في الحياة، من خلال مواصفاتها الحسابية الخالية من التنسيق وتركيبات الجمل الإجرائية. وتعد آر بي جي فور النسخة الوحيدة من آر بي جي التي تدعمها آي بي إم في كل سلسلة المنتجات الواسعة التالية لنظام AS/400.
آر بي جي فور، لغة حديثة.
في عام 2001، ومع إصدار OS/400 V5R1، قدمت آر بي جي فور حرية أكبر من أجل الحسابات التي تقدمها المواصفات الحسابية الموسعة فاكتور تو : مدخل مصدري ذو إمكانية للنصوص خالية من التنسيق، كبديل للنسق المصدري الأصلي المعتمد على الأعمدة. إن حساب /freeلا يتطلب وضع شفرة تشغيل في عمود معين، وشفرة التشغيل هي أمر خياري بالنسبة لعمليات تشغيل EVAL وCALLP كما يتشابه تركيب الجمل بشكل كبير مع لغات برمجة الحواسيب الرئيسية متعددة الأغراض.
واليوم تعد لغة آر بي جي فور بلا شك لغة قوية. ويمكن أن يتم التحرير أيضا عبر محرر بسيط أو يمكن التحرير عبر الكمبيوتر الشخصي باستخدام برنامج "ويب سفير ديفيلوبمنت ستوديو" التابع لIBM والذي عرف حاليا باسم RDi (راشيونال ديفيلوبمنت ستوديو لآي) وهو تطبيق مصمم خصيصا من إكليبس. وتقوم آي بي إم بشكل مستمر بالتوسع في إمكاناتها وإضافة المزيد من الوظائف المدمجة داخليا (BIFs). وهي لديها القدرة على الارتباط بعناصر الجافا، وi5/OS APIs، ويمكن استخدامها لكتابة برنامج سي جي آي بمساعدة صندوق أدوات الذو إشارة Cgidev2 التابع لIBM وRPGLIP (مجموعة من مئات الأعمال الروتينية المكتوبة مسبقا عبر RPG IV) وCGILIB وصندوق أدوات آر بي جي ومجموعة باقات تمكينية تجارية أخرى للمواقع الإليكترونية. حتى مع التغييرت، لا تزال تحتفظ بمجموعة من التوافق الخلفي، لذا فإن برنامج آر بي جي الذي كتب منذ 37 عاما يمكن تشغيله اليوم بالقليل من التعديلات أو بدون تعليمات على الإطلاق.
علاوة على ذلك، مع تطبيق المصنف المسبق لإس كيو إل، يمكن لمطوري آر بي جي الاستفادة من إس كيو إي المعتمدة على التكاليف والتابعة لآي بي إم (SQL Query Engine). وعلى عكس التوجه التقليدي F-Spec، حيث يستيع المطور تحديد طريق وصول محدد لمجموعة بيانات، يمكن للمطور الآن تنفيذ بيانات إس كيو إل مدمجة مباشرة في البرنامج. وعند تصنيفها، يقوم المصنف المسبق لإس كيو إل بتحويل بيانات إس كيو إل المدمجة غير الصالحة إلى بيانات ر بي جي صالحة تستدعي برنامج مدير قواعد البيانات الذي يقوم في النهاية بتنفيذ طلب التساؤل.
تمت إعادة تسمية 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 والنسخة
أنماط البيانات.
تدعم لغة آر بي جي أنماط البيانات التالية.
مثال للشفرة.
البرنامج التالي يستقبل رقم العميل كمعيار للمدخلات ويقوم بإرجاع الاسم والعنوان كمعيار للنواتج.
يستعين نفس البرنامج بحسابات حرة:
يستعين نفس البرنامج بحسابات حرة: وSQL مدرج
D getCustInf PI
D pCusNo 6p 0 const
D pName 30a
D pAddr1 30a
D pAddr2 30a
D pCity 25a
D pState 2a
D pZip 10a
/free
exec sql select ARNm01, ARAd01, ARAd02, ARCy01, ARSt01, ARZp15
into :pName, :pAddr1, :pAddr2, :pCity, :pState, :pZip
from ARMstF1
where ARNo01 = :pCusNo
for fetch only
fetch first 1 row only
optimize for 1 row
with CS;
/end-free
لنفترض أن نموذج الجدول ARMSTF1 صنع باستخدام عبارة SQL التالية:
وبالنسبة لنظام تشغيل V7R1، فإن البرنامج السابق يمكن كتابته (بشكل صحيح وكامل) كالآتي:
كما ذكرنا مسبقا، فقد تم التعريف بلغة البرمجة آر بي جي في البداية عبر 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).
آخر المنصات التي استقبلت منصة آر بي جي هي وينوز دوت نت عبر منصف وين آر بي جي. تحتوي هذه النسخة امتدادات لآر بي جي فور بعيدة عن مصنف IBM الرئيسي. هذه الامتدادات توفر خطافات ويندوز ودوت نت.
ولا تزال تطبيقات آر بي جي تو مدعومة بنظم تشغيل IBM z/VSE and z/OS ونظام تشغيل HP MPE على HP3000 ونظام التشغيل OpenVMS على كل من VAX, Alpha ويونيسيس إم سي بي.
إن ممبس MUMPS (وهو اختصار لاسم نظام البرمجة المتعدد لتشغيل مستشفى ماساتشوسيتس العام (Massachusetts General Hospital Utility Multi-Programming System) أو اختصارا بحرف إم هو لغة برمجة ظهرت في أواخر ستينيات القرن العشرين من أجل أن تستخدم في صناعة الرعاية الصحية. وكانت مصممة لإنتاج تطبيقات قائمة على قاعدة البيانات متعددة المستخدمين. وهي تسبق لغة سيC واللغات الأكثر شعبية الأخرى في الاستخدام الحالي، ولها بنية ومصطلحات مختلفة تماما.
وقد تم تبنيها على نطاق واسع خلال السبعينيات والثمانينيات في نظم معلومات/ وقواعد بيانات الرعاية الصحية والنواحي المالية، ولا تزال تستخدم من قبل العديد من نفس المستخدمين إلى اليوم. وتستخدم هذه اللغة حاليا في نظم التسجيل الصحي الإلكترونية وكذلك من قبل العديد من الشبكات المصرفية وخدمات التجارة / والاستثمار الإلكترونية.
طورت ممبس على يد نيل بابالاردو N. Pappalardo ورفاقه في معمل حيوانات د. أوكتو بارنيت في مستشفى ماساتشوستس العام في بوسطن خلال عامي 1966-1967. وكان نظام ممبس الأصلي مبنيا على قطع DEC PDP-7، مثلما كان عليه حال يونكسUnix بعد سنوات قليلة.
كما كان كل من نيل بابالاردو وأوكتو بارنيت مشاركين في التخطيط لمستشفى ماساشستس العام من خلال وضع نظام الملعومات بالمستشفى، وحصلا على PDP-9 المتوافق بأثر رجعي، وبدءا في استخدام ممبس في دورة admissions وتقرير الاختبارات المعملية. وكان ممبس حينذاك لغة مفسرة، ولم يكن حتى عند ذلك الوقت متضمنا نظام ملفات قاعدة بيانات تراتبية من أجل معايرة التفاعل مع البيانات. ويمكن تتبع بعض أوجه ممبس من جوس JOSS التابع لراند كوربوريشن من خلال BBN، وتيلكومب TELCOMP وسترينجكومب STRINGCOMP. وقد اختار فريق ممبس مضطرا أن يتضمن قدرة على الانتقال بين الآلات كهدف تصميمي. وهناك خاصية أخرى، لم تكن داعمة على نطاق واسع لآلات هذه المرحلة، في نظم التشغيل أو في المعدات، وأنها كانت متعددة المهام، وكانت أيضا مبنية في اللغة نفسها.
وكانت القدرة على التنقل مفيدة في أقرب وقت، لأن ممبس سرعان ما أن تم تكييفها للتوافق مع DEC PDP-15، حيث استمرت لفترة من الزمن. وقد تم تطويرممبس بدعممن منحة بحثية حكومية، وهكذا تم إصدار ممبس أما ناق عام (ولم تعد هناك حاجة لمزيد من المنح)، وسرعان ما وصلت بعدد من النظم الأخرى بما فيها النظم الشهيرة DEC PDP-8، ونوفا العامة للبيانات the Data General Nova، و the DEC PDP-11، والكمبيوترات الدقيقة PC12 طراز أترونيكس.وقد انتشرت كلمة ممبس بقوة في المجتمع الطبي وبحلول أوائل السبعينيات كان مستخدما على نطاق واسع، وكان غالبا ما يتم تعديله محليا للتوفيق بينه وبين احتياجاتهم الخاصة.
وبحلول أوائل السبعينيات كانت هناك العديد والأنواع المختلفة من تطبيقات ممبس على مجموعة من منصات المعدات. وكان أكثرها انتشارا ممبس -11 على PDP-11، وMIIS التابع لـ ميديتك. وفي عام 1972 شارك العديد من المستخدمي ممبس في مؤتمر كان يقوم بمعايرة اللغة الهشة حينذاك، وكونوا مجموعة مستخدمي ممبس ولجنة تطوير ممبس (MDC) من أجل القيام بذلك. وقد أثبتت هذه المجهودات نجاحها؛ وقد اكتملت المعايرة في عام 1974، وتم التصديق عليها، في 15 سبتمبر 1977 مثل معايرة ANSI، و X11.1-1977. وفي نفس الوقت تقريبا دشنت DEC ما عرف باسم DSM-11 (أي معايرة ممبس الرقمية Digital Standard MUMPS) من أجل PDP-11. وسرعان ما سيطر ذلك على السوق وأصبح التطبيق المرجعي لتلك الفترة.
وخلال أوائل الثمانينيات قدم العديد من المصنعين للبرامج عددا من المنصات القائمة على ممبس والتي تلبي معايرة أنسي ANSI للسوق. وكان الأكثر أهمية هي مؤسسة المعدات الرقمية Digital Equipment Corporation التي قدمت المعايرة الرقمية لممبس DSM، وإنترسيستم InterSystem التي قدمت انترسيستم إم على VMS ويونكسUNIX، و M/11+ على منصة PDP-11. وطورت الشركات الأخرى العديد من تطبيقات ممبس الهامة الأخرى:
وكانت إم جلوبال هي أو ممبس تجارية لأجهزة آي بي إم وتطبيق ماك الوحيد. وقد سبق DSM-11 إصدار VAX/DSM لمنصة VAX/VM، وكانت موصلة بألفا في نوعيها: DSM لـ OpenVMS و DSM لـ Ultrix.
كما شهدت هذه الفترة نشاطا كبيرا لـ 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.
وبحلول عام 2000، أصبح مقدم المعدات الوسيطة إنترسيستمز InterSystems اللاعب المهيمن في سوق ممبس من خلال شراءها للعديد من الفاعلين في الصناعة. ومبدئيا فإنها استحوذت على داتاتري إنك في أوائل التسعينيات. وفي 30 ديسمبر 1995 استحوذت إنترسيستمز على خط إنتاج DSM من DEC. وقد دمجت إنترسيستمز هذه المنتجات في خط إنتاج واحد، وحملت علامات اسماءهم التجارية وفي العديد من منصات المعدات بلفظ OpenM. وفي عام 1997 فإن إنتر سيستمز أكملت بصورة كبيرة هذا الدمج من خلال توحيد وريثها الذي حمل اسم كاشيه Cache. وكان ذلك قائما على منتجهم الخاص بمدير نظم المعلومات ISM، لكن بتأثيرات من التطبيقات الأخرى. كما تم الاستحواذ على أصول مؤسسة مايكرونيتكس ديزين من قبل إنتر سيستمز في 21 يونيو 1998. ولا تزال إنترسيستمز اليوم (2007) هي المهيمن على منتجات ممبس، وكان بيع كاشيه لمطوري ممبس الذي يكتب تطبيقات لمجموعة من نظم التشغيل.
وكان تطبيق GT.M التابع لجراستون تكنولوجي كوربوريشن قد تم بيعه إلى سانشيز كومبيوتر أسوشيتس إنك (وهي الآن جزء من فيداليتي ناشيونال فاينانشيال إنك) في منتصف التسعينيات. وفي السابع من نوفمبر 2000 صنعت سانشيز GT.M للينوكس وجعلته متاحا بترخيص من GPL وفي 28 أكتوبر 2005 صعنت GT.M من أجل OpenVMS و Tru64 UNIX وكانت أيضا متاحة بترخيص AGPL. وتواصل GT.M كونها متاحة لمنصات يونكس الأخرى وفقا للترخيص التقليدي.
وكان التطبيق الأحدث لممبس، والذي صدر في أبريل 2002، مشتقا من MSM يسمى M21 من شركة رجبي ريل للبرمجيات بالمملكة المتحدة.
وهناك أيضا العديد من تطبيقات المصادر المفتوحة لممبس بما فيها بعض المشروعات البحثية. ومن أبرز هذه التطبيقات والمشروعات هو Mumps/II من قبل البروفيسور كيفن أوكين (يعمل الآن بجامعة نورثرن إيوا) ومشروع للطلبة. كما وصل كل من د. أوكين وريان ميرفي إلى توصيل المترجم لنظام تشغيل ماك.
وأحد المصنعين الأصليين للغة ممبس هو نيل بابالاردو الذي أسس في البداية شركة سماها ميديتك. وقاموا بالتوسع والبناء على لغة ممبس، وسموا اللغة الجديدة باسم MIIS (ولاحقا سميت لغة أخرى ماجيك MAGIC). وعلى غير ما هو عليه حال إنترسيستمز، فإن ميديتك لم تعد تبيع المعدات الوسيطة، لذلك فإن MIIS و MAGIC لا تستخدمان إلا على مستوى داخلي في ميديتك.
المستخدمون الحاليون لتطبيقات ممبس.
كانت وزارة شئون المحاربون القدماء بالولايات المتحدة (سابقا إدارة المحاربون القدماء) من أوائل من تبنوا لغة ممبس. وكان عملهم التنموي (وإسهاماتهم المتوالية في قاعدة تشفير تطبيق ممبس المجانية) ذو تأثير على العديد من المستخدمين الطبيين في أنحاء العالم. وفي عام 1995 مان قد تم تطبيق نظام مرضي شئون المحاربين القدماء في الدخول والتتبع والصرف، من خلال برنامج الكمبيوتر الصحي غير المركزي Decentralized Hospital Computer Program قد تلقى جائزة سميثونيان العالمية لأفضل استخدام لتكنولوجيا المعلومات في مجال الطب. وبعد قرابة العقد (في يوليو 2006) تلقت وزارة شئون المحاربون القدماء (من خلال إدارة صحة المحاربون القدماء) جائزة الحكومة الأمريكية للابتكارات والتي قدمها معهد أش بمدرسة ج. ف. كينيدي الحكومية في جامعة هارفارد بسبب توفيرها لبرنامج الكمبيوتر الصحي في نظم معلومات صحة المحاربين القدماء وبينتها التكنولوجية VistA في يوليو 2006. وتقريبا فإن جميع نظم صحة المحاربين القدماء في الولايات المتحدة وفي الخدمة الصحية الهندية، وكذلك أجزاء رئيسية من وزارة الدفاع، فإن جميع هذه النظم تتم بتشغيل قواعد بيانات تتبع البيانات العيادية.
وتستخدم الشركات الكبيرة حاليا ممبس بما فيها أميريباث AmeriPath (وهي الآن جزء من كويست للتشخيصات)، وكير سنتريك، وإيبك سيستم كوربوريشن، وEMIS، وشركاء الرعاية الصحية، وميديتك، وج إي للرعاية الصحية (سابقا نظم IDXو سنتريسيتي). وهناك العديد من المعامل المرجعية، مثل كويست للتشخيصات ودايناكير، تستخدم برمجيات ممبس المكتوبة أو القائمة على كود أنتريم كوربوريشن. وكان قم تم الاستحواذ على أنتريم، وشركتها الأم صنكويست، من قبل ميسيس في عام 2001.
كما ورد أن Coventry Healthcare ومستشفى ماساشستس يستخدمان ممبس.
كما استخدمت ممبس على نطاق واسع في التطبيقات المالية. وقد حققت ممبس سبقا مبكرا في القطاع المالي، وكانت تطبيقات ممبس محل استخدام في العديد من البنوك والاتحادات الائتمانية. كما كانت تستخدم من قبل أميريتريد، أكبر مقدم لخدمة التجارة عبر الإنترنت في الولايات المتحدة مع أكثر من 12 مليار عملية في اليوم، وكذلك من قبل بنك أوف إنجلاند وباركليز بنك من بين آخرين.
وقد أعلنت وكالة الفضاء الأوروبية في 13 مايو 2010 أنها سوف تستخدم ممبس (InterSystems Caché) من أجل دعم بعثة جايا Gaia mission. وكانت هذه البعثة تهدف إلى وضع خريطة لدرب اللبانة بدقة غير مسبوقة.
وفي عام 2005 فإن غالبية استخدام M كان إما في شكل GT.M أو InterSystems Caché. وكان النوع الأخير قد سوق على نطاق كبير من قبل إنترسيستمز وكان قد حقق نجاحا في التوغل في أسواق جديدة، مثل الاتصالات، إضافة إلى الأسواق القائمة.
إن ممبس هي لغة عمدت إلى وصممت من أجل بناء تطبيقات قاعدة بيانات. وتضمنت مميزات اللغة الثانوية من أجل المساعدة المبرمجين في صنع التطبيقات باستخدام الموارد الحوسبية الدنيا. وكانت التطبيقات الأصلية مفسرة، بالرغم من أن التطبيقات الحديثة يمكن أن تكون مكتملة أو جزئية التنفيذ. إن "البرامج" المفردة تشغل في "تقسيمات" الذاكرة. وكانت تقسيمات الذاكرة المبكرة لممبس محدودة بقيمة 2048 بايت وكانت مختصرة للغاية ومساعدة للبرمجة المتعددة على المعدات المحدودة الموارد بشدة، ونظرا لأن أكثر من وظيفة لممبس يمكنها أن تناسب الذاكرات الصغيرة للغاية الموجودة في المعدات في ذلك الوقت. إن القدرة على تقديم نظم متعددة المستخدمين كانت تصميم لغوية آخر. إن البرمجة المتعددة في اختصار اسم اللغة. وحتى الآلات المبكرة التي كانت تشغل ممبس الداعمة لوظائف متعددة وتعمل في ذات الوقت. ومع التغيير من الكمبيوترات الصغيرة إلى الكمبيوترات الدقيقة بعد ذلك بسنوات، فإنه حتى "المستخدم المفرد لجهاز الكمبيوتر"، الذي لديه جهاز 8-بيت 8-bit بذاكرة 64 ك أو 64ك للذاكرة يمكنه أن يدعم المستخدمين المتعددين، وتشغيل الطرفيات الخرساء في وضع خط الأوامر (وبدون أي أثر لواجهة المستخدم الرسومية).
ونظرا لأن الذاكرة كانت محدودة بالأصل، فإن تصميم اللغة لممبس يقيم بكود مقتضب للغاية. وهكذا فإن كل أمر أو اسم وظيفة لممبس يمكن أن تختصر من حرف إلى ثلاثة أحرف في الطول على سبيل المثال. إغلاق (برنامج الخروج) مثل وظيفة Q $P== $Piece، وأمر R = Read، ووظيفة $TR == $Translate. إن الفراغات وعلامات نهاية السطور أمر كبير في ممبس لأن نطاق السطر يدعم نفس تصميم اللغة المقتضبة. ومن ثم فإن سطر إدخال كود البرنامج يمكن أن يعبر عن نفس الفكرة بعدد صغير من الحروف التي يمكن للغات البرمجية الأخرى أن تأخذ من 5 إلى 10 أضعاف من الحروف للتعبير عنها. إن الاختصار كان ميزة شائعة في اللغات المصممة في تلك الفترة (على سبيل المثال FOCAL-69، ولغات البيسك المبكرة مثل Tiny BASIC، الخ). وهناك لسوء الحظ أثر جانبي لهذه الازدواجية مع الحاجة المبكرة لكتابة كود في أقل سعة ممكنة وهو أن مبرمجي ممبس لا يقومون بالتعليق على الكود واستخدموا اختصارات موسعة، مما يعني أنه حتى خبير ممبس المبرمج لا يمكنه مجرد طوي صفحة الكود لرؤية وظيفته لكن عليه تحليله سطر وراء سطر.
إن تفاعل قاعدة البيانات مبنية بشفافية في لغة. وتقدم لغة ممبس قاعدة بيانات تراتبية مصنوعة من مصفوفات مستمرة، وتكون "مفتوحة" لكل تطبيق لممبس. إن كل الأسماء المتغيرة التي تسبق بحرف ذو قبعة ("^")تستخدم تخزينا دائما (بدلا من الرامات)، وسوف تبقي قيمها بعد تواجد التطبيق وسوف تكون مرئية لتطبيقات العاملة الأخرى. إن المتغيرات باستخدام هذا التخزين المشارك والدائم تسمي جلوبالز في ممبس بسبب أن تأطير هذه المتغيرات "متاح عالميا" لجميع الوظائف على النظام. إن الاستخدام الأكثر حداثة وشيوعا لاسم "المتغيرات العالمية" في اللغات الأخرى أكثر تحديدا في تأطير الأسماء، وتأتي من حقيقة أن المتغيرات غير المؤطرة متاحة "عالميا" لأي برامج تشغيل في نفس العملية، لكنها ليست متشاركة بين عمليات متعددة. إن وضع تخزين ممبس (على سبيل المثال فإن جلوبالز خزنت في مصفوفات دائمة)، وتطرح قاعدة ممبس سمات قاعدة البيانات القائمة على النصوص.
إن جميع الحروف المتغيرة التي لا تكون مسبوقة بحرف بقبعة ("^") تكون مؤقتة وخاصة. ومثل المتغيرات العالمية فإنها أيضا تكون لديها نموذج تخزين تراتبي، لكنها لا تكون "متاحة إلا محلية" فقط لوظيفة مفردة، لذلك فغنها تسمى "محليات" Locals. وكل من جلوبالز ولوكالز يمكن أن تكون لديهم عقدات صغيرة (تسمى منخفضات subscripts في مفردات ممبس). ولا تكون المنخفضات محدودة بالأرقام – أي حرف ASCII أو مجموعة من الحروف يمكن أن تكون محددا منخفضا. وبينما ذلك لا يكون شائعا للغات الحديثة مثل بيرل أو جافاسكربت، فإن هناك ميزة غير معتادة للغاية في أواخر السبعينيات. إن هذه القدرة لم تطبق على مستوى العالم في نظم ممبس قبل عام معايرة أنسي في عام 1984.) وهكذا فإن المتغير المسمى "كار" Car يمكن أن يكون لديه منخفضات مثل "باب"، "محرك" ويمكن أن تحتوي كل منهم على قيمة لديها مخفضات خاصة بها. إن المتغير ^Car("Door") يمكن أن يضع منخفضا متغيرا "للون" على سبيل المثال. وهكذا فإنه يمكنك أن تقول
SET ^Car("Door","Color")="BLUE"
ومن أجل تعديل العقدة الصغيرة المتوطنة لـ ^Car. وفي مصطلحات ممبس فإن "اللون" في المنخفض الثاني للمتغير ^Car (وكلاهما اسمين للعقد الصغيرة وتسمى العقد الصغيرة نفسها بالمسجلات). إن المتغيرات التراتبية مشابهة للكائنات التي بها خصائص في اللغات العديدة القائمة على الكائن. إضافة إلى ذلك فإن تصميم لغة ممبس يتطلب أن جميع المسجلات للمتغيرات تحفظ تلقائيا في نظام تخزين. إن المسجلات الرقمية (بما فيها أرقام النقط العائمة) تكون مخزنة من أدناها إلى أعلاها. وتكون جميع المسجلات غير الرقمية مخزنة بترتيب أبجدي يتبع الأرقام. وفي مصطلحات ممبس فإن هذا النظام هو نظام كنسي (تراتبي). ومن خلال استخدام المسجلات المكملة غير السلبية فحسب فإنه يمكن لمبرمج ممبس أن يحاكي نوع بيانات المصفوفات من اللغات الأخرى. وبالرغم من أن ممبس لا تقدم بالأساس مجموعة تامة من مميزات DBMS مثل المخططات الإلزامية، وكانت العديد من نظم DBMS مبنية على قمتها والتي تزود مطوري التطبيق بملف مسطح ومميزات قاعدة بيانات علائقية وشبكية.
إضافة إلى ذلك فإنه هناك مشغلون مدمجون يتعاملون مع سلسلة غير محدودة (على سبيل المثال قيم الفاصلة المفصولة) كمصفوفة. وسيقوم مبرمجو ممبس الأوائل بتخزين بنية المعلومات المرتبطة باعتبارها سلسلة غير محدودة، وتحليلها بعد قراءتها؛ ويلج القرص الحفوظ هذا على الوقت ويقدم ميزات سرعة كبيرة على بعض المعدات.
وليس لممبس أنواع من البيانات. ويمكن معاملة الأرقام على أنها مسلاست من الأرقام، أو سلسلة يمكن التعامل معها على أنها أرقام من خلال المشغلون الرقميون (القسريون بلغة ممبس). وبأي حال فإنه يمكن أن يكون للقسر بعض الآثار الجانبية الضارة. على سبيل المثال فإنه عندما تكون سلسلة ما قسرية، فإن المحلل يتحول بدرجة كبيرة لعمل سلسلة (بادئا من اليسار) في رقم بقدر الإمكان، ثم التخلص من الباقي. وهكذا فإن البيان IF 20&lt;"30 DUCKS يتم تقيمه على أنه حقيقي وفق ممبس.
إن المميزات الأخرى للغة أنها عمدت إلى مساعدة تطبيقات ممبس في التفاعل مع بعضها البعض في بيئة متعددة المستخدمين. إن أقفال قواعد البيانات، ومحددات العملية، وعمليات تححديث قاعدة البيانات تتطلب جميعا معايرة تطبيقات ممبس.
وعلى العكس من اللغات في سي أو تقاليد ويرث Wirth، فإن بعض الحروف الفارغة بين بيانات ممبس تعتبر مميزة. إن فراغ واحد يفصل الأمر عن المعطيات الخاصة به، وفراغ أو خط جديد ويفصل كل معطيات عن الممبس المأخوذة التالية. إن الأوامر التي لا تأخذمعطيات (مثل ELSE) تتطلب فراغين متاليين. إن المفهوم هو أن فراغ واحد يفصل الأمر عن المعطي (غير الموجود)، ويفصل التالي "المعطى" عن الأمر التالي. كما أن السطور الجديدة هامة أيضا؛ فإن أوامر (أو قفزات) IF أو ELSE أو FOR تعالج كل شيء آخر حتى نهاية السطر. ومن أجل جعل هذه البيانات تتحكم في السطور المتعددة فإنه عليك استخدام الأمر DO لتكوين كتلة شفرة.
نموذج "مرحبا أيها العالم".
وهناك نموذج مرحبا أيها العالم البسيط في ممبس ويمكن أن يكون
write "Hello, World!",!
ويمكن أن يتم تشغيله من خط أمر ممبس بالأمر 'do ^hello()'. ولأن ممبس تسمح للأوامر بان تكون مسلسلة معا على نفس الخط، ولأن الأوامر يمكن اختصارها في خطاب مفرد، ويمكن لهذا النظام أن يصنع بطريقة أكثر تحجيما:
hello() w "Hello, World!",! q
إن'codice_1'بعد النص تولد خطا جديدا. إن 'codice_2' ليست حاسمة بالضرورة في نهاية وظيفة مثل هذه، لكنها جيدة في ممارسة البرمجة في حالة أن الوظائف الأخرى تضاف أسفل 'codice_3' فيما بعد.
ملخص للميزات الرئيسية للغة.
يعمل الملخص التالي على جعل المبرمجين المعتادين على اللغات الأخرى يشعرون بماهية ممبس. وهي ليست خاصية لغوية رسمية، وقد تم محو العديد من المميزات والمؤهلات من أجل الإيجاز. وتقدم ANSI X11.1-1995 وصفا كاملا ورسميا للغة؛ وهناك نسخة مشروحة من هذه المعايرة متاحة على الإنترنت.
أنواع البيانات: هناك نوع بيانات عالمي واحد، وهو ملزم بأن يكون قاعدة بيانات من النوع المسلسل أوالمتكامل أو ذو الفاصلة العائمة وفقما يحتاج السياق إليه.