قاعدة الطباعة

في نظرية الأنواع ، قاعدة التصنيف هي قاعدة استدلال تصف كيفية إسناد نظام الأنواع نوعًا إلى بنية نحوية . [ 1 ] : 94 يمكن لنظام الأنواع تطبيق هذه القواعد لتحديد ما إذا كان البرنامج مصنفًا بشكل صحيح وما هي تعابير الأنواع . ومن الأمثلة النموذجية على استخدام قواعد التصنيف تعريف استدلال الأنواع في حساب لامدا ذي التصنيف البسيط ، وهو اللغة الداخلية للفئات المغلقة الديكارتية . [ 2 ]

الترميز

تحدد قواعد الكتابة بنية علاقة الكتابة التي تربط المصطلحات النحوية بأنواعها. [ 1 ] : 92 نحويًا، يُشار عادةً إلى علاقة الكتابة بنقطتين رأسيتين، على سبيل المثالهـ:τ{\displaystyle e:\tau }يشير إلى أن التعبيرهـ{\displaystyle e}له نوعτ{\displaystyle \tau }تُحدد القواعد نفسها عادةً باستخدام تدوين الاستدلال الطبيعي . [ 1 ] : 26 على سبيل المثال، تحدد قواعد الكتابة التالية علاقة الكتابة للغة بسيطة من القيم المنطقية : [ 1 ] : 93

ترuهـ:بooلوألsهـ:بooلهـ1:بooلهـ2:τهـ3:τأناو هـ1 تحهـن هـ2 هـلsهـ هـ3:τ{\displaystyle {\frac {}{{\mathsf {true}}:{\mathsf {Bool}}}}\qquad {\frac {}{{\mathsf {false}}:{\mathsf {Bool}}}}\qquad {\frac {e_{1}:{\mathsf {Bool}}\quad \;e_{2}:\tau \quad \;e_{3}:\tau {\mathbf {if} \ e_{1}\ \mathbf {ثم} \ e_{2}\ \mathbf {else} \ e_{3}:\tau }}}

تنص كل قاعدة على أنه يمكن استنتاج النتيجة أسفل الخط من المقدمات أعلاه. القاعدتان الأوليان لا تحتويان على مقدمات أعلاه، لذا فهما بديهيتان . أما القاعدة الثالثة فتحتوي على مقدمات أعلاه (ثلاث مقدمات تحديدًا)، لذا فهي قاعدة استدلال .

في لغات البرمجة، يعتمد نوع المتغير على مكان ربطه ، مما يستلزم قواعد كتابة حساسة للسياق. تُحدد هذه القواعد من خلال حكم كتابة ، يُكتب عادةًΓهـ:τ{\displaystyle \Gamma \vdash e:\tau }، وهو ما ينص على أن التعبيرهـ{\displaystyle e}له نوعτ{\displaystyle \tau }في سياق الكتابةΓ{\displaystyle \Gamma }يربط ذلك المتغيرات بأنواعها. وتُستكمل سياقات الكتابة أحيانًا بأنواع المتغيرات الفردية؛ على سبيل المثال،Γ،x:τ1هـ:τ2{\displaystyle \Gamma ,x{:}\tau _{1}\vdash e:\tau _{2}}يمكن قراءتها على أنها "السياق"Γ{\displaystyle \Gamma }بالإضافة إلى المعلومات التي تفيد بأن التعبيرx{\displaystyle x}له نوعτ1{\displaystyle \tau _{1}}وينتج عن الحكم أن التعبيرهـ{\displaystyle e}له نوعτ2{\displaystyle \tau _{2}}يمكن استخدام هذه الصيغة لإعطاء قواعد كتابة لمراجع المتغيرات وتجريد لامدا في حساب لامدا ذي الكتابة البسيطة : [ 1 ] : 101-102

x:τΓΓx:τΓ،x:τ1هـ:τ2Γ(λx:τ1.هـ):τ1τ2{\displaystyle {\frac {x{:}\tau \in \Gamma }{\Gamma \vdash x:\tau }}\qquad {\frac {\Gamma ,x{:}\tau _{1}\vdash e:\tau _{2}}{\Gamma \vdash (\lambda x{:}\tau _{1}.\,e):\tau _{1}\rightarrow \تاو _{2}}}}

وبالمثل، تصف قاعدة الكتابة التالية ما يلي:لهـت{\displaystyle \mathbf {let} }بنية لغة التعلم الآلي القياسية :

Γهـ1:τ1Γ،x:τ1هـ2:τ2Γلهـت x=هـ1 أنان هـ2 هـند:τ2{\displaystyle {\frac {\Gamma \vdash e_{1}:\tau _{1}\qquad \Gamma ,x{:}\tau _{1}\vdash e_{2}:\tau _{2}}{\Gamma \vdash \mathbf {let} \ x=e_{1}\ \mathbf {in} \ e_{2}\ \mathbf {end} :\tau _{2}}}}

لا تُحدد جميع أنظمة قواعد الكتابة خوارزمية فحص النوع بشكل مباشر . على سبيل المثال، تتطلب قاعدة الكتابة لتطبيق دالة متعددة الأشكال ذات المعاملات في نظام هيندلي-ميلنر "تخمين" النوع المناسب الذي يجب إنشاء الدالة فيه. [ 3 ] يتطلب تكييف نظام قواعد تصريحي مع خوارزمية قابلة للتقرير إنتاج نظام خوارزمي منفصل يمكن إثبات أنه يُحدد علاقة الكتابة نفسها. [ 4 ]

انظر أيضاً

مراجع

  1. 1 2 3 4 5 بيرس، بنجامين سي. (2002). أنواع ولغات البرمجة (الطبعة الأولى  ). كامبريدج، ماساتشوستس: مطبعة معهد ماساتشوستس للتكنولوجيا. ISBN 0262162091.
  2. بايز، جون. "مقهى الفئات المتعددة" . golem.ph.utexas.edu . تم الاطلاع عليه بتاريخ 30 سبتمبر 2022 .
  3. كليمنت، دومينيك؛ ديسبيرو، تييري؛ كان، جيل؛ ديسبيرو، جويل (8 أغسطس 1986). "لغة تطبيقية بسيطة: Mini-ML" . وقائع مؤتمر ACM لعام 1986 حول لغة LISP والبرمجة الوظيفية - LFP '86 (ملف PDF) . رابطة آلات الحوسبة. الصفحات 13-27 . doi : 10.1145/319838.319847 . ISBN  0897912004. S2CID 5126579 . 
  4. دانفيلد، جانا؛ كريشناسوامي، نيل (23 مايو 2021). "الكتابة ثنائية الاتجاه" . مجلة ACM Computing Surveys . 54 (5): 98:19. arXiv : 1908.05839 . doi : 10.1145/3450952 . ISSN 0360-0300 . S2CID 201058734 .  

للمزيد من القراءة

  • كارديلي، لوكا (مارس 1996). "أنظمة الأنواع" . مجلة ACM Computing Surveys . 28 (1): 263-264 . doi : 10.1145/234313.234418 . S2CID 227408784 . 
  • كارديلي، لوكا (يونيو 2004). أنظمة الأنواع ، 41 صفحة. دليل علوم الحاسوب، الطبعة الثانية، الفصل 97. تحرير ألين ب. تاكر. ISBN 9780429209390. تاريخ الاطلاع: 5 يناير 2025.