ความเท่าเทียมกันของการวิเคราะห์การไหลของข้อมูลการตีความเชิงนามธรรมและการอนุมานประเภท?


9

@ Babou ของคำตอบของคำถามที่ผ่านมาทำให้ผมนึกถึงว่าครั้งหนึ่งผมคิดว่าผมอ่านกระดาษเกี่ยวกับความเท่าเทียมกัน (ในแง่ทั้งข้อเท็จจริงที่ว่าจะสามารถสรุปหรือได้รับการพิสูจน์และความซับซ้อนเวลาของการทำงานขั้นตอนวิธีการอนุมาน) ของการวิเคราะห์ข้อมูลการไหล , การตีความที่เป็นนามธรรมและอนุมานชนิด

ในบางกรณีย่อย (เช่นระหว่างการวิเคราะห์การไหลของข้อมูลระหว่างบริบทและการตีความนามธรรม) ความเท่าเทียมกันนั้นค่อนข้างชัดเจนสำหรับฉัน แต่คำถามดูเหมือนจะละเอียดกว่าสำหรับการเปรียบเทียบอื่น ๆ ตัวอย่างเช่นฉันไม่สามารถทราบได้ว่าการอนุมานประเภท Hindley-Milner สามารถใช้ในการพิสูจน์คุณสมบัติบางอย่างที่สามารถพิสูจน์ได้ด้วยการวิเคราะห์การไหลของข้อมูลที่มีความอ่อนไหวต่อการไหล

อะไรคือการอ้างอิงน้ำเชื้อที่พูดถึงการเทียบเท่า (หรือความแตกต่าง) ระหว่างการวิเคราะห์การไหลของข้อมูลการตีความที่เป็นนามธรรมและการอนุมานประเภท?

คำตอบ:


4

การวิเคราะห์การไหลของข้อมูลและการอนุมานประเภทเป็นกรณีเฉพาะของการตีความเชิงนามธรรม

การวิเคราะห์การไหลของข้อมูลและการตีความที่เป็นนามธรรมมีลักษณะคล้ายกันเนื่องจากทั้งคู่เกี่ยวกับการคำนวณจุดแก้ไข การวิเคราะห์การไหลของข้อมูลมักจะมีโดเมนนามธรรมที่มีความสูง จำกัด ซึ่งทำให้มั่นใจได้ถึงการสิ้นสุด โดยทั่วไปการตีความที่เป็นนามธรรมไม่ถือว่าโดเมนที่เป็นนามธรรมเช่นนั้น เพื่อจัดการกับโดเมนที่มีความสูงไม่ จำกัด การตีความเชิงนามธรรมใช้เทคนิคของการขยับขยายและตีบ

มันกลับกลายเป็นว่าการอนุมานประเภทนั้นเกี่ยวกับการคำนวณจุดแก้ไขด้วยซ้ำ นี่คือกระดาษอย่างชัดเจนว่าแสดงให้เห็นว่าการตีความประเภทนามธรรม: กระดาษ โดยทั่วไปแล้วประเภทจะถูกมองว่าเป็นนามธรรมของความหมายที่เป็นรูปธรรมของโปรแกรม ในระบบประเภท Hindley-Milner เช่นโดเมนนามธรรมของประเภทนั้นมีความสูงไม่สิ้นสุดและการคำนวณประเภท (โดยทั่วไป) โดยใช้การรวมกันนั้นเป็นการดำเนินการที่กว้างมาก


4

สถานที่ที่ดีในการเรียนรู้เกี่ยวกับวิธีการทั้งสามนี้และวิธีการที่เกี่ยวข้องคือหลักการวิเคราะห์หนังสือโดย Nielson, Nielson และ Hankin

ฉันไม่คิดว่ามันถูกต้องที่จะบอกว่าการวิเคราะห์การไหลของข้อมูลการตีความเชิงนามธรรมและการอนุมานประเภทเป็นสิ่งเดียวกัน ในขณะที่มีความคล้ายคลึงกันมากมายและอาจมากกว่าที่คาดหวังเนื่องจากทั้งสามมีต้นกำเนิดในชุมชนที่แตกต่างกัน แต่ก็มีความแตกต่างมากมาย


3

ฉันคิดว่าพวกมันเหมือนกัน พวกเขาเพิ่งมีเป้าหมายที่แตกต่างกันไปและถูกประกาศเกียรติคุณจากกลุ่มวิทยาศาสตร์คอมพิวเตอร์ที่แตกต่างกัน

การวิเคราะห์การไหลของข้อมูลมาจากฝ่ายวิศวกรรมคอมไพเลอร์พยายามพูดคุยเกี่ยวกับอัลกอริธึมการหาค่าเหมาะที่สุดและการพิสูจน์ขอบเขตบนความซับซ้อนเป็นต้น

การตีความที่เป็นนามธรรมมาจากสาขาคณิตศาสตร์ที่เป็นทางการของวิทยาศาสตร์คอมพิวเตอร์ นี่เป็นเวอร์ชั่นที่เป็นทางการยิ่งกว่าด้วยความสนใจในความถูกต้องและน้อยกว่าในการสร้างคอมไพเลอร์จริง

การอนุมานประเภทมาจากสาขาวิชาการของการเขียนโปรแกรมเชิงหน้าที่โดยเริ่มแรกนั้นเป็นเครื่องมือในการทำสิ่งดีๆด้วยคอมไพเลอร์ จากนั้นความคิดก็เกิดขึ้นว่าประเภทนั้นอาจเป็นมากกว่า "int" หรือ "float" แต่ยังมีสิ่งอื่น ๆ เช่นในการวิเคราะห์การไหลของข้อมูลแบบดั้งเดิม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.