ความผิดพลาดทางวากยสัมพันธ์

จากวิกิพีเดีย สารานุกรมเสรี

ในวิทยาการคอมพิวเตอร์ ความผิดพลาดทางวากยสัมพันธ์ คือความผิดพลาดเชิงวากยสัมพันธ์ของโค้ดที่เขียนในภาษาโปรแกรมใด ๆ หรืออาจกล่าวว่าเป็นความผิดพลาดในการเขียนลำดับของอักขระและสัญลักษณ์ภายใต้กฎของภาษาโปรแกรมนั้น

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

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

ตัวอย่างโค้ดภาษาซีพลัสพลัส (ตัวอย่างของภาษาเชิงคอมไพล์) ที่มีความผิดพลาดทางวากยสัมพันธ์ เช่น

# include <cstdio>
 
int main(){
    int a = (2 + 5;
    return 0;
}

เมื่อคอมไพล์ จะมีการแจ้งข้อผิดพลาดจากคอมไพเลอร์ว่า

xyz.cpp: In function ‘int main()’:
xyz.cpp:4:19: error: expected ‘)’ before ‘;’ token

ซึ่งหมายความว่าในบรรทัดที่ 4 มีการจับคู่วงเล็บเปิดและวงเล็บปิดไม่ถูกต้อง