بلندکردن لامبدا
برخی از ویرایشها در این مقاله در چارچوب یک تکلیف دانشگاهی انجام شدهاند. این تکالیف توسط ؟ برای دانشجویان ؟ تعیین شدهاند. |
این مقاله، بلندکردن لامبدا، اخیراً بهواسطهٔ فرایند ایجاد مقاله ایجاد شدهاست. بازبینیکننده در حال بستن درخواست است و این برچسب احتمالاً بهزودی برداشته میشود.
ابزارهای بازبینی: پیشبارگیری بحث اعلان به نگارنده |
خطای اسکریپتی: پودمان «AfC submission catcheck» وجود ندارد.
این مقاله یا بخشی از آن تحت نگارش، توسعه یا بازنویسی گسترده قرار دارد. از کمک شما در ویرایش و نگارش مقاله استقبال میکنیم؛ خوش آمدید. اگر این مقاله یا بخشی از آن چندین روز است که ویرایش نشده لطفاً این الگو را بردارید. اگر شما ویرایشگری هستید که این الگو را افزودهاید لطفاً مطمئن شوید که در زمان ویرایش یک بخش، این الگو با الگوی {{ویرایش}} جایگزین میشود. این مقاله آخرین بار در ۲ سال پیش توسط WikiMasterBot2 (بحث | مشارکتها) ویرایش شده است. (پاکسازی میانگیر) |
بلند کردن لامبدا یک فرا فرآیند است که یک برنامه کامپیوتری را به گونهای بازسازی میکند که توابع مستقل از یکدیگر در اسکپ گلوبال تعریف شوند. یک "بالابر" فردی یک تابع محلی را به یک تابع گلوبال تبدیل می کند. این یک فرآیند دو مرحلهای است که شامل موارد زیر است:
- حذف متغیرهای آزاد در تابع با افزودن پارامترها.
- انتقال توابع از یک اسکپ محلی به اسکپ گلوبال تر یا اسکپ گلوبال.
مفهوم "لیفت لامبدا" اولین بار توسط توماس جانسون در سال 1982 معرفی شد و از نظر تاریخی به عنوان مکانیزمی برای پیاده سازی زبان های برنامه نویسی تابعی در نظر گرفته شد. در برخی از کامپایلرهای همراه با تکنیک های دیگر استفاده میشود.
بلند کردن لامبدا با تبدیل بستار یکسان نیست زیرا نیاز دارد تا تمام نقاط فراخوانی تنظیم شود (افزودن آرگومانهای اضافی به فراخوانیها) و بستاری را معرفی نمیکند.
این تکنیک ممکن است بر روی توابع جداگانه، در بازساخت کد ، برای قابل استفاده کردن یک تابع خارج از اسکپی که در آن نوشته شده است، استفاده شود. بلندکردن لامبدا نیز ممکن است تکرار شود تا برنامه را تغییر دهد. بالابرهای مکرر ممکن است برای تبدیل یک برنامه نوشته شده در حساب لامبدا به مجموعه ای از توابع بازگشتی ، بدون لامبدا استفاده شوند. این کار معادل بودن برنامه های نوشته شده در حساب لامبدا و برنامه های نوشته شده به عنوان توابع را نشان می دهد. [۱] اگرچه، این کار درستی حساب لامبدا را برای نتیجه گیری نشان نمی دهد، زیرا کاهش ارجاع مورد استفاده در بلند کردن لامبدا مرحله ای است که مشکلات اصلی را وارد حساب لامبدا می کند، زیرا مقدار را از متغیر حذف می کند، بدون اینکه ابتدا بررسی شود که فقط یک عدد وجود دارد. مقداری که شرایط متغیر را برآورده می کند ( به پارادوکس کری مراجعه کنید).
بلند کردن لامبدا در زمان پردازش برای کامپایلر هزینه محاسباتی بالایی دارد. اجرای کارآمد لیفت لامبدا از مرتبه زمانی در زمان پردازش برای کامپایلر میباشد. [۲]
منابع[ویرایش]
- ویکیپدیا انگلیسی : https://en.wikipedia.org/wiki/Lambda_lifting
رده:کامپایلرسازی رده:حساب لامبدا
This article "بلندکردن لامبدا" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:بلندکردن لامبدا. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.