คำหลัก (การเขียนโปรแกรม)

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

ในหลายภาษาที่มีภาวะแวดล้อมคล้ายกัน อย่างเช่นภาษาซีกับภาษาซีพลัสพลัส คำหลักถือว่าเป็นคำสงวนที่ระบุรูปแบบวากยสัมพันธ์ คำต่าง ๆ ใช้สำหรับโครงสร้างการควบคุมการทำงานของโปรแกรม ตัวอย่างเช่น if, then, else เหล่านี้เป็นคำหลัก และในภาษาเช่นนี้ คำหลักไม่สามารถนำมาใช้ตั้งชื่อตัวแปรหรือฟังก์ชันได้ แต่ในทางตรงข้าม มีบางภาษาอย่างเช่นโพสต์สคริปต์เปิดเสรีต่อแนวคิดดังกล่าว ซึ่งอนุญาตให้คำหลักอันเป็นแกนของภาษา สามารถถูกนิยามขึ้นใหม่เพื่อจุดประสงค์เฉพาะอย่าง

ในภาษาคอมมอนลิสป์ คำว่า "คำหลัก" ถือเป็นสัญลักษณ์หรือตัวระบุชนิดพิเศษ ในขณะที่สัญลักษณ์ปกติใช้เป็นตัวแปรหรือฟังก์ชัน คำหลักไม่เหมือนสัญลักษณ์อื่นตรงที่สามารถโควตตัวเองได้ และสามารถประเมินค่าของตัวเองได้ คำหลักปกติใช้กำกับชื่อให้อาร์กิวเมนต์ในฟังก์ชัน และใช้เป็นตัวแทนค่าเชิงสัญลักษณ์

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

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

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