سؤال

أنا مهتم في تنفيذ المنصوص عليها النظام فقط حتى أتمكن من الحصول على بعض الخبرة بناء بسيط VM وقت التشغيل.

عند البدء في وإيابا ، عادة ما يتعلم عن كومة المشغلين (قطرة ، DUP, مبادلة, الخ.) أولا, لذلك فمن الطبيعي أن نفكر في هذه كما يجري بين البدائية المشغلين.لكنهم لا.كل واحد منهم يمكن تقسيمها إلى مشغلي مباشرة التعامل معها ذاكرة المكدس المؤشرات.في وقت لاحق يتعلم المرء عن متجر (!) وجلب (@) التي يمكن استخدامها لتنفيذ DUP ، مبادلة ، وما إلى ذلك (ها!).

فما هي بدائية المشغلين ؟ تلك التي يجب أن تنفذ مباشرة في بيئة وقت التشغيل من الآخرين يمكن أن يكون بنيت ؟ أنا غير مهتم في عالية الأداء ؛ أريد شيئا أنا (وغيرها) يمكن أن تتعلم منها.مشغل الأمثل يمكن أن تأتي في وقت لاحق.

(نعم أنا على علم أنني يمكن أن تبدأ مع آلة تورينج والذهاب من هناك.هذا هو قليلا المتطرفة.)

تحرير:ما أسعى للحصول على أقرب إلى إلباس الحذاء نظام التشغيل أو برنامج التحويل البرمجي.ماذا أحتاج تنفذ على الأقل حتى أستطيع أن بناء بقية النظام من تلك البدائية بناء كتل ؟ لن تنفذ هذا في العارية الأجهزة ؛ كما تعليمية ممارسة الرياضة ، كنت أكتب بلدي الحد الأدنى VM.

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

المحلول

هذا الموضوع تغطي السؤال الدقيق.هنا حساء-المكسرات تنفيذ مع وثائق كاملة.

كتبت روتين الخيوط عليها استهداف 68K عندما كنت في الكلية.تعريف بيئة وقت التشغيل و القاموس تنسيق ، ثم كتب بعض ج رمز التمهيد مربوطة ماكنتوش تطبيق تحميل القاموس الافتراضي ، يسكنها بعض I/O ناقلات وحصلت على رمز التشغيل.ثم أخذت ليو برودي الكتاب بدءا عليها وبدأ تنفيذ القاموس الأساسي في 68K لغة التجميع.لقد بدأت مع الحساب/المنطق الكلمات ، ثم لم هياكل المراقبة ثم كلمة تعريف/التلاعب في الكلمات.ما أفهمه هو أنه على الأقل تحتاج @, !, +, -, * و /.بقية يمكن تنفيذها من حيث تلك ، ولكن هذا مثل محاولة كتابة كامل مكتبة الرسومات على أساس SetPixel و GetPixel:وسوف روعه ، لماذا ؟

لقد استمتعت العملية كما كانت هناك بعض الألغاز مثيرة للاهتمام ، مثل الحصول على DOES> صحيح تماما (مرة واحدة كنت قد الصلبة DOES> التنفيذ كان خلق الإغلاق التي تحولت إلى صغيرة, كميات صغيرة من التعليمات البرمجية).

نصائح أخرى

ومنذ زمن طويل، وكان لي كتاب بعنوان "الخيوط تفسيري اللغات"، التي نشرت أعتقد أنه بحلول بايت، التي ناقشت كيفية تطبيق لغة شبيهة الرابع (لا أعتقد أنها تسمى من أي وقت مضى الرابع) في التجمع Z80 .

وأنت قد لا يكون لها Z80 مفيد، أو تريد واحدة، لكن الكتاب قد تكون مفيدة.

وهذه الوظيفة في comp.lang.forth تسرد عدد قليل من "Forths الحد الأدنى".

http://groups.google.com/group/comp .lang.forth / جي اس / 10872cb68edcb526

لماذا أنا أعرف هذا؟ أخي، ميكائيل، وكتب رقم 3 وكما كتب رقة عن تقديم "الحد الأدنى الرابع "(باللغة السويدية، على الرغم من). إذا كنت أتذكر بشكل صحيح انه يريد الحصول على مجموعة صغيرة من الشركات التي يمكن أن يبنى في السيليكون.

وأنا ما زلت غير مقتنع ومنسق بشكل جيد على هذا السؤال. على سبيل المثال، تعليمات التفاف على المجالس يمكن أن تخفض. بعد كل شيء، * و/ يمكن تنفيذها من حيث + و-، ولكن بعد ذلك '+' يمكن تنفيذها من حيث وظيفة خليفة (انظر في بيانو البديهيات .) أي يضعك في حي آلة تورينج. كيف يمكنك أن تعرف أين تتوقف؟

وقد ترغب أيضا أن نلقي نظرة على 4TH مترجم .

ما التنفيذ الذي تستخدمه لا توفر هذه المعلومات في وثائق الرابع؟ ونظرا لطبيعة رابعا، قد يكون تعتمد على التنفيذ. هناك مجموعة قياسية من الكلمات في القاموس، ولكن هل وصلوا الى هناك من قبل التجمع / C / أيا كان أو الرابع لا ينبغي أن يهم، منذ الرابع هو تعريف لغة لمد النفس.

وعلى عكس ما تقوله، وانخفاض SWAP عموما وما إلى ذلك تعتبر العمليات الأساسية الرابع. والسبب هو أنه إذا كنت تنفيذها باستخدام عمليات الذاكرة مثل توحي لك، النظام الشامل يصبح أكثر، وليس أقل تعقيدا. أيضا ليس هناك تمييز واضح في الرابع بين ما هو أساسي وما لا. في ال 80 بحث القاموس سيكون الأساسي، وترميز في المجمع للسرعة، في حين أن لينكس الحديث استضافت يستطيعون رمز أنه في ما يسمى مستوى عال. أيضا Forthers تميل إلى عادة بعبارة إعادة رمز المجمع في مستوى عال، والكلمات رفيعة المستوى في المجمع. أنا مؤلف ciforth وyourforth. ومن الممكن تحديد <= باسم "> لا" كما فعلت في ciforth. ولكن في yourforth قررت أن وجود كل من <<=> => كما مماثلة، وتبحث بشكل موحد، وكانت إجراءات المجمع صغيرة أبسط بشكل فعال. وهذا هو دعوة الحكم، ومسألة ذوق، وبالتأكيد ليس من حيث المبدأ.

في سياق أفسر السؤال على النحو التالي: "ما هو حجم معقول لعدد من العمليات البدائية للوصول إلى قوة معقولة الرابع مع سرعة معقولة" من الواضح أنك لا ترغب في الحيل ذكية للتخلص من كلمة المجمع واحدة على حساب النفقات العامة هائل كما وجدت في بعض المواضيع مناقشة هذا الموضوع.

والآن يمكنك أن تبحث في عدد من وصغيرة الرابع مثل eforth yourforth jonesforth ونخلص إلى أن يصل واحد في الغالب عند حوالي 50-100 الأوليات. وتعرف تلك الرابع في المجمع. إذا كنت ترغب في تحديد الأوليات الخاصة بك في ج، الثعبان أو جافا، فإن الوضع يختلف مرة أخرى. الآن لمثل البحث القاموس أعلاه لديك الاختيار بين ج والرابع. الاعتبارات التي لها علاقة مع لغة تصميم شيء حيز اللعب. قد يكون غزير ج-مبرمج، أو قد تصر على الترميز في الرابع لأنه هو مشروع التعلم.

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