ตารางสาขาเป็นวิธีการถ่ายโอนการควบคุมโปรแกรมอย่างมีประสิทธิภาพจากส่วนหนึ่งของโปรแกรมไปยังอีกส่วนหนึ่งหรือไปยังโปรแกรมที่สองที่ถูกโหลดแบบไดนามิกโดยการส่งสาขาของคำสั่งหรือโดยการใช้คำสั่งเปลี่ยน วิธีนี้บางครั้งเรียกว่าตารางกระโดดอาศัยชุดของสถานการณ์หรือเงื่อนไขในการดำเนินการกระโดดเพื่อดำเนินการตามขั้นตอนตามคำสั่งเปลี่ยนจากคอมไพเลอร์ C + ข้อได้เปรียบหลักบางประการของตารางสาขาคือโครงสร้างโค้ดขนาดกะทัดรัดและความต้องการทดสอบโค้ดส่งคืนลดลงเมื่อพิจารณาโฟลว์โปรแกรม
ในปี 1980 มีการใช้ตารางสาขากันอย่างแพร่หลายในการเขียนโปรแกรมภาษาแอสเซมบลี พวกเขายังคงใช้ในการเขียนโปรแกรมการประกอบสำหรับระบบฝังตัวและการพัฒนาระบบปฏิบัติการ ตั้งแต่ปี 1990 ภาษาโปรแกรมคอมไพเลอร์ได้ใช้ประโยชน์จากการทำงานของตารางสาขา
ตารางสาขาประกอบด้วยรายการคำสั่งที่ไม่มีเงื่อนไขที่กำหนดอินพุตปิดสาขาไปยังปลายทางอื่น ฮาร์ดแวร์คอมพิวเตอร์ส่วนใหญ่สามารถดำเนินการตามคำแนะนำเหล่านี้ได้อย่างมีประสิทธิภาพ ในบางครั้งการชดเชยระยะทาง - ปลายทางสามารถเพิ่มลงในตัวนับโปรแกรมซึ่งสามารถชี้ไปที่ชุดคำสั่งสาขาหรือข้ามระหว่างชุดคำสั่งสาขาได้ สิ่งที่จำเป็นในการใช้ตารางสาขาคือการตรวจสอบความถูกต้องของรหัสอินพุตการแปลงข้อมูลให้เป็นออฟเซ็ตและการคูณข้อมูลเป็นความยาวของคำสั่งที่กำหนด
การโปรแกรมแบบฝังใช้ตารางสาขาเนื่องจากหน่วยความจำมีประสิทธิภาพมากกว่าการใช้รหัสเครื่องหรือตัวชี้แบบอาร์เรย์ ระบบควบคุมในตัวจำเป็นต้องมีการประหยัดหน่วยความจำและแม้ว่ามันอาจมีค่าใช้จ่ายเล็กน้อยในระหว่างการเข้าถึงตารางสาขาการเรียกใช้ฟังก์ชันเมธอดเสมือนใด ๆ จะมีค่าใช้จ่ายจำนวนเท่ากันสำหรับการทำงานที่มีเสถียรภาพ การเข้าถึง CPU ที่ จำกัด และการประหยัดหน่วยความจำในระบบฝังตัวจำเป็นต้องมีตารางสาขาสำหรับชุดฟังก์ชันคงที่
ภาษาโปรแกรมคอมไพเลอร์สร้างตารางสาขาของตนเองเมื่อต้องการโดยใช้คีย์ค้นหาในการปรับแต่งคอมไพเลอร์ โปรแกรมเมอร์บางคนเลือกที่จะช่วยเหลือคอมไพเลอร์ด้วยการสร้างตารางสาขาตามบริบทโดยการให้พารามิเตอร์เงื่อนไขสองขั้นตอนคอมไพเลอร์ที่จะค้นหาคีย์ ในปีที่ผ่านมาของการรวบรวมโปรแกรมการใช้ตารางสาขาเป็นคำสั่ง "GoTo" ในภาษาคอมไพเลอร์ Fortran ตารางสาขายังคงใช้เพื่อนำการเปลี่ยนแปลงในโฟลว์โปรแกรมในภาษาคอมไพเลอร์หรือเป็นจุดเริ่มต้นสำหรับลำดับการสอนซ้ำ


