سؤال

ما هو الحد الأدنى مجموعة من الأوليات المطلوبة مثل أن اللغة هي تورينج كاملة و يسب البديل?

يبدو أن السيارة مجلس الإنماء والإعمار وبعض التحكم في التدفق و شيء REPL بما فيه الكفاية.يكون الأمر رائعا إذا كان هناك مثل هذه القائمة.

نفترض أن هناك فقط 3 أنواع من البيانات الصحيحه والرموز والقوائم.(كما في picolisp)

هل كانت مفيدة؟

المحلول

هناك مناقشة جيدة لهذا في أسئلة وأجوبة LISP. ذلك يعتمد على اختيارك من البدائية. قام McCarthy الأصلي "Lisp 1.5 Programmer's Manual" مع خمس وظائف: Car و CDR و Cons و Eq و Atom.

نصائح أخرى

ال حساب التفاضل والتكامل لامدا هو تورينج كامل. لديها واحدة بدائية - لامدا. ترجمة ذلك إلى بناء جملة LISP هو تافهة جدا.

أعتقد أن الحد الأدنى هو ما جون مكارثي نشرت في الورقة الأصلية.

جذور Lisp.

رمز.

أفضل طريقة لمعرفة ذلك بالتأكيد هي إذا قمت بتنفيذها. لقد استخدمت 3 صيف لإنشاء Zozotez وهو Lisp McCarty-ish يركض على Brainfuck.

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

للحصول على lisp الكاملة التي استخدمتها بول غراهامس شرح ورقة مكارثي وكل ما تحتاجه حقًا هو:

  • تقييم الرمز
  • اقتباس شكل خاص
  • نموذج خاص إذا (أو كوند)
  • شكل خاص Lambda (على غرار اقتباس)
  • وظيفة Eq
  • وظيفة الذرة
  • وظيفة السلبيات
  • وظيفة السيارة
  • وظيفة CDR
  • دالة dispatch (تنطبق بشكل أساسي ولكن لا تتعرض فعليًا للنظام ، بحيث يتعامل مع قائمة حيث العنصر الأول هو وظيفة)

هذا 10. بالإضافة إلى ذلك ، للحصول على تطبيق يمكنك اختباره وليس فقط على لوحة الرسم:

  • قراءة الوظيفة
  • وظيفة الكتابة

هذا 12. في بلدي Zozotez أنا ناضج set و flambda (ماكريات مجهولة ، مثل لامدا) كذلك. يمكنني إطعامها مكتبة تنفذ أي LISP BOND (ELISP ، PICOLISP) باستثناء ملف I/O (لأن BF الأساسي لا يدعمها بخلاف stdin/stdout).

أوصي أي شخص بتنفيذ Lisp1-Interpreter ، في كليهما LISP و (not LISP), ، لفهم تمامًا كيف يتم تنفيذ اللغة. لدى Lisp بناء جملة بسيط للغاية ، لذا فهي نقطة انطلاق جيدة. لجميع لغات البرمجة الأخرى ، كيف تنفذ مترجم متشابه للغاية. على سبيل المثال. في ال مقاطع الفيديو SICP تصنع المعالجات مترجمًا للغة المنطقية ، ولكن الهيكل وكيفية تنفيذه يشبه إلى حد كبير مترجم LISP على الرغم من أن هذه اللغة مختلفة تمامًا عن LISP.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top