MSH تنفيذ مترجم. أريد أن أقدم للجمهور المحترم مترجم لغة البرمجة الجديدة MSH. لقد كتبت بالفعل مقالات عنه حول هبر. آخر واحد هو
MSH مترجم . تحتوي هذه المقالة على روابط لمقالات سابقة حول هذا الموضوع.
في الواقع ، فإن الجمهور المحلي يشك في هذا الإبداع. لكن هذا غير عادل. يمكن أن تؤدي لغة البرمجة الناجحة إلى تقدم كبير في صناعة تكنولوجيا المعلومات بالكامل. الحد من جهود التنمية. أخذت تطوير لغتي لعدم تلبية طموحاتي الخاصة. أعتقد أنه لا توجد لغة برمجة ناجحة. وهذا ضروري للغاية. علاوة على ذلك ، لا توجد لغة ، ولكن هناك أيديولوجية اللغة. هذه الإيديولوجية موجودة في لغة MUMPS. لكن كلغة برمجة غير موجودة. يتم استخدامه فقط كلغة قاعدة بيانات وهذا يحد بشكل كبير من نطاق تطبيقه. هذا الموقف ، في رأيي ، قد تطور بسبب المصلحة الذاتية لمطوري قواعد البيانات وعدم فهم إمكانات هذه اللغة من قبل الجميع. يوجد MUMPS الآن كمعيار 1995. بالطبع ، في هذا النموذج منذ فترة طويلة عفا عليها الزمن. ظهرت مفاهيم البرمجة الجديدة التي يجب أن يكون لها لغة حديثة. تعهدت بتطوير مثل هذه اللغة. في هذه الحالة ، كان من الضروري الحفاظ على أيديولوجية MUMPS. والأيديولوجية هي وحدة الشفرة والبيانات. تعتمد اللغة ليس فقط على البيانات ، ولكن على بنية البيانات. وهذا هيكل قوي إلى حد ما. هذه شجرة. جميع الهياكل الأخرى على غرار شجرة. في حالة التدهور ، قد تتكون الشجرة من قمة واحدة. في الواقع ، الخط الفاصل بين الكود والبيانات سريع الزوال. L
يمكن وضع منطق البرنامج في الشفرة وفي البيانات. وأين لرسم الخط بين الكود والبيانات يعتمد على مبرمج. حاولت أن أضع كل منطق البرنامج في البيانات. وذهب البرنامج ببساطة حول شجرة البيانات ونفذ الأوامر هناك. بالطبع ، لم تختف الشفرة ، لكن بنية البرنامج كانت خارج البرنامج الرئيسي. كانت مرونة مثل هذا البرنامج عالية ، ولكن فهم مثل هذا البرنامج كان ببساطة مستحيلًا. لذلك الكود والبيانات تشكل الوحدة. علاوة على ذلك ، فإن بنية البيانات أساسية فيما يتعلق بمحتوى البيانات. الانفصال إلى لغة برمجة وقاعدة بيانات غير طبيعي.
عند تصميم أنظمة المعلومات ، تعالج البرامج بشكل أساسي هياكل البيانات بدلاً من المحتوى. يصبح المحتوى مهمًا فقط في وقت العمليات الحسابية. تشير الطبيعة الثانوية للمحتوى إلى عدم وجود حاجة لأنواع البيانات. يتم إنشاء أنواع البيانات عن طريق هندسة الكمبيوتر ونقص المترجمين. لا علاقة لأنواع البيانات بالمعنى المجدي لنظم المعلومات. من الواضح أن هذا يبسط المترجمين و IDEs ، لكن كل هذا ثانوي. المشاكل التي تولد أنواع البيانات تفوق بكثير الفوائد التي تقدمها. هذا لا يعني أنك لست بحاجة إلى التحكم في محتوى البيانات. ولكن يجب أن يتم ذلك فقط في وقت استلام البيانات من الخارج. وأنواع المتغيرات لا تعطي مساعدة في هذا. مجموعة متنوعة من محتوى البيانات يتجاوز بكثير الأنواع الأساسية من لغات البرمجة. لا يمكن أن يكون مجرد أرقام ، ولكن أيضًا سلاسل من أنواع مختلفة. والأرقام يمكن أن يكون لها قيود مختلفة. في أي حال ، من الضروري التحقق من بيانات الإدخال للتأكد من صحتها. لذلك فإن الأنواع الأساسية لها علاقة قليلة جدًا بمحتوى البيانات.
اللغة الحديثة يجب أن تدعم OOP. بسبب عدم وجود جزء إعلاني في اللغة ، اضطررت إلى قصر نفسي على جزء فقط من تنفيذ وصف الفصل. لكن اللغة لا تفرض أسلوب برمجة. هل تريد استخدام الكائنات ، لا تريد عدم استخدام. يستخدم التعامل مع الأحداث على نطاق واسع في المجمع. بنيت كل شيء DOS على التعامل مع الحدث. في اللغات عالية المستوى ، لا أعرف حالات استخدام هذه التقنية. على الرغم من أن لديها إمكانات عالية. يؤدي غياب معالجة الأحداث في برامج اللغة إلى استخدام دورات معالجة الرسائل المختلفة. حل خرقاء إلى حد ما يسبب الكثير من المشاكل عند محاولة إجراء نوع من المعالجة داخل الحلقة. يتم استخدام المعالجة المتوازية للمهام بالفعل في كل مكان ، لكن في العديد من اللغات لا يتم دعمها على مستوى اللغة. هذا يجعل البرامج تعتمد على نظام التشغيل وإصداره. الخسائر الناجمة عن مثل هذا القرار واضحة في رأيي.
هذه هي الإيديولوجية التي بنيت عليها لغة MSH.
- وحدة الشفرة وبنية البيانات ، مما يعني أن اللغة لديها بنية بيانات قوية.
- عدم وجود أنواع البيانات ، ونتيجة لذلك ، إعلانهم.
- إدراج تقنيات البرمجة الحديثة في اللغة. في MSH ، هذه هي الكائنات ومعالجة الأحداث والتنفيذ المتوازي للمهام.
يمكن لأي شخص مهتم بهذه اللغة التعرف عليه على جيثب .
وضعت هناك من شفرة المصدر ومثال العمل. لقد بدأ العمل للتو في اللغة وهذا ليس منتجًا نهائيًا. لكنني أعتقد أنه يمكنك الحصول على فكرة عن اللغة. تم تطوير اللغة في نظام التشغيل Linux x64.