บทความวิกิพีเดีย "กลยุทธ์การลด" จะถูกแยกออกจากการแก้ไขเฉพาะที่ทำโดย IP นิรนามในบทความ "กลยุทธ์การประเมินผล"
มุมมองที่แสดงไม่สอดคล้องกันในแง่ที่ว่าฉันสงสัยว่ามีคนเพียงไม่กี่คนที่จะให้คำตอบนี้หากคุณถามพวกเขาว่า "คุณจะแยกความแตกต่างระหว่างชื่อ 'กลยุทธ์การลด' และ 'กลยุทธ์การประเมิน'? ฉันเพิ่งได้ยินจาก Matthias Felleisen ซึ่งยืนกรานเกี่ยวกับความสำคัญของความแตกต่างนี้และฉันคิดว่ามุมมองนี้จะถูกแบ่งปันโดยผู้อื่นที่มีโอกาสสละเวลาเพื่อพูดคุยประเด็นเหล่านี้ในรายละเอียดกับเขา
ความเข้าใจในปัจจุบันของฉันเกี่ยวกับประเด็นนี้ (แต่ฉันยังไม่ได้ศึกษารายละเอียดทางเทคนิคเพื่อความยุติธรรมอย่างเต็มรูปแบบ) นั้นเกี่ยวกับสิ่งต่อไปนี้: คุณเกี่ยวกับการใช้ "ขั้นตอนใหญ่" กับความหมาย "ขั้นตอนเล็ก ๆ " หรือไม่ โดยทุกคนในสนาม ซีแมนทิกส์ขั้นตอนขนาดเล็กกำหนดขั้นตอนการลดขนาดอะตอมหนึ่งและผลที่ได้คือโดยทั่วไปยังคงลดลงได้ ซีแมนทิกส์ขั้นตอนใหญ่กำหนดขั้นตอนการลด "ใหญ่" หนึ่งครั้งที่ดำเนินไปตลอดตั้งแต่โปรแกรมเริ่มต้นจนถึงค่า (หรือบางคำตอบที่สมบูรณ์ยิ่งขึ้นหากภาษาของคุณมีเอฟเฟกต์ที่สังเกตได้อื่น ๆ กว่าการส่งคืนค่าเช่นอินพุต / เอาต์พุตหรือ สถานะที่ไม่แน่นอน)
หากคุณกำหนดทั้งความสัมพันธ์ขั้นตอนใหญ่และขั้นตอนขนาดเล็กคุณสามารถตรวจสอบว่าความหมายของขั้นตอนใหญ่รวมอยู่ในการปิด transitive ของความสัมพันธ์ขั้นตอนเล็ก ๆ และความสัมพันธ์ขั้นตอนเล็ก ๆ ไม่ได้ลดลงไปเป็นคำที่ติดอยู่อื่น ๆ สิ่งที่เข้าถึงได้โดยความสัมพันธ์ขั้นตอนใหญ่หรือแยกออกหากการลดขั้นตอนใหญ่ถูกกำหนดไว้ นี่คือความสัมพันธ์ที่เชื่อมโยงกันที่คาดไว้ระหว่างทั้งสอง
ฉันคิดว่าถ้อยคำของบทความสามารถอธิบายได้มากหรือน้อยในแง่ที่ทันสมัยเนื่องจาก "กลยุทธ์การประเมินคือความสัมพันธ์แบบก้าวใหญ่" "กลยุทธ์การลดคือความสัมพันธ์แบบก้าวเล็ก" โปรดทราบว่าการอภิปรายในบทความ "กลยุทธ์การลด" ส่วนใหญ่เกี่ยวกับบทความและการวิจัย (และที่สำคัญกว่านั้นคือมุมมองฝีปากที่เกิดขึ้นระหว่างการอ่านและการเขียนของพวกเขา) ระหว่างปี 1973 และ 1991 ในเวลาที่ความคิดเหล่านั้นเพิ่งจะเกิดขึ้นและ อาจจะไม่เข้าใจเท่าที่เป็นอยู่ทุกวันนี้ (ความหมายขั้นตอนใหญ่ถูกเน้นโดยคาห์นในปี 1987 และหนึ่งในงานที่สำคัญที่สุดในความหมายขั้นตอนเล็ก ๆ คือ Wright และ Felleisen, 1992)
สำหรับด้านที่ให้ความเห็นเพิ่มเติมว่าทำไม Felleisen ยืนยันถึงความสำคัญของความแตกต่างนี้ (นั่นคือสาเหตุที่อาจมีมากกว่านั้นเพียงแค่ "ขั้นตอนขนาดเล็กเทียบกับขั้นตอนใหญ่, meh") ความเข้าใจปัจจุบันของฉันคือ: ประเด็นที่กำลังทำอยู่คือความหมายขั้นตอนเล็ก ๆ ควรถูกมองว่าเป็นรายละเอียดการนำไปปฏิบัติ ความหมายตามอาร์กิวเมนต์นี้เป็นฟังก์ชั่นนามธรรมที่แมปแต่ละโปรแกรมกับค่า / คำตอบของมันและส่วนที่เหลือเป็นอุปกรณ์การใช้งานที่ออกแบบมาเพื่อประมาณมัน (หรือเหตุผลในการเทียบเท่าที่เกิดจากความหมายนี้) เมื่อเราพูดขั้นตอนใหญ่วันนี้เราคิดถึงระบบการอนุมานกฎของวากยสัมพันธ์ธรรมชาติ แต่ "กลยุทธ์การลด" ที่กล่าวถึงข้างต้นเป็นจริงแล้วมันเป็นนามธรรมที่เป็นแผนที่ (ฉันไม่คิดว่านี่จะให้ความหมายหรือความแข็งแกร่งมากขึ้นกับความคิดในทางปฏิบัติ แต่มันทำให้เป็นนามธรรมมากขึ้น)
ดังนั้นฉันจึงคิดว่าสิ่งที่หน้าวิกิพีเดียและแมทเธียสส์ Felleisen กำลังพูดนั้นมีลักษณะดังนี้: "กำหนดการประเมินของคุณในแบบที่คุณชอบ แต่ในตอนท้ายของวัน คำตอบ / พฤติกรรมและนี่คือสิ่งที่ควรเรียกว่า 'ความหมายในการปฏิบัติงาน' และให้เหตุผลเกี่ยวกับ "
โปรดทราบว่าตำแหน่งนี้ค่อนข้างขัดแย้งกับความแตกต่างในปัจจุบัน (ซึ่งฉันคิดว่าค่อนข้างยินยอม แต่อาจเป็นความลำเอียงทางวัฒนธรรมในส่วนของฉัน) ระหว่าง "ปฏิบัติการความหมาย" และ "ความหมายเชิง Denotational" ซึ่งอดีตถูกมองว่าเป็น syntactic มากกว่าในธรรมชาติ (หมายถึงการลดความสัมพันธ์) และโดยทั่วไปแล้วหลังเป็นลักษณะความจริงที่ว่าโปรแกรมที่มีการคำนวณเทียบเท่ามี denotation แบบเดียวกันแน่นอน (ดังนั้นการ denotation จะถูกลบล้างกลไกการคำนวณจริง) ภายใต้มุมมองหลังนี้สิ่งที่เสนอให้เป็น "กลยุทธ์การประเมินผล" หรือ "ความหมายเชิงปฏิบัติการ" ในบทความและคำอธิบายของฉันด้านบนจะถูกมองว่าเป็นความหมายเชิงลบ - แต่เป็นที่ยอมรับในลักษณะที่เป็นรูปธรรมมากกว่า: ค่า / คำตอบ / พฤติกรรมอยู่ใกล้กับวากยสัมพันธ์วัตถุมากกว่าโดเมนความหมายจำนวนมาก
การอ้างอิง:เพื่อทำความเข้าใจในมุมมองนี้อาจเป็นประโยชน์ที่จะกลับไปที่แหล่งที่มาซึ่งเป็นบทความโดย Gordon Plotkin ในปี 1973 คุณอาจโชคดีที่ได้ลองบทความหลังหนึ่งที่อ้างถึงในวิกิพีเดีย ฉันพบตัวอย่างเช่น "Parameter-Passing และแลมบ์ดาแคลคูลัส" โดย Crank และ Felleisen ปี 1991 ให้ภาพรวมที่ชัดเจนเกี่ยวกับตำแหน่งของพวกเขาในเรื่องนี้ในหน้าแรก ๆ