ความผิดพลาดทางตรรกะ

จากวิกิพีเดีย สารานุกรมเสรี
(เปลี่ยนทางจาก Semantic error)

ในวิทยาการคอมพิวเตอร์ ความผิดพลาดทางตรรกะ (อังกฤษ: logic error หรือ semantic error) เป็นบั๊กในโปรแกรมที่ทำให้โปรแกรมทำงานผิดพลาด ส่งผลให้ได้ผลลัพธ์ที่ผิดพลาด หรือผลลัพธ์อาจจะถูกต้องแต่มีการใช้ทรัพยากรเกินความจำเป็น[ต้องการอ้างอิง] หรืออาจเกิดเหตุการณ์ที่เลวร้ายกว่า เช่นโปรแกรมเกิดข้อผิดพลาดจนแครชและจบการทำงานลงทันที

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

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

สาเหตุโดยทั่วไป[แก้]

สาเหตุโดยทั่วไปเกิดจากการที่ใช้คำสั่งผิดพลาด หรือเข้าใจขั้นตอนวิธีผิด หรือกระทั่งการเลือกขั้นตอนวิธีที่ผิดพลาด

การดีบั๊ก[แก้]

ตัวอย่าง[แก้]

ดูเพิ่ม[แก้]