คำถามติดแท็ก program-correctness

6
การตรวจสอบโปรแกรมอย่างเป็นทางการในทางปฏิบัติ
ในฐานะวิศวกรซอฟต์แวร์ฉันเขียนโค้ดจำนวนมากสำหรับผลิตภัณฑ์อุตสาหกรรม สิ่งที่ค่อนข้างซับซ้อนกับคลาส, เธรด, ความพยายามในการออกแบบบางอย่าง แต่ยังมีบางอย่างที่ทำให้ประสิทธิภาพลดลง ฉันทำการทดสอบจำนวนมากและฉันเหนื่อยกับการทดสอบดังนั้นฉันจึงสนใจในเครื่องมือพิสูจน์อย่างเป็นทางการเช่น Coq, Isabelle ... ฉันสามารถใช้สิ่งเหล่านี้เพื่อพิสูจน์อย่างเป็นทางการว่ารหัสของฉันปราศจากข้อบกพร่องและสามารถทำได้ ด้วยหรือ - แต่ทุกครั้งที่ฉันตรวจสอบหนึ่งในเครื่องมือเหล่านี้ฉันเดินออกไปโดยไม่มั่นใจว่าพวกเขาสามารถใช้งานได้สำหรับวิศวกรรมซอฟต์แวร์ทุกวัน ตอนนี้นั่นอาจเป็นฉันเท่านั้นและฉันกำลังมองหาตัวชี้ / ความคิดเห็น / ความคิดเกี่ยวกับที่ :-) โดยเฉพาะฉันได้รับความประทับใจว่าการทำให้หนึ่งในเครื่องมือเหล่านี้ใช้งานได้สำหรับฉันจะต้องใช้เงินลงทุนจำนวนมากในการกำหนดวัตถุวิธีการ ... ของโปรแกรมภายใต้การพิจารณาอย่างเหมาะสม จากนั้นฉันก็สงสัยว่านักปราชญ์จะไม่หมดพลังไอน้ำเพราะขนาดของทุกสิ่งที่มันต้องจัดการด้วยหรือไม่ หรือบางทีฉันอาจต้องกำจัดผลข้างเคียง (เครื่องมือพิสูจน์พวกนั้นดูเหมือนจะทำได้ดีกับภาษาที่ประกาศ) และฉันสงสัยว่ามันจะส่งผลให้ "รหัสที่พิสูจน์แล้ว" ซึ่งไม่สามารถใช้ได้เพราะมันจะไม่เร็วหรือ เล็กพอ นอกจากนี้ฉันไม่มีความหรูหราในการเปลี่ยนภาษาที่ฉันทำงานด้วยมันต้องเป็น Java หรือ C ++: ฉันไม่สามารถบอกเจ้านายของฉันได้ว่าฉันจะใช้รหัสใน OXXXml นับจากนี้ไปเพราะเป็นภาษาเดียวใน ซึ่งฉันสามารถพิสูจน์ความถูกต้องของรหัส ... ใครบางคนที่มีประสบการณ์มากขึ้นเกี่ยวกับเครื่องมือพิสูจน์ความคิดเห็นอย่างเป็นทางการ? อีกครั้ง - ฉันจะรักในการใช้เครื่องมือสอบมาตรอย่างเป็นทางการผมคิดว่าพวกเขาจะดี แต่ผมมีความประทับใจที่พวกเขาอยู่ในหอคอยงาช้างที่ฉันไม่สามารถเข้าถึงได้จากคูต่ำต้อยของ Java / C ++ ... (PS: …

2
โปรแกรมความถูกต้องสเปค
จากวิกิพีเดีย: ในทางวิทยาการคอมพิวเตอร์เชิงทฤษฎีความถูกต้องของอัลกอริทึมถูกยืนยันเมื่อมีการกล่าวว่าอัลกอริทึมนั้นถูกต้องตามข้อกำหนด แต่ปัญหาคือการได้สเปค "ที่เหมาะสม" ไม่ใช่งานที่ไม่สำคัญและไม่มีวิธีการที่ถูกต้อง 100% (เท่าที่ฉันรู้) เพื่อให้ได้สิ่งที่ถูกต้องมันเป็นเพียงการประมาณดังนั้นถ้าเราจะ ใช้เพรดิเคตเป็นสเปคเพียงเพราะมัน "ดูเหมือน" เหมือน "หนึ่ง" ทำไมไม่ลองใช้โปรแกรมให้ถูกต้องเพียงเพราะมัน "ดู" ถูกต้อง?

6
เทคนิคการตรวจสอบโปรแกรมสามารถป้องกันข้อบกพร่องของประเภทของ Heartbleed ไม่ให้เกิดขึ้นได้หรือไม่?
ในเรื่องของ Heartbleed bug บรูซชไนเออร์เขียน Crypto-Gram เมื่อวันที่ 15 เมษายนว่า '' ภัยพิบัติ 'เป็นคำที่ถูกต้อง ในระดับ 1 ถึง 10 นี่คือ 11 ' ฉันอ่านเมื่อหลายปีก่อนว่าเคอร์เนลของระบบปฏิบัติการบางระบบได้รับการตรวจสอบอย่างเข้มงวดด้วยระบบตรวจสอบโปรแกรมที่ทันสมัย ด้วยเหตุนี้จึงสามารถป้องกันไม่ให้เกิดข้อผิดพลาดในประเภทของ Heartbleed ผ่านการประยุกต์ใช้เทคนิคการตรวจสอบโปรแกรมในวันนี้หรือไม่จริงหรือแม้กระทั่งเป็นไปไม่ได้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.