คำถามติดแท็ก operational-semantics

1
เราสามารถแยกความแตกต่างระหว่างไวยากรณ์และความหมายในภาษาโปรแกรมได้หรือไม่?
ในขณะที่การอภิปรายการพิสูจน์การทำให้เป็นมาตรฐานที่แข็งแกร่งความคิดเห็นนี้แตกต่าง "แบบฟอร์มปกติแบบฟอร์ม" กับ "วิธีการทางวากยสัมพันธ์ล้วนๆ" สิ่งนี้ทำให้ฉันกลับไปที่คำถามพื้นฐานเพิ่มเติม: เราสามารถแยกความแตกต่างระหว่างโครงสร้างประโยคและความหมายของประโยคอย่างเคร่งครัดได้หรือไม่ในการเผชิญกับโมเดลที่อิงกับไวยากรณ์ สิ่งที่เกี่ยวกับแบบจำลองของ algebras และแบบจำลองของ Henkin สำหรับการสั่งซื้อครั้งแรก สิ่งที่เกี่ยวกับความหมายการดำเนินงานโครงสร้าง? เนื่องจากเทอมตัวแบบสามารถแปรเปลี่ยนเป็นซินแท็กซ์ได้มันจึงยากที่จะสร้างความแตกต่างที่มั่นคง จนกว่าฉันจะศึกษาความแตกต่างระหว่างทฤษฎีการพิสูจน์และทฤษฎีแบบจำลองในเชิงตรรกะฉันก็รู้สึกงงงวยกับแนวคิดที่ว่า "ระบบชนิดสแตติกเป็นวิธีการสร้างประโยค" ท้ายที่สุดแล้วระบบการพิมพ์มีเหตุผลเกี่ยวกับประเภทซึ่งเป็นนามธรรมของพฤติกรรมของโปรแกรม (และด้วยประเภทที่ขึ้นอยู่กับความแม่นยำโดยพลการ)

1
การเรียก / cc ของ Scheme สามารถใช้โครงสร้างการไหลของการควบคุมที่รู้จักทั้งหมดได้หรือไม่
หน้า"แผนการขั้นสูง: บาง Naughty Bits"ระบุ: Continuations เป็นโครงสร้างการควบคุมการไหลที่ทรงพลังซึ่ง อาจมีโครงสร้างการไหลของการควบคุม [... ] อื่นเกือบ ผมคิดว่าโครงการของcall/ccถูกที่เกี่ยวข้อง (*) ปีเตอร์ร่อนลงของผู้ประกอบการเจสามารถนำมาใช้ในการดำเนินการใด ๆโครงสร้างการควบคุมการไหลที่รู้จักกัน? ด้วย "โครงสร้างการควบคุมการไหล" ฉันกำลังคิดถึงคำอธิบายของวิกิพีเดียเป็นพิเศษเช่นข้อยกเว้น coroutines เธรดสีเขียวและอื่น ๆ มีตัวอย่างของโครงสร้างการควบคุมการไหลที่ไม่สามารถนำไปใช้งานได้call/ccหรือไม่? (*) ฉันไม่สามารถที่จะขุดกระดาษใด ๆ ที่ระบุว่าcall/ccมีประสิทธิภาพเท่ากับตัวดำเนินการ J บทความโดย Felleisen (ซึ่งฉันไม่ได้อ่านและยอมรับว่ามีปัญหาในการทำความเข้าใจอย่างเต็มที่) ตรวจสอบเรื่องนี้และดูเหมือนจะสรุปได้ว่าถึงแม้ว่าพวกเขาจะอยู่ในชั้นเรียนที่มีความซับซ้อนแตกต่างกันก็ตาม (โปรดทราบว่าฉันได้อัปเดตคำถามตามความคิดเห็นด้านล่าง) ปรับปรุง จากคำตอบที่ยอดเยี่ยมโดย @Neel ด้านล่างฉันได้ดูไซต์ที่แสดงความคิดเห็นเกี่ยวกับความต่อเนื่องที่คั่นและไม่ จำกัดและดูเหมือนว่าในขณะที่การcall/ccไม่ถูก จำกัด นั้นไม่เพียงพอ ในขณะที่ชั้นแรกที่คั่นต (ชอบshift/reset) สามารถนำมาใช้ดูเหมือนว่าจะแสดงโครงสร้างการควบคุมการไหลใด ๆ

3
ภาษาใดที่มีทฤษฎีของการเทียบเท่าเชิงสังเกตการณ์อยู่แล้ว?
สำหรับการพิสูจน์ความถูกต้องฉันกำลังมองหาแนวคิดที่ใช้งานได้ของความเท่าเทียมโปรแกรมสำหรับระบบพิมพ์บริสุทธิ์ (PTS) ของ Barendregt; หายไปนั้นสำหรับระบบประเภทที่เฉพาะเจาะจงเพียงพอ เป้าหมายของฉันคือใช้ความคิดไม่ใช่เพื่อตรวจสอบเพื่อประโยชน์ของตัวเอง≅≅\cong ความคิดนี้ควรจะเป็น " extensional " - โดยเฉพาะอย่างยิ่งเพื่อพิสูจน์ว่ามันควรจะเพียงพอที่จะพิสูจน์ว่าสำหรับค่าทั้งหมดของประเภทที่เหมาะสมt 1เสื้อ1≅เสื้อ2t1≅t2t_1 \cong t_2vเสื้อ1v ≅เสื้อ2โวลต์t1v≅t2โวลต์t_1\; v \cong t_2\; vโวลต์โวลต์v ความเท่าเทียมกันทาง Denotational ความเท่าเทียมกันทาง Denotational สามารถตอบสนองความต้องการทั้งหมดได้อย่างง่ายดาย แต่ความหมายเชิง Denotational สำหรับ PTS ตามอำเภอใจนั้นค่อนข้างท้าทาย - มันดูเหมือนยากสำหรับระบบ F บริบท / การเทียบเท่าเชิงสังเกตการณ์ ทางเลือกที่ชัดเจนคือรูปแบบต่าง ๆ ของการเทียบเคียงบริบท (สองเงื่อนไขเทียบเท่าหากไม่มีบริบทพื้นดินสามารถแยกแยะพวกเขาได้) แต่คำจำกัดความนั้นไม่สามารถใช้งานได้ทันที บทแทรกที่หลากหลายนั้นไม่สำคัญมากที่จะพิสูจน์ พวกเขาได้รับการพิสูจน์แล้วสำหรับ PTS หรือไม่? อีกทางหนึ่งทฤษฎีจะเป็น "ส่วนขยายที่ชัดเจน" หรือมีเหตุผลที่เชื่อว่าทฤษฎีจะแตกต่างกันอย่างมีนัยสำคัญหรือไม่? แก้ไข: ฉันไม่ได้พูดสิ่งที่ยากข้างต้น …

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