You can edit almost every page by Creating an account. Otherwise, see the FAQ.

بلندکردن لامبدا

از EverybodyWiki Bios & Wiki
پرش به:ناوبری، جستجو

خطای اسکریپتی: پودمان «AfC submission catcheck» وجود ندارد.

بلند کردن لامبدا یک فرا فرآیند است که یک برنامه کامپیوتری را به گونه‌ای بازسازی می‌کند که توابع مستقل از یکدیگر در اسکپ گلوبال تعریف شوند. یک "بالابر" فردی یک تابع محلی را به یک تابع گلوبال تبدیل می کند. این یک فرآیند دو مرحله‌ای است که شامل موارد زیر است:

  • حذف متغیرهای آزاد در تابع با افزودن پارامترها.
  • انتقال توابع از یک اسکپ محلی به اسکپ گلوبال تر یا اسکپ گلوبال.

مفهوم "لیفت لامبدا" اولین بار توسط توماس جانسون در سال 1982 معرفی شد و از نظر تاریخی به عنوان مکانیزمی برای پیاده سازی زبان های برنامه نویسی تابعی در نظر گرفته شد. در برخی از کامپایلرهای همراه با تکنیک های دیگر استفاده می‌شود.

بلند کردن لامبدا با تبدیل بستار یکسان نیست زیرا نیاز دارد تا تمام نقاط فراخوانی تنظیم شود (افزودن آرگومان‌های اضافی به فراخوانی‌ها) و بستاری را معرفی نمی‌کند.

این تکنیک ممکن است بر روی توابع جداگانه، در بازساخت کد ، برای قابل استفاده کردن یک تابع خارج از اسکپی که در آن نوشته شده است، استفاده شود. بلندکردن لامبدا نیز ممکن است تکرار شود تا برنامه را تغییر دهد. بالابرهای مکرر ممکن است برای تبدیل یک برنامه نوشته شده در حساب لامبدا به مجموعه ای از توابع بازگشتی ، بدون لامبدا استفاده شوند. این کار معادل بودن برنامه های نوشته شده در حساب لامبدا و برنامه های نوشته شده به عنوان توابع را نشان می دهد. [۱] اگرچه، این‌ کار درستی حساب لامبدا را برای نتیجه گیری نشان نمی دهد، زیرا کاهش ارجاع مورد استفاده در بلند کردن لامبدا مرحله ای است که مشکلات اصلی را وارد حساب لامبدا می کند، زیرا مقدار را از متغیر حذف می کند، بدون اینکه ابتدا بررسی شود که فقط یک عدد وجود دارد. مقداری که شرایط متغیر را برآورده می کند ( به پارادوکس کری مراجعه کنید).

بلند کردن لامبدا در زمان پردازش برای کامپایلر هزینه محاسباتی بالایی دارد. اجرای کارآمد لیفت لامبدا از مرتبه زمانی در زمان پردازش برای کامپایلر می‌باشد. [۲]

منابع[ویرایش]

رده:کامپایلرسازی رده:حساب لامبدا



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.

  1. خطای لوآ در پودمان:Citation/CS1/en/Identifiers در خط 47: attempt to index field 'wikibase' (a nil value).
  2. خطای لوآ در پودمان:Citation/CS1/en/Identifiers در خط 47: attempt to index field 'wikibase' (a nil value).


Read or create/edit this page in another language[ویرایش]