อะไรคือความแตกต่างพื้นฐานระหว่างความหมายในการดำเนินงานขนาดเล็กและขนาดใหญ่
ฉันมีเวลายากที่จะเข้าใจว่ามันคืออะไรและมีแรงบันดาลใจในการมีสองสิ่งนี้
x = 0; while ( true ) { x = x + 1; }
คืออะไร?
อะไรคือความแตกต่างพื้นฐานระหว่างความหมายในการดำเนินงานขนาดเล็กและขนาดใหญ่
ฉันมีเวลายากที่จะเข้าใจว่ามันคืออะไรและมีแรงบันดาลใจในการมีสองสิ่งนี้
x = 0; while ( true ) { x = x + 1; }
คืออะไร?
คำตอบ:
ซีแมนทิกส์ขั้นตอนเล็กกำหนดวิธีการประเมินนิพจน์หนึ่งขั้นตอนการคำนวณในแต่ละครั้ง การพูดอย่างเป็นทางการความหมายขั้นตอนเล็ก ๆ สำหรับภาษาการแสดงออกคือความสัมพันธ์เรียกว่าการลดความสัมพันธ์ ความหมายขั้นตอนเล็ก ๆ อธิบายสิ่งที่เกิดขึ้นกับนิพจน์โดยละเอียด มันสามารถที่จะให้แม่นยำของบัญชีแม้กระทั่งโปรแกรมที่ไม่ใช่เลิกกับห่วงโซ่อนันต์\ โปรแกรมการยกเลิกดังกล่าวเป็นหนึ่งที่สิ้นสุดด้วยค่าดังกล่าวว่าe' \ newcommand {\ llbracket} {[\! [} \ newcommand {\ rrbracket} {] \!]}→ : E × Ee 0 → e 1 → ⋯ → v ∀ e ′ ∈ E , v ↛ e ′
ในตอนท้าย ๆ ของคลื่นคือความหมาย denotational ความหมายเชิง Denotational กำหนด "ความหมาย" ให้กับแต่ละนิพจน์ มันเป็นฟังก์ชั่นจากการแสดงออกถึง denotations: (เรียกว่าโดเมน) พื้นที่ของ denotations ได้อย่างสมบูรณ์ไม่เกี่ยวข้องกับพื้นที่ประโยคตัวอย่างเช่นอาจจะมีการแสดงออกที่ประเมินตัวเลขและจะเป็นชุดของตัวเลขเช่นหรือ{R}
ซีแมนทิกส์ขั้นตอนใหญ่อยู่ตรงกลาง ความหมายขั้นตอนใหญ่ในภาษาแสดงออกและชุดของค่าเป็นความสัมพันธ์V มันเกี่ยวข้องกับการแสดงออกถึงค่าของมัน (อาจจะมีหลายค่าถ้าภาษาที่ไม่ได้กำหนดไว้) บ่อยครั้งที่ค่าพิเศษใช้สำหรับนิพจน์ที่ไม่สิ้นสุด
แล้วทำไมเราถึงมีสามแนวคิดนี้ แนวคิดทั้งหมดนี้สามารถสร้างแบบจำลองซึ่งกันและกัน แต่แบบจำลองนี้เพิ่มระดับความซับซ้อน
การดำเนินการพูดความหมายขั้นตอนเล็ก ๆ สอดคล้องกับการมองแต่ละการดำเนินการที่ดำเนินการโดยล่ามสำหรับภาษา ซีแมนทิกส์ขั้นตอนใหญ่จะดูเฉพาะผลลัพธ์ที่ได้ ความหมายเชิง Denotational มองไปที่การตีความทางคณิตศาสตร์ซึ่งอาจมีหรือไม่มีส่วนเกี่ยวข้องกับสิ่งที่เกิดขึ้นบนคอมพิวเตอร์
ความหมายขั้นตอนเล็ก ๆ เป็นสิ่งที่ชัดเจนที่สุด ชัดเจนให้ข้อมูลที่เป็นประโยชน์เกี่ยวกับโปรแกรมที่ไม่สิ้นสุด โดยทั่วไปแล้วจะให้ข้อมูลรายละเอียดเกี่ยวกับพฤติกรรมของโปรแกรม
ความหมายเชิง Denotational แปลงโครงสร้างประโยคให้เป็นวัตถุทางคณิตศาสตร์ตามอำเภอใจ มันสามารถแสดงสิ่งที่นักวิทยาศาสตร์ต้องการ (คุณสามารถกำหนด denotation ของนิพจน์ให้เป็นโซ่การลดที่เป็นไปได้ทั้งหมด) แต่มีค่าใช้จ่ายในการเพิ่มระดับของความซับซ้อน มันถูกใช้เมื่อเราต้องการสรุปรายละเอียดบางอย่างออกไปเช่นการประเมินการแสดงออก
ความหมายของขั้นตอนใหญ่อยู่ตรงกลาง: มันสรุปรายละเอียดของการประเมิน แต่ยังคงรักษาลักษณะทางไวยากรณ์ของผลลัพธ์ โดยทั่วไปแล้วแนวคิดนี้จะถูกใช้เมื่อมีความหมายเล็ก ๆ น้อย ๆ ที่ซึ่งเป็นวิธีที่จะอธิบายอย่างย่อ ๆ ว่า " ” เป็น“ ” ในสิ่งปลูกสร้างในขณะที่แนวคิดแตกต่างกันมาก (อันที่หนึ่งช่วยให้เราสามารถพูดคุยเกี่ยวกับแต่ละขั้นตอนการคำนวณและเกี่ยวกับโปรแกรมไม่สิ้นสุดอื่น ๆ ไม่ได้) คำจำกัดความจะมีลักษณะคล้ายกันมากเพราะในกรณีนี้กฎที่กำหนด ซีแมนทิกส์ขั้นตอนใหญ่นั้นเป็นแบบฟอร์ม“ ถ้าและ…และและคือค่าดังนั้น ”
3
ใน((2+1)+1)⇓3
ฉันคาดเดา 'denotational' เป็นบางสิ้นทั้งหมดค่า แต่ในสิ่งที่จะอินสแตนซ์ 'ขั้นตอนใหญ่' ไม่จำเป็นต้อง map โดยตรงกับที่? ไม่แตกต่างมีสิ่งที่จะทำอย่างไรกับบริบทเช่น(a + 1)
ขึ้นอยู่กับสภาพแวดล้อมที่มีa
?
3