Forth

Forth

صعب

التعليمات

أنشئ مُقيِّمًا لمجموعة فرعية بسيطة جدًا من Forth.

Forth لغة برمجة تعتمد على المكدّس. أنشئ مُقيِّمًا أساسيًا جدًا لمجموعة صغيرة من Forth.

على مُقيِّمك أن يدعم الكلمات التالية:

  • +، -، *، / (العمليات الحسابية على الأعداد الصحيحة)
  • DUP، DROP، SWAP، OVER (التعامل مع المكدّس)

كما على مُقيِّمك أن يدعم تعريف كلمات جديدة باستخدام الصيغة المعتادة: : word-name definition ;.

ولتبسيط الأمور، نوع البيانات الوحيد الذي تحتاج إلى دعمه هو الأعداد الصحيحة المُوقّعة بحجم 16 بت على الأقل.

عليك استخدام القواعد التالية للصيغة: العدد هو متتالية من رقم (ASCII) واحد أو أكثر، والكلمة متتالية من حرف أو رقم أو رمز أو علامة ترقيم واحدة أو أكثر، ولا تكون عددًا. (ربما تستخدم Forth قواعد مختلفة قليلًا، لكن هذا قريب بما يكفي.)

الكلمات غير حساسة لحالة الأحرف.

التنفيذ

في Forth تُسمّى الدوال words، وهي تعمل على مكدس بيانات. كل كلمة تأخذ معاملاتها من المكدس وتُرجع نتائجها على المكدس.

تحتوي وثائق Forth دائمًا على حالة مكدس البيانات قبل تنفيذ الكلمة وبعده بالصيغة التالية ( p1 p2 ... pN --- r1 r2 ... rN ). تُمثّل القيم من p1 إلى pN معاملات الكلمة على المكدس قبل الاستدعاء (قد يحتوي المكدس على بيانات إضافية في مواضع أعلى منه، غير ممثَّلة هنا)، وتُمثّل القيم من r1 إلى rN القيم التي تُرجعها الكلمة على المكدس بعد الاستدعاء. ويميّز الفاصل --- بين حالة المكدس قبل تنفيذ الكلمة وبعدها.

الكلمات المطلوب تنفيذها معرّفة كما يلي:

  • ToS اختصار لـ Top of Stack
  • تُمثَّل قمة المكدس بالقيمة الواقعة في أقصى اليمين
الكلمة حالة المكدس الوصف
+ ( a b --- sum ) sum = a + b
- ( a b --- diff ) diff = a - b
* ( a b --- prod ) prod = a * b
/ ( a b --- quot ) quot = a / b
dup ( a --- a a ) duplicate the value on the ToS
drop ( a --- ) drop the value on the ToS
swap ( a b --- b a ) swap the two values on the ToS
over ( a b c --- a b c b ) نسخ القيمة الثانية إلى ToS

إذا أردت أن تجرّب مفسّر Forth عبر الإنترنت أو أن تتعلّم المزيد عن الكلمات المطلوب تنفيذها، جرّب Easy Forth (وتحديدًا قسم Adding Some Numbers وDefining Words وStack Manipulation).

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Odin Exercism

مستعد لبدء Forth؟

سجّل في Exercism لتتعلّم وتتقن Odin عبر 73 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.