الفأرة (لغة برمجة)
لغة البرمجة Mouse (تكتب أحيانًا MOUSE ) هي لغة برمجة حاسوبية صغيرة طورها الدكتور بيتر غروغونو في أواخر السبعينيات وأوائل الثمانينيات. [ 1 ] [ 2 ] [ 3 ] وقد تم تطويرها كامتداد للغة سابقة تسمى MUSYS، والتي كانت تستخدم للتحكم في الأجهزة الرقمية والتناظرية في استوديو موسيقى إلكترونية.
صُممت لغة Mouse في الأصل لتكون لغة صغيرة وفعّالة للحواسيب الصغيرة ذات الذاكرة المحدودة. وهي لغة تفسيرية تعتمد على بنية المكدس ، وتستخدم تدوين اللغة البولندية العكسية . ولتسهيل برمجة المفسر قدر الإمكان، صُممت Mouse بحيث تتم معالجة البرنامج كسلسلة من الأحرف، ويتم تفسير كل حرف على حدة.
تتألف عناصر لغة Mouse من مجموعة من الرموز (معظمها) مكونة من حرف واحد، يؤدي كل منها وظيفة محددة (انظر الجدول أدناه). ولأن أسماء المتغيرات تقتصر على حرف واحد، فلا يوجد سوى 26 متغيرًا ممكنًا في لغة Mouse (المسماة AZ). وتُعد الأعداد الصحيحة والأحرف هي أنواع البيانات الوحيدة المتاحة.
على الرغم من هذه القيود، يتضمن برنامج Mouse عددًا من الميزات المتقدمة نسبيًا، بما في ذلك:
- التفرع الشرطي
- الحلقات
- نصائح
- وحدات الماكرو (الروتينات الفرعية (التي قد تكون متكررة))
- المصفوفات
- تتبع التعليمات البرمجية
يُعد تصميم لغة Mouse مثاليًا لتدريس تصميم مترجم بسيط. وقد خُصص جزء كبير من الكتاب الذي يصف لغة Mouse [ 3 ] لشرح تنفيذ مترجمين، أحدهما بلغة التجميع Z80 ، والآخر بلغة باسكال .
تفاصيل
اللغة الموصوفة هنا هي النسخة الأحدث من لغة "ماوس"، كما وردت في كتاب "ماوس". [ 3 ] هذه النسخة هي امتداد للغة الموصوفة في المقالة الأصلية المنشورة في المجلة. [ 1 ]
الرموز
يصف الجدول التالي كل رمز من الرموز التي يستخدمها برنامج Mouse. [ 3 ] هنا يشير X إلى الرقم الموجود أعلى المكدس، وY هو الرقم التالي في المكدس.
| رمز | فعل |
|---|---|
| <مسافة> | لا إجراء |
| دولار | نهاية البرنامج |
| <رقم> | أضف <رقم> إلى المجموعة |
| + | يضيف |
| - | طرح |
| * | ضاعف |
| / | قسمة عدد صحيح |
| \ | الباقي |
| ؟ | أدخل عددًا صحيحًا |
| ؟ | حرف الإدخال |
| ! | اطبع العدد الصحيح |
| !' | حرف الطباعة |
| ' | ادفع الحرف إلى المكدس |
| " | طباعة السلسلة |
| <حرف> | الحصول على عنوان المتغير |
| : | متغير المتجر |
| . | متغير الاستدعاء |
| < | أرجع 1 إذا كانت Y < X؛ وإلا فأرجع 0 |
| = | أرجع 1 إذا كانت Y = X؛ وإلا فأرجع 0 |
| > | أرجع 1 إذا كانت Y > X؛ وإلا فأرجع 0 |
| [ | بداية العبارة الشرطية |
| ] | نهاية العبارة الشرطية |
| ( | بداية الحلقة |
| ) | نهاية الحلقة |
| ^ | الخروج من الحلقة (إذا كانت النتيجة خاطئة) |
| 8 | مكالمة ماكرو |
| @ | الخروج من الماكرو |
| % | معلمة الماكرو |
| ، | نهاية معلمة الماكرو الفعلية |
| ؛ | نهاية قائمة معلمات الماكرو |
| { | بدء التتبع |
| } | نهاية التتبع |
| ~ | تعليق |
تعابير الوجه
مصطلحات شائعة
تظهر هذه التعبيرات بشكل متكرر في برامج الماوس.
X: ~ تخزين في المتغير X X. ~ استدعاء المتغير X X. Y: ~ انسخ X إلى Y N. 1 + N: ~ زيادة N بمقدار 1 PQ P: Q: ~ تبديل قيم P و Q ج: أدخل رقمًا واحفظه في أ P. ! ~ اطبع المتغير P
مدخل
يمكن إدخال الأرقام الصحيحة أو الأحرف باستخدام الماوس. عند إدخال حرف، يتم تحويله تلقائيًا إلى رمز ASCII الخاص به.
؟ X: ~ أدخل رقمًا واحفظه في X ؟' X: ~ أدخل حرفًا واحفظ رمز ASCII الخاص به في X
الناتج
يمكن للماوس طباعة الأعداد الصحيحة أو الأحرف أو الثوابت النصية، كما هو موضح في هذه الأمثلة. إذا ظهرت علامة تعجب في ثابت نصي، فسيتم طباعة سطر جديد.
X. ! ~ تذكر الرقم X واطبعه X. !' ~ استدعاء رمز ASCII X وطباعة الحرف "مرحباً" ~ اطبع السلسلة "مرحباً" "السطر 1! السطر 2" ~ اطبع السطرين "السطر 1" و"السطر 2" على سطرين منفصلين
الشروط
تأخذ العبارة الشرطية الشكل العام التالي:
B [ S ] ~ مكافئ لـ: إذا كان B فإن S
هنا B عبارة عن تعبير يتم تقييمه إلى 1 (صحيح) أو 0 (خطأ)، و S عبارة عن سلسلة من العبارات.
الحلقات
قد تتخذ الحلقات أحد الأشكال العديدة. وأكثرها شيوعًا هي الأشكال التالية:
(B ^ S) ~ يكافئ: بينما B افعل S (SB ^) ~ ما يعادل: كرر S حتى (ليس B)
وهنا أيضًا، B هي قيمة منطقية (0 أو 1)، و S عبارة عن سلسلة من العبارات.
مكالمات الماكرو
يمكن توضيح صيغة استدعاء الماكرو (الروتين الفرعي) بالمثال التالي. يقوم الماكرو A في هذا المثال بجمع المعاملين اللذين تم تمريرهما إليه من البرنامج الرئيسي، ويعيد المجموع في أعلى المكدس.
A,p1,p2; ~ استدعاء الماكرو A في البرنامج الرئيسي ... $A 1% 2% + @ ~ macro A (إضافة المعاملات p1 و p2)
هنا ، p1 و p2 هما معلمات يتم تمريرها إلى الماكرو.
برامج نموذجية
هذا البرنامج القصير يطبع عبارة "مرحباً بالعالم".
"مرحبا بالعالم." دولار
يعرض هذا البرنامج مربعات الأعداد الصحيحة من 1 إلى 10.
1 N: ~ تهيئة N إلى 1 (NN * ! " " ~ بداية الحلقة؛ اطبع مربعات الأرقام N. 10 - 0 < ^ ~ الخروج من الحلقة إذا كان N >= 10 N. 1 + N: ) $ ~ زيادة N وتكرار الحلقة
ملحوظات
- 1 2 غروغونو، بيتر ( يوليو 1979). mii/n197/mode/2up "الماوس / لغة للحواسيب الصغيرة" . بايت . الصفحات 198-220 . تم الاطلاع عليه بتاريخ 18 أكتوبر 2013 .
{{cite news}}: تحقق من|url=القيمة ( مساعدة ) - ↑ لين، توم؛ غروغونو، بيتر (يونيو 1980). "تعليق وتصحيح لبرنامج ماوس" . بايت . تم الاطلاع عليه بتاريخ 18 أكتوبر 2013 .
- 1 2 3 4 غروغونو، بيتر. الفأرة: لغة للحواسيب الصغيرة . 151 صفحة. دار نشر بتروتشيلي: 1983. ISBN 0-89433-201-5.
روابط خارجية
- لغة برمجة الفأرة
- إحياء لغة برمجة الفأرة العظيمة
- أصدقاء الفأر
- لغة الفأر
- لغة برمجة الحاسوب Mouse: (تتضمن شفرة المصدر لمترجمات لغة Mouse)
- معلومات على موقع sourceforge.net
- لغات البرمجة الموجهة نحو المكدس
