فرا برنامهنویسی
From Wikipedia, the free encyclopedia
فرا برنامهنویسی (به انگلیسی: Metaprogramming)، یک تکنیک برنامهنویسی است که در آن برنامههای رایانه ای میتوانند سایر برنامهها را به عنوان داده خود بپذیرند. این بدان معناست که یک برنامه میتواند برای خواندن، تولید، تحلیل یا تبدیل برنامههای دیگر و حتی اصلاح خود در حین اجرا طراحی شود. در بعضی موارد، این به برنامه نویسان اجازه میدهد تا تعداد خطوط کد را برای بیان راه حل به حداقل برسانند، به نوبه خود زمان توسعه را کاهش میدهد. این برنامه همچنین با انعطافپذیری بیشتر به برنامهها امکان میدهد تا بهطور مؤثری با شرایط جدید و بدون جبران مجدد رفتار کنند.[1][2]
فرابرنامه نویسی میتواند برای جابجایی محاسبات از زمان اجرا به زمان کامپایل، تولید کد با استفاده از محاسبات زمان کامپایل و فعال کردن کد اصلاح شده خود استفاده شود. زبانی که در آن فرابرنامه نوشته شدهاست، فرازبان است. به زبان برنامههایی که دستکاری میشوند، زبان برنامهنویسی ویژگی گرا گفته میشود. توانایی یک زبان برنامهنویسی برای فرازبان بودن، خود بازتاب یا «انعطافپذیری» نامیده میشود. بازتاب یکی از ویژگیهای ارزشمند زبان برای تسهیل فرابرنامه نویسی است.
فرا برنامهنویسی در دهه ۱۹۷۰ و ۱۹۸۰ با استفاده از زبانهای پردازش لیست مانند LISP رایج شد. دستگاههای سختافزاری LISP در دهه ۱۹۸۰ محبوب بودند و برنامههایی را ایجاد میکردند که میتوانند کد را پردازش کنند. آنها اغلب برای برنامههای هوش مصنوعی استفاده میشدند
فرابرنامه نویسی به توسعه دهندگان امکان میدهد برنامههایی را بنویسند و کدی را بسازند که در الگوی برنامهنویسی عمومی قرار دارد. داشتن زبان برنامهنویسی به عنوان یک نوع داده درجه یک (مانند Lisp , Prolog , SNOBOL یا Rebol) نیز بسیار مفید است. این به عنوان زبان پردازنده خود شناخته شدهاست. برنامهنویسی عمومی با اجازه دادن به شخصی برای نوشتن کد بدون نگرانی در تعیین انواع دادهها، امکاناتی برای فرابرنامه نویسی را در یک زبان ممکن میکند زیرا در هنگام استفاده میتوان آنها را به عنوان پارامتر فرض کرد.