موضوع مقاله: جدول کنترل | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # جدول کنترل | مقدمه: جدول کنترل به دسته‌ای از جداول گفته می‌شود که اطلاعات لازم برای کنترل جریان برنامه یا بخشی از این اطلاعات را در خود ذخیره کرده‌است. | ## بخش 1: جدول کنترل | اطلاعات این جدول جزء اطلاعات سطح بالای سیستم تعریف می‌شود و معمولاً فقط برنامه‌نویس متخصص یا مدیر سیستم دسترسی تغییر در ساختار آن را دارد. جدول کنترل معمولاً به صورت جدول نشان داده می‌شود زیرا دیدن اطلاعات در جدول آسانتر است و ساختار دو بعدی آن مناسب نشان دادن رابطه اطلاعات است، اما جدول کنترل محدود به فقط جدول نیست می‌توان جدول را با استفاده از ماشین حالات متناهی یا ماشین حالات UML نشان داد. در جدول‌های کنترل ساختار مشابه با ساختار شرطی و صدا زدن تابع وجود دارد و با استفاده از این جدول می‌توان از تکرار ساختارهای تکراری جلوگیری کرد. همچنین این امکان وجود دارد که بتوان جدول را برای دستگاه‌های متعدد ساخت به این صورت که الگوریتم در جدول کنترل قرار بگیرد و برای هر دستگاه متناسب با آن دستگاه مفسر مناسب ساخته شود. برای ساخت این جدول می‌توان از روش‌های مختلفی مانند درهم‌سازی یا آدرس‌دهی مستقیم استفاده کرد و برای برنامه جدول می‌توان از هر زبانی از جمله زبان‌های سطح بالا نیز استفاده کرد. می‌توان جدول را روی حافظه اصلی یا حافظه‌های جانبی ذخیره کرد ولی مکان جدول برای اجرای مفسر روی آن باید در کل زمان اجرای برنامه ثابت باشد. | ## بخش 2: جدول کنترل | از این جدول برای تصمیم‌گیری سریع استفاده می‌کنند که سرعت اجرا را بسیار بالا می‌برد ولی نیاز به حافظه زیاد دارد و ساختارهای پیچیده را نمی‌توان با استفاده از آن تفسیر کرد. معمولاً جدول‌های ساخته‌شده برای تفسیر زبان‌ها نیاز به مهارت زیادی دارند و قابل استفاده در سیستم‌های مختلف نیستند و برای یک سیستم خاص طراحی می‌شوند، اما در صورت ساخته شدن جدول کنترل کوچک سرعت اجرای برنامه می‌تواند بسیار بهتر شود. جدول اسکی یک نمونه از جدول کنترل یک بعدی است، این جدول اطلاعات خام عددی را به نمادها و کاراکترها تبدیل می‌کند. همچنین جدول شاخه‌ای که کد زبان ماشین و شاخه‌ها در آن نوشته می‌شود یک نمونه از جدول کنترل یک بعدی است. از جدول‌های کنترل چند بعدی می‌توان برای پیاده‌سازی درخت‌های تصمیم و تصمیم‌های چند مرحله‌ای استفاده کرد. کاربردها جداول کنترل کاربردهای متعددی دارند، یک کاربرد اصلی آن‌هادر طراحی پردازنده‌ها و مفسرهاست، پردازنده‌ها و مفسرها می‌توانند از جداول کنترل برای مدیریت برنامه و کنترل جریان برنامه استفاده کنند. | ## بخش 3: جدول کنترل | صفحات گسترده که برای ذخیره اطلاعات استفاده می‌شوند نیز می‌توانند یک نمونه از جدول کنترل باشند. مثال‌ها می‌توان ساختار switch که در زبان‌های برنامه‌نویسی متعددی استفاده می‌شود را با استفاده از جدول جستجو که یک مثال از جدول کنترل است ساخت. این ماشین ۱۶MB حافظه قابل آدرس‌دهی دارد و برای بررسی کردن یک کاراکتر ۲۵۶ حالت مختلف وجود دارد که با استفاده از جدول کنترل بررسی کاراکترها در ۲۶۵ خط کد قابل انجام است اما با استفاده از دستورهای مقایسه و شاخه شاخه کردن نیاز به ۵۱۲ خط کد دارد که با توجه به حجم کم حافظه در این ماشین روش اول بسیار بهتر است. مزایا و معایت از مزایای جدول کنترل می‌توان به تمیز بودن و واضح بودن برنامه، قابلیت پیاده‌سازی روی دستگاه‌های متفاوت، انعطاف‌پذیری زیاد، استفاده مجدد و بهینه از ساختارهای تکراری، قابلیت گسترش، قابلیت فشرده سازی و میزان حافظه مورد نیاز کمتر اشاره کرد. | ## جمع‌بندی | اما در کنار این مزایا این جدول‌ها برخی معایب نیز دارند از جمله این که طراحی جدول‌ها بسیار سخت و وقت‌گیر است و نیاز به مهارت زیادی دارد، برخی تغییرات کوچک برنامه می‌تواند باعث ایجاد تغییرات عمده در ساختار جدول شود، همچنین همه ساختارهای پیچیده قابل پیاده‌سازی با استفاده از جدول کنترل نیستند.