النظام F
النظام F (ويُعرف أيضًا بحساب لامدا متعدد الأشكال أو حساب لامدا من الدرجة الثانية ) هو حساب لامدا مُنمّط يُضيف إلى حساب لامدا المُنمّط ببساطة آليةً للتكميم الشامل على الأنواع. يُضفي النظام F طابعًا رسميًا على تعدد الأشكال البارامتري في لغات البرمجة ، مُشكلاً بذلك أساسًا نظريًا للغات مثل هاسكل و ML . وقد اكتشفه بشكل مستقل كلٌ من عالم المنطق جان إيف جيرار (1972) وعالم الحاسوب جون سي. رينولدز .
بينما تحتوي حسابات لامدا المكتوبة ببساطة على متغيرات تتراوح بين الحدود، وروابط لها، فإن نظام F يحتوي أيضًا على متغيرات تتراوح بين الأنواع ، وروابط لها. على سبيل المثال، حقيقة أن دالة الهوية يمكن أن يكون لها أي نوع من الشكل A → A سيتم صياغتها رسميًا في نظام F على النحو التالي:
أينهو متغير نوع . الحرف الكبيريُستخدم تقليديًا للدلالة على الدوال على مستوى النوع، على عكس الأحرف الصغيرة.والتي تُستخدم لوظائف مستوى القيمة. (الرمز المرتفع)هذا يعني أن المتغير المقيد x من النوع; التعبير الذي يلي النقطتين هو نوع تعبير لامدا الذي يسبقه.)
باعتباره نظامًا لإعادة كتابة المصطلحات ، يتميز النظام F بتطبيع قوي . مع ذلك، فإن استنتاج النوع في النظام F (بدون تحديدات صريحة للنوع) غير قابل للتقرير . في ظل تماثل كاري-هوارد ، يتوافق النظام F مع منطق الحدس الافتراضي من الدرجة الثانية . يمكن اعتبار النظام F جزءًا من مكعب لامدا ، إلى جانب حسابات لامدا ذات أنواع أكثر تعبيرًا، بما في ذلك تلك التي تحتوي على أنواع تابعة .
بحسب جيرارد، تم اختيار حرف "F" في System F بالصدفة. [ 1 ]
قواعد الكتابة
قواعد كتابة نظام F هي قواعد حساب التفاضل والتكامل اللامدا المكتوب ببساطة مع إضافة ما يلي:
| :\سيجما [\تاو /\alpha ]}}} (1) | (2) |
أينهي أنواع،هو متغير نوع، ويشير السياق إلى أنمُلزم. القاعدة الأولى هي قاعدة التطبيق، والثانية هي قاعدة التجريد. [ 2 ] [ 3 ]
المنطق والمسندات
اليُعرَّف النوع على النحو التالي: ، أينهو متغير نوعي . وهذا يعني:هو نوع جميع الدوال التي تأخذ كمدخلات نوعًا α وتعبيرين من النوع α ، وتنتج كمخرجات تعبيرًا من النوع α (لاحظ أننا نعتبرأن يكون ارتباطيًا يمينيًا .)
التعريفان التاليان للقيم المنطقيةوتُستخدم، مما يوسع تعريف العمليات المنطقية للكنيسة :
(لاحظ أن الدالتين المذكورتين أعلاه تتطلبان ثلاثة وسائط - وليس اثنين . يجب أن يكون الوسيطان الأخيران تعبيرات لامدا، بينما يجب أن يكون الوسيط الأول نوعًا. وينعكس هذا في كون نوع هذه التعبيرات هو؛ يُقابل المُكمِّم العام الذي يربط α المُكمِّم Λ الذي يربط α في تعبير لامدا نفسه. لاحظ أيضًا أنهو اختصار مناسب لـلكنها ليست رمزًا للنظام F نفسه، بل هي بالأحرى "رمز فوقي". وبالمثل،ووهي أيضًا "رموز فوقية"، اختصارات ملائمة، لـ "تجميعات" النظام F (بمعنى بورباكي )؛ وإلا، إذا كان من الممكن تسمية هذه الوظائف (داخل النظام F)، فلن تكون هناك حاجة إلى جهاز التعبير عن لامدا القادر على تعريف الوظائف بشكل مجهول، ولا إلى مُركِّب النقطة الثابتة ، الذي يتجاوز هذا القيد.
ثم، مع هذين الاثنين- من حيث، يمكننا تعريف بعض عوامل التشغيل المنطقية (التي هي من النوع):
لاحظ أنه في التعريفات أعلاه،هو وسيط نوع لـ، مع تحديد أن المعلمتين الأخريين اللتين يتم إعطاؤهما لـهي من النوعكما هو الحال في ترميزات الكنيسة، لا حاجة لدالة IFTHENELSE حيث يمكن استخدام البيانات الخام مباشرةً.المصطلحات المصنفة كدوال قرار. ومع ذلك، إذا طُلب أحدها:
حسنًا. الدالة الشرطية هي دالة تُرجعالقيمة المحددة النوع. أهم دالة أساسية هي ISZERO التي تُرجعإذا وفقط إذا كانت وسيطتها هي الرقم الكنسي 0 :
علاوة على ذلك، يمكن تنفيذ المُكمِّم الوجودي (وبالتالي الأنواع الوجودية) في النظام F على النحو التالي: [ 4 ] [ 5 ]
هياكل النظام F
يُتيح النظام F تضمين البنى التكرارية بطريقة طبيعية، على غرار نظرية مارتن-لوف للأنواع . تُنشأ البنى المجردة ( S ) باستخدام الدوال البانية . وهي دوال مُصنفة على النحو التالي:
- .
تتجلى الخاصية التكرارية عندما يظهر S نفسه ضمن أحد الأنواعإذا كان لديك m من هذه المُنشئات، فيمكنك تعريف نوع S على النحو التالي:
على سبيل المثال، يمكن تعريف الأعداد الطبيعية كنوع بيانات استقرائي N مع مُنشئات
نوع النظام F المقابل لهذا الهيكل هو تتضمن المصطلحات من هذا النوع نسخة مطبوعة من أرقام الكنيسة ، وأولى هذه المصطلحات هي:
إذا عكسنا ترتيب الحجج المُدمجة ( أي،إذا كان لدينا عددان من نوع Church، فإن العدد n هو دالة تأخذ دالة f كمعامل وتعيد القوة النونية لـ f . أي أن العدد Church هو دالة من الرتبة العليا - فهو يأخذ دالة ذات معامل واحد f ، ويعيد دالة أخرى ذات معامل واحد.
يُستخدم في لغات البرمجة
يُستخدم في هذه المقالة نظام F بصيغة حسابية صريحة النوع، أو ما يُعرف بحساب تشيرش. وتُسهّل معلومات النوع المُضمنة في حدود λ عملية التحقق من النوع . وقد حسم جو ويلز (1994) "مشكلة مفتوحة مُحرجة" بإثبات أن التحقق من النوع غير قابل للتقرير بالنسبة لمتغير من نظام F بنمط كاري، أي المتغير الذي يفتقر إلى تعليقات النوع الصريحة. [ 6 ] [ 7 ]
تشير نتيجة ويلز إلى استحالة استنتاج النوع في النظام F. يوجد قيد على النظام F يُعرف باسم " هيندلي-ميلنر " أو اختصارًا "HM"، ويحتوي على خوارزمية سهلة لاستنتاج النوع، ويُستخدم في العديد من لغات البرمجة الوظيفية ذات الأنواع الثابتة ، مثل هاسكل 98 وعائلة لغات ML . مع مرور الوقت، ومع اتضاح قيود أنظمة الأنواع من نمط HM، اتجهت اللغات تدريجيًا نحو منطق أكثر تعبيرًا لأنظمة أنواعها. يتجاوز مُصرّف GHC ، وهو مُصرّف للغة هاسكل، نمط HM (حتى عام 2008) ويستخدم النظام F المُوسّع بمساواة الأنواع غير النحوية؛ [ 8 ] وتشمل ميزات نظام أنواع OCaml غير HM، GADT . [ 9 ] [ 10 ]
تماثل جيرارد-رينولدز
في منطق الحدس من الرتبة الثانية ، اكتشف جيرارد (1972) حساب لامدا متعدد الأشكال من الرتبة الثانية (F2)، ثم اكتشفه رينولدز (1974) بشكل مستقل. [ 11 ] أثبت جيرارد نظرية التمثيل : أنه في منطق المسندات الحدسي من الرتبة الثانية (P2)، تشكل الدوال من الأعداد الطبيعية إلى الأعداد الطبيعية التي يمكن إثبات كليتها، إسقاطًا من P2 إلى F2. [ 11 ] أثبت رينولدز نظرية التجريد : أن كل حد في F2 يحقق علاقة منطقية، يمكن تضمينها في العلاقات المنطقية P2. [ 11 ] أثبت رينولدز أن إسقاط جيرارد متبوعًا بتضمين رينولدز يشكلان التطابق، أي تماثل جيرارد-رينولدز . [ 11 ]
النظام F ω
بينما يتوافق النظام F مع المحور الأول لمكعب لامدا لباريندريخت ، فإن النظام F ω أو حساب لامدا متعدد الأشكال من الدرجة الأعلى يجمع بين المحور الأول (تعدد الأشكال) مع المحور الثاني ( عوامل النوع )؛ إنه نظام مختلف وأكثر تعقيدًا.
يمكن تعريف النظام F ω استقرائياً على مجموعة من الأنظمة، حيث يعتمد الاستقراء على الأنواع المسموح بها في كل نظام:
- أنواع التصاريح:
- (أنواع الأنواع) و
- أينو(نوع الدوال من أنواع إلى أنواع، حيث يكون نوع الوسيط من رتبة أدنى)
في النهاية، يمكننا تعريف النظاميكون
أي أن F ω هو النظام الذي يسمح للدوال من أنواع إلى أنواع حيث يمكن أن يكون الوسيط (والنتيجة) من أي رتبة.
لاحظ أنه على الرغم من أن F ω لا يفرض أي قيود على ترتيب الوسائط في هذه التعيينات، إلا أنه يقيد نطاق الوسائط لهذه التعيينات: يجب أن تكون أنواعًا وليست قيمًا. لا يسمح النظام F ω بالتعيينات من القيم إلى الأنواع ( الأنواع التابعة )، على الرغم من أنه يسمح بالتعيينات من القيم إلى القيم (التجريد)، والتحويلات من الأنواع إلى القيم (التجريد)، والتحويلات من أنواع إلى أنواع (التجريد على مستوى الأنواع).
النظام F < :
نظام F < : ، الذي يُنطق "إف-ساب"، هو امتداد لنظام F مع خاصية التنميط الفرعي . وقد حظي نظام F < : بأهمية مركزية في نظرية لغات البرمجة منذ ثمانينيات القرن الماضي، لأن جوهر لغات البرمجة الوظيفية ، مثل تلك الموجودة في عائلة ML ، يدعم كلاً من تعدد الأشكال البارامتري والتنميط الفرعي للسجلات ، والذي يمكن التعبير عنه في نظام F < : . [ 12 ] [ 13 ]
انظر أيضاً
- الأنواع الوجودية - النظائر الكمية الوجودية للأنواع العالمية
- نظام يو
- مكعب لامدا
ملحوظات
- ↑ جيرارد، جان إيف (1986). "نظام F ذو الأنواع المتغيرة، بعد خمسة عشر عامًا". علوم الحاسوب النظرية . 45 : 160. doi : 10.1016/0304-3975(86)90044-7 .
مع ذلك، في [3]، تبين أن قواعد التحويل الواضحة لهذا النظام، المسمى F مصادفةً، كانت تتقارب.
- ↑ هاربر ر . "الأسس العملية للغات البرمجة، الطبعة الثانية" . ص 142-143 .
- ↑ Geuvers H, Nordström B, Dowek G. "إثباتات البرامج وصياغة الرياضيات" (PDF) . ص 51.
- ↑ كزافييه ليروي، البرمجة = إثبات؟ مراسلات كاري-هوارد اليوم، محاضرات في كوليج دو فرانس، المحاضرة 2، ص 15، 21 نوفمبر 2018 https://xavierleroy.org/CdF/2018-2019/2.pdf
- ↑ "CS 4110: لغات البرمجة والمنطق - المحاضرة 26: الأنواع الوجودية" (ملف PDF) . كلية آن إس. باورز للحوسبة وعلوم المعلومات، جامعة كورنيل . قسم علوم الحاسوب، جامعة كورنيل. 2018. مؤرشف (ملف PDF) من الأصل بتاريخ 26 سبتمبر 2025. تم الاطلاع عليه بتاريخ 8 نوفمبر 2025 .
- ↑ ويلز، جيه بي (2005-01-20). "اهتمامات جو ويلز البحثية" . جامعة هيريوت وات.
- ↑ ويلز، جيه بي (1999). "قابلية الكتابة والتحقق من النوع في النظام F متكافئان وغير قابلين للتقرير" . حوليات المنطق البحت والتطبيقي . 98 ( 1-3 ): 111-156 . doi : 10.1016/S0168-0072(98)00047-5 ."مشروع الكنيسة: قابلية الكتابة والتحقق من النوع في النظام {F} متكافئان وغير قابلين للتقرير" . 29 سبتمبر 2007. مؤرشف من الأصل في 29 سبتمبر 2007.
- ↑ "System FC: equal constraints and coercions" . gitlab.haskell.org . تم الاطلاع عليه بتاريخ 2019-07-08 .
- ↑ "ملاحظات إصدار OCaml 4.00.1" . ocaml.org . 2012-10-05 . تم الاطلاع عليه بتاريخ 2019-09-23 .
- ↑ "دليل مرجعي لـ OCaml 4.09" . 11-09-2012 . تم الاطلاع عليه بتاريخ 23-09-2019 .
- 1 2 3 4 فيليب وادلر (2005) تماثل جيرارد-رينولدز (الطبعة الثانية) جامعة إدنبرة ، لغات البرمجة وأسسها في إدنبرة
- ↑ كارديلي، لوكا؛ مارتيني، سيموني؛ ميتشل، جون سي؛ سيدروف، أندريه (1994). "امتداد للنظام F مع التنميط الفرعي". المعلومات والحوسبة، المجلد 9. نورث هولاند، أمستردام. الصفحات 4-56 . doi : 10.1006/inco.1994.1013 .
- ↑ بيرس، بنجامين (2002). أنواع ولغات البرمجة . مطبعة معهد ماساتشوستس للتكنولوجيا. ISBN 978-0-262-16209-8.الفصل 26: التحديد الكمي المحدود
مراجع
- جيرار، جان إيف (1971). "Une Extension de l'Interpretation de Gödel à l'Analyse، وهو تطبيق على l'Éliminating des Coupures dans l'Analyse et la Théorie des Types". وقائع ندوة المنطق الاسكندنافية الثانية . أمستردام. الصفحات من 63 إلى 92. دوى : 10.1016/S0049-237X(08)70843-7 .
- جيرارد ، جان إيف (1972)، التفسير الوظيفي والقضاء على انقباضات الحساب الأعلى (رسالة دكتوراه) (بالفرنسية)، جامعة باريس 7.
- رينولدز، جون (1974). نحو نظرية بنية النوع (PDF) .
- جيرار، جان إيف؛ لافون، إيف؛ تايلور، بول (1989). البراهين والأنواع . مطبعة جامعة كامبريدج. ISBN 978-0-521-37181-0.
- ويلز، ج. ب. (1994). "قابلية الكتابة والتحقق من النوع في حساب لامدا من الدرجة الثانية متكافئان وغير قابلين للتقرير". وقائع الندوة السنوية التاسعة لمعهد مهندسي الكهرباء والإلكترونيات حول المنطق في علوم الحاسوب (LICS) . الصفحات 176-185 . doi : 10.1109/LICS.1994.316068 . ISBN 0-8186-6310-3.نسخة بوستسكريبت
للمزيد من القراءة
- بيرس، بنيامين (2002). "تعدد الأشكال V، الفصل 23: الأنواع العامة، الفصل 25: تطبيق ML لنظام F" . الأنواع ولغات البرمجة . مطبعة معهد ماساتشوستس للتكنولوجيا. الصفحات 339-362 ، 381-388 . ISBN 0-262-16209-1.
روابط خارجية
- ملخص كتاب "النظام F" لفرانك بينارد.
- نظام F ω : العمود الفقري للمترجمات الحديثة بقلم جريج موريسيت
- 1971 في مجال الحوسبة
- 1974 في مجال الحوسبة
- حساب التفاضل والتكامل لامدا
- نظرية الأنواع
- تعدد الأشكال (علوم الحاسوب)
- منطق
