تجزیه و تحلیل جریان داده

دانشنامه عمومی

تجزیه و تحلیل جریان داده یکی از روش هایی است که با استفاده از آن می توان اطلاعات مربوط به داده هایی که در نقاط مختلف یک برنامهٔ رایانه ای محاسبه می شوند را فراهم کرد. گراف روند کنترلی برای تعیین قسمت های برنامه که به تعریف یک متغیر یا مقداردهی یک متغیر منجر شده است، استفاده می شود. تحلیل جریان داده اطلاعاتی را تولید می کند که معمولاً کامپایلرها از آن برای بهینه سازی برنامه استفاده می کنند. [ ۱] [ ۲]
در یک گراف کنترل جریان هر گره در گراف یک بلوک پایه را نشان می دهد. بلوک پایه مجموعه ای از دستورالعمل های متوالی است به طوری که هیچ دستور پرشی به این خطوط به جز خط اول وجود نداشته باشد و به جز خط آخر هیچ کدام ازین دستورها پرشی نباشند؛ در واقع این مجموعه دستورالعمل پشت سر هم و به ترتیب اجرا می شوند. [ ۳]
یک راه ساده برای پیاده سازی تجزیه و تحلیل جریان داده این است که معادله جریان داده را برای هر گره از گراف روند کنترلی تنظیم کنیم و سپس به صورت محلی خروجی هر گره را از ورودی های آن محاسبه کنیم و این کار را تا زمانی که سیستم به نقطه ثابتی برسد تکرار کنیم.
تجزیه و تحلیل جریان داده فرایند تولید اطلاعات دربارهٔ شیوه به کار رفتن متغیرهای تعریف شده در برنامه است و تلاش می کند اطلاعات خاصی را در هر نقطه از اجرا به دست بیاورد. معمولاً به دست آوردن این اطلاعات در محدودهٔ بلوک های پایه کفایت می کند؛ زیرا با استفاده از آن به راحتی می توان اطلاعات نقاط مختلف بلوک پایه را به دست آورد. در تحلیل جریان رو به جلو، حالت خروجی یک بلوک تابعی از حالت ورودی آن بلوک است. این تابع ترکیب اثرات عبارات موجود در بلوک می باشد. حالت ورودی یک بلوک تابعی از حالت های خروجی اجداد آن بلوک می باشد. در نتیجه مجموعه ای از معادلات جریان داده به دست می آید: برای هر بلاک b:
o u t b = t r a n s b ( i n b )
i n b = j o i n p ∈ p r e d b ( o u t p )
در این جا t r a n s b تابع انتقال بلوک b می باشد. این تابع روی حالت ورودی i n b کار می کند و حالت خروجی o u t b را نتیجه می دهد و j o i n عملگر پیوند است که حالت های خروجی اجداد بلوک b را ترکیب کرده و حالت ورودی b را نتیجه می دهد.
بعد از حل این مجموعه از معادلات، می توان از حالت های ورودی و خروجی بلوک ها برای استخراج ویژگی های برنامه در محدوده بلوک های پایه استفاده کرد. با اعمال کردن تابع انتقال هر عبارت به صورت جداگانه، می توان اطلاعات مطلوب را در هر نقطه از بلوک پایه به دست آورد.
عکس تجزیه و تحلیل جریان داده
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلف

پیشنهاد کاربران

بپرس