این مطلب در وبسایت ویکیپدیا قرار داده‌شده. شما به عنوان یک ناشر، کدام‌یک از متن‌های زیر را به عنوان خلاصه انتخاب می‌کنید؟

مقاله: فرابرنامه نویسی معمولا به یکی از سه روش انجام می‌شود: اولین رویکرد، در معرض قرار دادن داخلی موتور زمان اجرا در کد برنامه نویسی از طریق برنامه رابط‌های برنامه نویسی (api) مانندil emitter برای. net رویکرد دوم اجرای پویا عباراتی است که حاوی دستورها برنامه نویسی است، که اغلب از رشته‌ها تشکیل شده‌اند، اما می‌تواند از سایر روش‌ها با استفاده از آرگومان یا متن مانند جاوا اسکریپت نیز باشد؛ بنابراین، «برنامه‌ها می‌توانند برنامه بنویسند.» اگرچه هر دو روش می‌توانند به زبان مشابه مورد استفاده قرار گیرند، اما اکثر زبان‌ها به سمت یکی یا دیگری گرایش دارند. رویکرد سوم این است که کاملا از زبان خارج شود. سیستم‌های کلی تبدیل برنامه هدف مانند کامپایلرها، که توصیف‌های زبان را می‌پذیرند و تحولات دلخواه را بر روی آن زبانها انجام می‌دهند، پیاده‌سازی مستقیم فرابرنامه نویسی عمومی هستند. این اجازه می‌دهد تا فرابرنامه نویسی برای هر زبان هدف تقریبا بدون توجه به اینکه آیا آن زبان مقصد دارای توانایی‌های فرابرنامه نویسی است، اعمال شود. می‌توان این را در محل کار با scheme مشاهده کرد و اینکه چگونه می‌توان با استفاده از ساختارهایی که بخشی از خود زبان scheme برای گسترش c بودند، با محدودیت‌هایی که در c قرار دارد، مقابله کرد. یک مثال ساده از یک فرابرنامه، این اسکریپت posix shell است که نمونه‌ای از برنامه نویسی مولد است: این اسکریپت (یا برنامه) یک برنامه ۹۹۳ خط جدید ایجاد می‌کند که اعداد ۱ تا ۹۹۲ را چاپ می‌کند. این تنها تصویری از نحوه استفاده از کد برای نوشتن کد بیشتر است. این کارآمدترین روش برای چاپ لیستی از اعداد نیست. با این وجود، یک برنامه‌نویس می‌تواند این فرابرنامه را در کمتر از یک دقیقه بنویسد و اجرا کند، و دقیقا ۱۰۰۰ خط کد را در همین زمان ایجاد می‌کند. کویین (quine) نوع خاصی از فرابرنامه است که سورس کد خود را به عنوان خروجی تولید می‌کند. کوئین‌ها عموما از نظر بازآفرینی یا نظری مورد توجه هستند. همه فرابرنامه نویسی شامل برنامه نویسی مولد نیست. اگر برنامه‌ها در زمان اجرا قابل تغییر باشند یا اگر بیشتر، تلفیقی در دسترس باشد (مانند c #، forth , frink , groovy , javascript , lisp, elixir, lua, perl, php, python, rebol, ruby, rust, sas, smalltalk و tcl)، پس می‌توان از تکنیک‌هایی برای انجام فرابرنامه نویسی بدون تولید …

متن اول: فرا برنامه‌نویسی (به انگلیسی: metaprogramming)، یک تکنیک برنامه‌نویسی است که در آن برنامه‌های رایانه‌ای می‌توانند سایر برنامه‌ها را به عنوان داده خود بپذیرند. این بدان معناست که یک برنامه می‌تواند برای خواندن، تولید، تحلیل یا تبدیل برنامه‌های دیگر و حتی اصلاح خود در حین اجرا طراحی شود. در بعضی موارد، این به برنامه نویسان اجازه می‌دهد تا تعداد خطوط کد را برای بیان راه‌حل به حداقل برسانند، به نوبه خود زمان توسعه را کاهش می‌دهد. این برنامه همچنین با انعطاف‌پذیری بیشتر به برنامه‌ها امکان می‌دهد تا به‌طور مؤثری با شرایط جدید و بدون جبران مجدد رفتار کنند. زبانی که در آن فرابرنامه نوشته شده‌است، فرازبان است. 
متن دوم: فرا برنامه نویسی
جواب:
متن اول