اسامی مستعار در کجا استفاده میشود؟
5408558#6
نوع دیگری از نام مستعار می تواند توسط زبان هایی که از چندین نام برای اشاره به یک موقعیت حافظه استفاده می کند رخ دهد (مثلا با استفاده از اشاره‌گر ها). این مثال از الگوریتم جابجایی XOR در زبان C را که یک تابع است ببینید؛ فرض می کند که اشاره‌گر هایی که به تابع ورودی داده شده است، مجزا هستند، اما اگر آن ها برابر باشند یا مستعار یکدیگر باشند،‌ عملکرد تابع شکست می خورد. این یک مشکل متداول در تپابعی است که اشاره‌گر ها را به عنوان ورودی قبول می کنند و باید میزان تحمل آن ها در برابر نام مستعار به دقت مستند شود،‌به ویژه برای توابعی که عملیات پیچیده ای را روی مناطق حافظه ارسال شده به آنها انجام می دهند.
نام مستعار (علوم رایانه)
5408558#0
در رایانش ، نام مستعار وضعیتی را توصیف می کند که در آن می توان از طریق نام های مختلف در برنامه، به یک داده در حافظه دسترسی پیدا کرد. بنابراین، تغییر داده از طریق یک نام به طور ضمنی مقدار مربوط به همه نام های دیگر را نیز اصلاح می کند، که این موضوع ممکن است موزد انتظار برنامه نویس نباشید. در نتیجه، نام مستعار درک، تحلیل و بهینه سازی برنامه ها را دشوار می کند. تحلیل مستعار فرایندی است که قصد دارد اطلاعات کارآمدی را برای درک نام های مستعار در برنامه ها را بدست بیاورد.
نام مستعار (علوم رایانه)
4334878#7
تحلیل مستعار مبتنی بر جریان را بر خلاف تحلیل مستعار مبتنی بر نوع می‌توان در برنامه‌های یک زبان با ارجاعات و تغییر نوع استفاده کرد. این نوع از تحلیل را می‌توان به جای تحلیل مبتنی بر نوع مکمل استفاده کرد. در این تحلیل کلاس‌های مستعار برای هر تخصیص از حافظه و برای هر متغیر محلی و سراسری که آدرس آن استفاده می‌شود، ایجاد می‌شود. ارجاعات به حافظه ممکن است به بیش از یک مقدار در طول زمان اشاره کنن و در نتیجه در بیش از یک کلاس مستعار باشند و این بدان معناست که هر تخصیص حافظه یک مجموعه از کلاس‌ها به جای یک کلاس مستعار دارد.
تحلیل مستعار
182492#1
کاربرد نام مستعار در سازمان‌های سیاسی و نظامی که فعالیت مخفی دارند نیز رایج است. نام مستعار را بسته به شغل صاحب آن گاه نام قلمی (برای نویسندگان) یا نام هنری (برای هنرمندان و بازیگران) یا تخلص (برای شاعران) نیز می‌گویند.
نام مستعار
5408558#14
اصطلاح "نام مستعار" همچنین برای توصیف وضعیتی استفاده می شود که به دلیل انتخاب نوعی طراحی سخت افزار یا خرابی سخت افزار، از یک یا چند بیت آدرس موجود در فرآیند انتخاب حافظه استفاده نشود. اگر تعداد بیت آدرس بیش از آنچه برای پشتیبانی از دستگاه (های) حافظه نصب شده لازم است وجود داشته باشد، این یک تصمیم طراحی است. در صورت خرابی، ممکن است یک یا چند بیت آدرس با هم کوتاه شوند، یا مجبور شوند ولتاژ زمین (0 منطقی) یا ولتاژ تغذیه (1 منطقی) را بگیرند.برای این مثال ، با فرض یک طراحی حافظه با ۸ تایی که فقط به ۳ خط آدرس (یا بیت) نیاز دارد، بیت های آدرس (با نام های A0 تا A2) رمز گشایی می شوند تا مکان های حافظه منحصر به فرد را به صورت زیر و به صورت استاندارد شمارنده دودویی انتخاب کنند:
نام مستعار (علوم رایانه)
5408558#1
به عنوان مثال، بیشتر نسخه های زبان C بررسی محدوده ی آرایه را انجام نمی دهند. در نتیجه، فرد می تواند با سوءاستفاده از این ویژگی پیاده سازی کامپایلر و قراداد های زبان اسمبلی مربوط به معماری یک کامپیوتر، با نوشتن در بیرون محدوده ی یک آرایه (که نوعی سرریزی بافر است) به آثار استفاده از نام مستعار برسد. بر اساس مشخصات زبان C، این کار منجر به یک رفتار نامشخص می شود؛ هر چند برخی از پیاده سازی های زبان C آثار استفاده از نام مستعار را که در اینجا توضیح داده شد نشان می دهند.
نام مستعار (علوم رایانه)
4334878#0
تحلیل مستعار مجموعه‌ای از روش‌هایی است که تعیین می‌کند که آیا دو اشاره گر به شیء یکسانی در حافظه اشاره می‌کنند یا نه. الگوریتم‌های مختلفی برای تحلیل مستعار و راه‌های زیادی برای دسته‌بندی آن‌ها وجود دارد که عبارت است از: الگوریتم غیرحساس به جریان، الگوریتم حساس به متن و الگوریتم غیر حساس به متن، الگوریتم حساس به میدان و الگوریتم غیر حساس به میدان، مبتنی بر متحدسازی و مبتنی بر زیرمجموعه و غیره. در صورتی که دو اشاره‌گر به یک مکان اشاره کنند به آن‌ها مستعار می‌گویند. در نتیجه هر دو متغیری که می‌توانند مقادیرشان را از دو مقدار رسمی مجزا بگیرند نیز مستعار خواهند بود. در ابتدا تحلیل‌گرهای مستعار به یک جستار با کلماتی مثل: must, may و no جواب می‌دادند که نشان می‌داد که دو اشاره‌گر همیشه به یک شیء یکسان اشاره می‌کنند یا نه. وجود متغیرهای مستعار عملیات بهینه‌سازی را سخت‌تر می‌کنند زیرا نمی‌توانیم تشخیص دهیم که این کدام متغیر تغییر کرده‌است.
تحلیل مستعار
5408558#13
برای فعال کردن چنین بهینه سازی هایی به روشی قابل پیش بینی، استاندارد ISO برای زبان برنامه نویسی C (از جمله نسخه جدیدتر C99، نگاه کنید به بخش ۶.۵ ، بند ۷) مخشص می کند که دسترسی به یک مکان از حافظه با استفاده از نشانگرهایی با نوع های متفاوت ممنوع است. بنابراین یک کامپایلر ممکن است فرض کند که چنین اشاره گرهایی نام مستعار نیستند. این قانون ، که به عنوان قانون نام مستعار سختگیرانه شناخته می شود، گاهی اوقات افزایش چشمگیر عملکرد را امکان پذیر می کند، اما معلوم شده است که برخی از کدهای معتبر را خراب می کند. چندین پروژه نرم افزاری عمداً این بخش از استاندارد C99 را نقض می کنند. به عنوان مثال، Python 2.x این کار را برای پیاده سازی شمارش مرجع انجام داد، و برای فعال کردن این بهینه سازی نیاز به تغییراتی در ساختارهای اصلی شی در پایتون ۳ داشت. هسته لینوکس این کار را انجام می دهد زیرا نام مستعار سختگیرانه باعث ایجاد مشکل با بهینه سازی کد درون خطی می شود. در چنین مواردی ، هنگامی که برنامه با gcc کامپایل می شود، برای جلوگیری از بهینه سازی های ناخواسته که می توانند کدهای غیر منتظره ای ایجاد کنند، از گزینه codice_12 استفاده می شود.
نام مستعار (علوم رایانه)
4334878#6
اگر زبانی که کامپایل می‌شود از نظر نوع امن باشد، بررسی‌کننده نوع(type checker) درست کار می‌کند و برنامه قادر به ایجاد اشاره گرهای اشاره‌کننده به متغیرهای محلی نیست. حال بهینه‌سازی‌های مفیدی می‌توان انجام داد. حالت‌های مختلفی وجود دارد که می‌دانیم دو محل از حافظه باید در کلاس‌های مستعار مختلفی باشند: وقتی تحلیل مستعار برای برنامه اجرا می‌شود هر عمل بارگذاری و ذخیره در حافظه باید با کلاسش برچسب‌گذاری شود. آنگاه اگر محل‌های formula_1 و formula_2 از حافظه را با کلاس‌های formula_3 و formula_4 در نظر بگیریم اگر formula_5 آنگاه formula_1 و formula_2 با هم may-alias خواهند بود و اگر formula_8 مستعار یکدیگر نخواهند بود.
تحلیل مستعار
2563992#0
Ě، ě نویسه‌واره‌ای لاتین است، برساخته از یک E با هفتکی برفراز آن. از این نویسه در الفباهای چکی و سوربی استفاده می‌شود. این نویسه هیچگاه در آغاز واژه نمی‌آید. حرف Ě یکی از سی حرف در دبیره پارسی لاتین است و برای نمایش (حرف عین ساکن) به کار می‌رود. برای مثال واژه‌ی معلوم، به شکل Maělum نوشته می‌شود.Wikipedia contributors, "Ě," Wikipedia, The Free Encyclopedia, http://en.wikipedia.org/w/index.php?title=%C4%9A&oldid=607668727 (accessed July 16, 2014).
Ě