جدول کنترل
جدول کنترل به دسته‌ای از جداول گفته می‌شود که اطلاعات لازم برای کنترل جریان برنامه یا بخشی از این اطلاعات را در خود ذخیره کرده‌است. اطلاعات این جدول جزء اطلاعات سطح بالای سیستم تعریف می‌شود و معمولاً فقط برنامه‌نویس متخصص یا مدیر سیستم دسترسی تغییر در ساختار آن را دارد. جدول کنترل معمولاً به صورت جدول نشان داده می‌شود زیرا دیدن اطلاعات در جدول آسانتر است و ساختار دو بعدی آن مناسب نشان دادن رابطه اطلاعات است، اما جدول کنترل محدود به فقط جدول نیست می‌توان جدول را با استفاده از ماشین حالات متناهی یا ماشین حالات UML نشان داد. در جدول‌های کنترل ساختار مشابه با ساختار شرطی و صدا زدن تابع وجود دارد و با استفاده از این جدول می‌توان از تکرار ساختارهای تکراری جلوگیری کرد. جدول کنترل می‌تواند یک بعدی، دو بعدی یا چند بعدی باشد. اندازه جدول می‌تواند ثابت یا متغیر باشد. همچنین این امکان وجود دارد که بتوان جدول را برای دستگاه‌های متعدد ساخت به این صورت که الگوریتم در جدول کنترل قرار بگیرد و برای هر دستگاه متناسب با آن دستگاه مفسر مناسب ساخته شود. برای ساخت این جدول می‌توان از روش‌های مختلفی مانند درهم‌سازی یا آدرس‌دهی مستقیم استفاده کرد و برای برنامه جدول می‌توان از هر زبانی از جمله زبان‌های سطح بالا نیز استفاده کرد. می‌توان جدول را روی حافظه اصلی یا حافظه‌های جانبی ذخیره کرد ولی مکان جدول برای اجرای مفسر روی آن باید در کل زمان اجرای برنامه ثابت باشد. برای رسیدن به سرعت مناسب جدول کنترل باید در حافظه اصلی ذخیره شود. از این جدول برای تصمیم‌گیری سریع استفاده می‌کنند که سرعت اجرا را بسیار بالا می‌برد ولی نیاز به حافظه زیاد دارد و ساختارهای پیچیده را نمی‌توان با استفاده از آن تفسیر کرد.
معمولاً جدول‌های ساخته‌شده برای تفسیر زبان‌ها نیاز به مهارت زیادی دارند و قابل استفاده در سیستم‌های مختلف نیستند و برای یک سیستم خاص طراحی می‌شوند، اما در صورت ساخته شدن جدول کنترل کوچک سرعت اجرای برنامه می‌تواند بسیار بهتر شود.
جدول اسکی یک نمونه از جدول کنترل یک بعدی است، این جدول اطلاعات خام عددی را به نمادها و کاراکترها تبدیل می‌کند. همچنین جدول شاخه‌ای که کد زبان ماشین و شاخه‌ها در آن نوشته می‌شود یک نمونه از جدول کنترل یک بعدی است.
از جدول‌های کنترل چند بعدی می‌توان برای پیاده‌سازی درخت‌های تصمیم و تصمیم‌های چند مرحله‌ای استفاده کرد.
جداول کنترل کاربردهای متعددی دارند، یک کاربرد اصلی آن‌هادر طراحی پردازنده‌ها و مفسرهاست، پردازنده‌ها و مفسرها می‌توانند از جداول کنترل برای مدیریت برنامه و کنترل جریان برنامه استفاده کنند. به طراحی پردازنده‌ها و مفسرها از این طریق طراحی با استفاده از جدول می‌گویند.
در موارد دیگر می‌توان از جدول کنترل برای پیاده‌سازی زبان‌های مبتنی بر ماشین‌های حالت متناهی و پیاده‌سازی درخت‌های تصمیم‌گیری استفاده کرد. از جدول کنترل برای ساختن جدول جستجو نیز استفاده می‌شود.
صفحات گسترده که برای ذخیره اطلاعات استفاده می‌شوند نیز می‌توانند یک نمونه از جدول کنترل باشند.
می‌توان ساختار switch که در زبان‌های برنامه‌نویسی متعددی استفاده می‌شود را با استفاده از جدول جستجو که یک مثال از جدول کنترل است ساخت. مثلاً اگر برنامه بخواهد یک حرف ورودی از کنسول بخواند و بر حسب آن تصمیم بگیرد چه عملی انجام بدهد جدول زیر می‌تواند برای انجام این کار کمک کند: CT1
یک مثال دیگر از کاربرد این زبان ماشین IBM/360 است. این ماشین ۱۶MB حافظه قابل آدرس‌دهی دارد و برای بررسی کردن یک کاراکتر ۲۵۶ حالت مختلف وجود دارد که با استفاده از جدول کنترل بررسی کاراکترها در ۲۶۵ خط کد قابل انجام است اما با استفاده از دستورهای مقایسه و شاخه شاخه کردن نیاز به ۵۱۲ خط کد دارد که با توجه به حجم کم حافظه در این ماشین روش اول بسیار بهتر است.
. default action … none of the values in table match, do something else . alternatively be in-line code) . instruction(s) to add . instruction(s) to subtract . etc..
از مزایای جدول کنترل می‌توان به تمیز بودن و واضح بودن برنامه، قابلیت پیاده‌سازی روی دستگاه‌های متفاوت، انعطاف‌پذیری زیاد، استفاده مجدد و بهینه از ساختارهای تکراری، قابلیت گسترش، قابلیت فشرده سازی و میزان حافظه مورد نیاز کمتر اشاره کرد. اما در کنار این مزایا این جدول‌ها برخی معایب نیز دارند از جمله این که طراحی جدول‌ها بسیار سخت و وقت‌گیر است و نیاز به مهارت زیادی دارد، برخی تغییرات کوچک برنامه می‌تواند باعث ایجاد تغییرات عمده در ساختار جدول شود، همچنین همه ساختارهای پیچیده قابل پیاده‌سازی با استفاده از جدول کنترل نیستند.