stanford-oval/wikipedia huggingface dataset:
پرل
پایگاه داده > پرل ۶

Jon Orwant در کنفرانس ۲۰۰۰ پرل، پرونده‌ای برای یک زبان ابتکاری جدید ساخت. این به تصمیم‌گیری برای شروع کار بر روی طراحی مجدد زبان، به نام پرل ۶. منجر شد. پیشنهادها مربوط به ویژگی‌های جدید زبان از جامعه پرل به‌طور گسترده درخواست شد که بیش از 300 RFC را ارائه می‌داد.
wall چند سال بعد به تشخیص RFCها و ترکیب آن‌ها به یک چارچوب منسجم برای پرل ۶ مشغول شد. او طراحی خود را برای Perl 6 در مجموعه‌ای از اسناد به نام "apocalypses" ارائه کرده‌است که شماره آن مربوط به فصل‌های برنامه‌نویسی پرل می‌باشد. از ژانویه ۲۰۱۱، مشخصات در حال توسعه پرل ۶ در اسناد طراحی به نام Synopses - شماره‌گذاری شده‌است که به Apocalypse مربوط است.
Perl 6 در نظر گرفته نشده که با نسخه‌های قبلی سازگار باشد، اگر چه یک حالت سازگاری وجود خواهد داشت. پرل ۶ و پرل ۵ زبان‌های متمایز با یک قبیله مشترک هستند.
کار پایان‌نامه بردلی م. کوهن تحت نظارت لری وال، امکان استفاده از ماشین مجازی جاوا را به عنوان زمان اجرا برای Perl در نظر گرفت. پایان‌نامه کوهن نشان داد که این رویکرد مشکل ساز است. در سال ۲۰۰۱ تصمیم گرفت که پرل ۶ بر روی ماشین مجازی متقابل زبان Parrot اجرا شود. این بدان معنی است که زبانهای دیگر که با هدف قرار دادن Parrot دسترسی پیدا می‌کنند به CPAN دسترسی پیدا می‌کنند و اجازه می‌دهند سطح پیشرفته زبان را افزایش دهند.
در سال ۲۰۰۵، آدری تانگ پروژه Pugs را ایجاد کرد، اجرای Perl 6 در Haskell. این عمل به عنوان یک پلت فرم آزمون برای زبان پرل ۶ (به غیر از توسعه اجرای واقعی) عمل می‌کند و به طراحان زبان اجازه می‌دهد تا آن‌ها را کشف کند. پروژه Pugs یک انجمن متقابل زبان Perl / Haskell فعال را در اطراف کانال IRC # perl6 freenode ایجاد کرد.
از سال ۲۰۱۲، تعدادی از ویژگی‌های زبان پرل ۶ شباهت به Haskell را نشان می‌دهند.
در سال ۲۰۱۲، Perl 6 توسعه مراکز عمدتاً در حدود دو کامپایلر:
Rakudo Perl 6، یک پیاده‌سازی بر روی ماشین مجازی Parrot و ماشین مجازی جاوا است. توسعه دهندگان همچنین بر روی MoarVM، یک ماشین مجازی مبتنی بر زبان برنامه‌نویسی C به‌طور خاص برای Rakudo کار می‌کنند.
Niecza، که به Runtime Common Language اهمیت می‌دهد.
پایگاه داده > خصوصت‌های پرل ۵

توسعه پرل ۵ همچنان ادامه دارد. پرل ۵٫۱۲٫۰ در آوریل ۲۰۱۰ با برخی از ویژگی‌های جدید تحت تأثیر طراحی Perl 6 و به دنبال آن Perl 5.14.1 (منتشر شد در تاریخ ۱۷ ژوئن ۲۰۱۱)، Perl 5.16.1 منتشر شد(در ماه اوت منتشر شد) و Perl 5.18.0 (منتشر شده در تاریخ ۱۸ مه ۲۰۱۳). نسخه‌های توسعه پرل ۵ به‌طور ماهانه منتشر می‌شوند و انتشارهای عمده یکبار در سال ارائه می‌شوند.
برنامه‌های آینده برای پرل ۵ شامل ساخت زبان اصلی برای گسترش از ماژول‌ها و ارائه یک پروتکل متادیت کوچک کوچک و گسترده در هسته است.
نسبت نسبی جستجوهای اینترنتی برای برنامه‌نویسی Perl نسبت به جستجوهای مشابه برای زبان‌های برنامه‌نویسی دیگر، به‌طور پیوسته از حدود ۱۰ درصد در سال ۲۰۰۵ به حدود ۲ درصد در سال ۲۰۱۱ کاهش یافته‌است و از سال گذشته در حدود ۲ درصد بوده‌است.
پایگاه داده > قابلیت‌ها

یکی از کاربردهای مهم زبان برنامه‌نویسی پرل در نوشتن اکسپلوییت‌ها و کدهای مخرب است. این زبان برنامه‌نویسی پیشینه‌ای قدیمی در یونیکس دارد. اما عمر آن در ویندوز به ۷ سال هم نمی‌رسید. به‌طوری‌که زبان پرل را زبانی جدا نشدنی از یونیکس می‌دانند.
پایگاه داده > قابلیت‌ها > کاربرد پرل

پرل امروزه در زمینه‌های هوش مصنوعی، ژنتیک، نظامی، تحقیقاتی، صنعتی به‌طور گسترده‌ای کاربرد دارد. نوشتن یک بانک اطلاعاتی، صفحه‌گسترده یا یک وب‌سرور شاید با پرل کار عاقلانه‌ای به نظر نرسد، ولی امکانپذیر است.
پایگاه داده > قابلیت‌ها > پرل به عنوان یک زبان چسبنده (Glue Language)

پرل به عنوان یک زبان چسبنده می‌تواند در زبان‌های دیگر مورد استفاده قرار گیرد. به‌طور مثال می‌توان در برنامه‌های چارچوب دات‌نت از پرل برای پردازش متن یا هر چیز دیگری استفاده کرد. این قابلیت تنها به.NET محدود نمی‌شود و پرل را می‌توان در زبان‌های دیگر برنامه‌نویسی بدون در نظر گرفتن پلتفرم ان استفاده کرد.
پایگاه داده > قابلیت‌ها > پرل به عنوان یک زبان کراس پلتفرم (Cross Platform)

نرم‌افزاری که با زبان پرل تحت سیستم‌عامل لینوکس یا مک اواس نوشته شده، روی سیستم‌عامل مایکروسافت ویندوز و یونیکس هم اجرا می‌شود. قابلیت چندسکویی امکان توسعه نرم‌افزار را بر روی هر سیستم‌عاملی فراهم می‌کند.
پایگاه داده > قابلیت‌ها > پرل و CGI

با پا به عرصه گذاشتن CGI به صفحات وب زبان پرل به خاطر قدرت بالا در پردازش متن و تطبیق الگو و کار با عبارت‌ها باقاعده (Regular Expressions)، در جمله زبانهایی قرار گرفت که به‌طور وسیعی برای نوشتن CGI بکار گرفته می‌شود. در اینصورت یک سیستم برنامه‌نویسی پویای تحت وب و با استفاده از تکنولوژی CGI پیاده‌سازی می‌شود.
نکته‌ای که باعث محبوبیت زبان پرل در میان برنامه نویسان شده‌است متن‌باز بودن این زبان می‌باشد.
ساختار زبان > نمونه برنامه

در نمونه‌های قبل تر پرل برای نوشتن در برنامه به صورت زیر عمل می‌شده:
# !/usr/bin/perl
print "Hello world!";
در نمونه‌های جدیدتر پرل که از دستور say پشتیبانی می‌کردند یک روش دستور زیر است:
# !/usr/bin/perl
use 5.01;
say "Hello world!";
برای نوشتن بهتر کد برنامه نیاز به کارهای بیشتری مثل اضافه کردن use strict; و use warnings; به برنامه است:
use strict;
use warnings;

print "Hello World!\n";
این نمونه پیچیده تری از برنامه پرل است که به صورت معکوس ثانیه‌ها را تا محدوده مورد نظر می‌شمارد.
#!/usr/bin/perl
use strict;
use warnings;
use IO::Handle;

my ( $remaining, $total );

$remaining = $total = shift(@ARGV);

STDOUT->autoflush(1);

while ( $remaining ) {
    printf ( "Remaining %s/%s \r", $remaining--, $total );
    sleep 1;
}

print "\n";
مفسر پرل می‌تواند به عنوان اجرای دستورهای یک خطی از طریق خط دستور نیز به کار رود. مثال زیر می‌تواند عبارت "Bob" را در تمام فایلهایی که پسوند "txt." دارند و در پوشه برنامه فعلی قرار گرفته‌اند را به "Robert" تبدیل کند. (در صورت اجرا در محیط مناسب مانند Bash)
$ perl -i.bak -lp -e 's/Bob/Robert/g' *.txt
خواندن بیشتر

یادگیری پرل ششمین نسخه(۲۰۱۱)، او رایل. آشنایی مقدماتی با پرل
لری وال سازنده زبان برنامه نویسی پرل
آغمیون

| آغمیون (آغمیان) | آغمیون (آغمیان) |
| --- | --- |
روستا: روستا
چهارتاقی ساسانی آغمیون سراب: چهارتاقی ساسانی آغمیون سراب
کشور: ایران
استان: آذربایجان شرقی
شهرستان: سراب
بخش: بخش مرکزی
جمعیت: ۱۴۹۳ نفر
آغمیون یکی از روستاهای شهرستان سراب در استان آذربایجان شرقی ایران می‌باشد. آغمیون مرکز دهستان آغمیون در بخش مرکزی شهرستان سراب است.
بر اساس سرشماری سال ۱۳۸۵، این روستا ۱٬۴۹۳ نفر (۳۹۵ خانوار) جمعیت دارد.
ارتفاع آغمیون از سطح دریا ۱٬۸۰۰ متر است.
آلن گریسون

| آلن گریسون | آلن گریسون |
| --- | --- |
Member of the مجلس نمایندگان ایالات متحده آمریکا from Florida's حوزه انتخابیه نهم فلوریدا district: Member of the مجلس نمایندگان ایالات متحده آمریکا from Florida's حوزه انتخابیه نهم فلوریدا district
متصدی: متصدی
آغاز به کار  January 3, 2013: آغاز به کار  January 3, 2013
پس از: گوس بلیرکیس
عضو  مجلس نمایندگان ایالات متحده از Florida حوزهٔ حوزه انتخابیه هشتم فلوریدا: عضو  مجلس نمایندگان ایالات متحده از Florida حوزهٔ حوزه انتخابیه هشتم فلوریدا
دوره مسئولیت January 3, 2009 – January 3, 2011: دوره مسئولیت January 3, 2009 – January 3, 2011
پس از: Ric Keller
پیش از: Daniel Webster
 :  
اطلاعات شخصی: اطلاعات شخصی
زاده: Alan Mark Grayson ۱۳ مارس ۱۹۵۸ ‏(۶۶ سال) برانکس, ایالت نیویورک
حزب سیاسی: حزب دموکرات ایالات متحده آمریکا
همسر(ان): Lolita Grayson
فرزندان: 5
اقامتگاه: اورلندو، فلوریدا
محل تحصیل: دانشگاه هاروارد (B.A., M.P.P, J.D.)
تخصص: Attorney, بازرگان (شغل)
وبگاه: وبسایت کمپین
آلن گریسون (به انگلیسی: Alan Grayson) نمایندهٔ حوزه انتخابیه نهم فلوریدا از حزب دموکرات ایالات متحده آمریکا در مجلس نمایندگان ایالات متحده آمریکا است که برای نخستین‌بار در ۳ ژانویه ۲۰۱۳ میلادی به‌عضویت این مجلس درآمد.
آماندا مورفی

| آماندا مورفی | آماندا مورفی |
| --- | --- |
مورفی در حال قدم زدن هفته مد نیویورک در سال ۲۰۱۳.: مورفی در حال قدم زدن هفته مد نیویورک در سال ۲۰۱۳.
زادهٔ: ۱۶ نوامبر ۱۹۸۶ ‏(۳۸ سال) شیکاگو، ایلینویز، ایالات متحده آمریکا
اطلاعات مدلینگ: اطلاعات مدلینگ
رنگ مو: قهوه‌ای
رنگ چشم: قهوه‌ای
بنگاه: آی‌ام‌جی مادلز (جهانی) Traffic Models (بارسلونا) MP Factor (شیکاگو) Next Model Management (تورنتو)
 :  
آماندا مورفی (به انگلیسی: Amanda Murphy) (زادهٔ ۱۶ نوامبر ۱۹۸۶) مدل، متخصص رادیولوژی و سوارکار اسب آمریکایی است. او بیش‌تر به عنوان مدل پرادا شناخته می‌شود. او در یک لیست اینترنتی به عنوان یکی از ۵۰ مدل برتر صنعت مد شناخته شده‌است. همچنین او دوبار بر روی جلد مجله وگ ایتالیا حضور داشته‌است.
آسمان محبوب

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

نقش‌های اصلی این فیلم را علی مصفا، لیلا حاتمی، فریده سپاه‌منصور و مانی حقیقی ایفا کرده‌اند و دیگر بازیگران فیلم، همایون ارشادی قربان نجفی، سید امیر سیدی، محمد باقر صفانور، مبینا کریمی و حسین مشتاقی می‌باشند.
خلاصه داستان

آسمان محبوب داستان زندگی دکتر جوانی به نام شایان است که در اوج موفقیت کاری و اجتماعی‌اش درمی‌یابد مبتلا به تومور مغزی شده‌است. او تصمیم به خودکشی می‌گیرد اما در آخرین لحظه اتفاقی رخ می‌دهد که باعث می‌شود سر از روستایی دورافتاده درآورد و ...
جوایز

برنده سیمرغ بلورین بهترین کارگردانی (مهرجویی) در بخش مسابقه بین‌الملل بیست و نهمین جشنواره بین‌المللی فیلم فجر
نامزد دریافت جوایز بهترین فیلم، بهترین کارگردانی، بهترین فیلمنامه (محمدی‌فر و مهرجویی)، بهترین فیلمبرداری (مجیدی)، بهترین تدوین (حسندوست)، بهترین صداگذاری (محمدرضا دلپاک)، بهترین بازیگر نقش دوم زن (سپاه‌منصور) و بهترین جلوه‌های ویژه رایانه‌ای (هادی اسلامی، امیر سحرخیز، فرخ مجیدی) در بخش مسابقه ایران بیست و نهمین جشنواره بین‌المللی فیلم فجر
برنده دیپلم افتخار بهترین بازیگر مرد (علی مصفا) در بخش مسابقه ایران بیست و نهمین جشنواره بین‌المللی فیلم فجر
نامزد دریافت جایزه بهترین تدوین در نوزدهمین جشن خانه سینما
حاشیه‌ها

اگرچه این فیلم نامزد جوایز بسیاری در بیست و نهمین دوره جشنواره فیلم فجر بود و داریوش مهرجویی سیمرغ بلورین بهترین کارگردانی را در بخش سینمای بین‌الملل دریافت کرد، اما فیلم چندان مورد توجه منتقدان قرار نگرفت. این فیلم هنوز به نمایش عمومی درنیامده‌است. این فیلم در پاییز سال ۱۳۹۴ وارد شبکه نمایش خانگی شد.
این فیلم دومین همکاری مهرجویی با مرکز سیمافیلم بعد از فیلم «مهمان مامان» است.
اغلب وقایع این فیلم در [ابیانه] می‌گذرد.
تصویربرداری فیلم به طریقهٔ ویدئویی انجام شد و پس از اتمام کار به نسخه ۳۵ میلیمتری تبدیل شد. در جشنواره فیلم فجر، ابتدا فیلم در بخش آثار ویدئویی قرار گرفت که با اعتراض مهرجویی مواجه شد.
پیش از شروع فیلمبرداری، پای داریوش مهرجویی شکست و او با پای شکسته فیلم را کارگردانی کرد.
مهرجویی در جلسه نمایش فیلم و در نشست نقد و بررسی حضور نداشت. او در اختتامیه جشنواره نیز حاضر نشد و جایزه او را تهیه‌کننده فیلم دریافت کرد.
کد خودتغییردهنده

در علوم کامپیوتر، کد خود تغییر دهنده کدی است که دستورالعمل‌های خود را تغییر می‌دهد در حالی که دارد اجرا می‌شود - معمولاً برای کاهش طول مسیر دستور و بهبود عملکرد یا به سادگی برای کاهش کد مشابه تکرارشده تا نگهداری آسان‌تر بشود. خود-تغییر دهندگی یک جایگزین برای روش «تنظیم پرچم» و برنامه مشروط شاخه‌ای است که در درجه اول برای کاهش تعداد دفعاتی که یک شرایط باید مورد آزمایش قرار گیرد، استفاده می‌شود. این اصطلاح معمولاً فقط برای کدی استفاده می‌شود که در آن خود تغییر دهندگی عمدی و با قصد است، نه در مواردی که کد به صورت تصادفی به علت خطایی مانند سرریز بافر(buffer overflow) تغییر می‌کند.
این روش غالباً برای استفاده مشروط از کد تست / اشکال زدایی کد بدون نیاز به هزینه اضافی محاسباتی برای هر چرخه ورودی / خروجی استفاده می‌شود.
تغییرات ممکن است انجام شود:
فقط در طی راه اندازی اولیه - براساس پارامترهای ورودی است (زمانی که فرایند بیشتر به عنوان پیکربندی نرم‌افزار توصیف می شود و در اصطلاحات سخت‌افزار، به تنظیم کردن jumperها برای صفحات مدار چاپی تقریباً مشابه است). تغییر اشاره گرهای ورودی برنامه یک روش غیرمستقیم معادل خود تغییر دهندگی است، اما نیاز به وجود یک یا بیشتر مسیرهای دستورالعملی جایگزین دارد که افزایش حجم برنامه را شاهد خواهیم بود.
در طول اجرا ("on-the-fly") - بر اساس شرایط خاص برنامه است که در طی اجرای رسیده‌است.
در حالت دیگر، تغییرات ممکن است به‌طور مستقیم خودشان به دستورالعمل‌های کد ماشین اعمال بشوند، با پوشاندن یا جایگزینی دستورالعمل‌های جدید بر روی دستورالعمل‌های در حال حاضر (به عنوان مثال: تغییر مقایسه و branch به branch بدون شرط یا " NOP ") انجام می‌شود.
در مجموعه دستورالعمل IBM / 360 و Z / Architecture دستور EXECUTE (EX) به‌طور منطقی بایت دوم دستورالعمل هدف خود را با ۸ بیت کم ارزش ثبات ۱، قرار می‌دهد. این اثر خود تغییر دهندگی را نسان می‌دهد، اگر چه دستورالعمل واقعی در حافظه تغییر نمی‌کند.
کاربرد در زبان‌های سطح پایین و سطح بالا

خود-تغییر دهندگی را می‌توان به روش‌های مختلفی بسته به زبان برنامه‌نویسی و پشتیبانی آن از اشاره گرها و / یا دسترسی به کامپایلر پویا یا موتورهای مترجم انجام داد:
پوشاندن دستورالعمل‌های موجود (یا بخشی از دستورالعمل‌هایی مانند opcode, register, flags یا آدرس) یا
ایجاد مستقیم دستورالعمل‌های کامل یا توالی دستورالعمل‌ها در حافظه
ایجاد یا تغییر عبارات کد منبع که با یک مینی کامپایل یا یک تفسیر یا ترجمه پویا صورت می‌گیرد (نگاه کنید به eval)
ایجاد یک برنامه کامل به صورت پویا و سپس اجرای آن
کاربرد در زبان‌های سطح پایین و سطح بالا > زبان اسمبلی

کد خود تغییر دهندگی برای پیاده‌سازی در هنگام استفاده از زبان اسمبلی بسیار ساده است. دستورالعمل‌ها می‌توانند به‌طور پویا در حافظه ایجاد شوند (یا در موارد دیگر بر روی کدهای موجود در ذخیره‌سازی برنامه‌های محافظت نشده)، در توالی معادل با آن‌هایی که کامپایلر استاندارد ممکن است به عنوان کد هدف تولید کند. با پردازنده‌های مدرن، ممکن است عوارض جانبی ناخواسته بر روی حافظه نهان CPU وجود داشته باشد که باید در نظر گرفته شود. این روش اغلب برای آزمایش شرایط «اولین بار» مورد استفاده قرار می‌گیرد، همان‌طور که در این نمونه زبان اسمبلی مناسب IBM / 360 توضیح داده شده‌است. این روش با استفاده از پوشش دستور برای کاهش طول مسیر دستورالعمل به N × 1) -1) که در آن N که تعداد رکوردها در فایل است.
(-۱ سرباری برای انجام پوشش است)، استفاده می‌شود.
SUBRTN NOP OPENED      FIRST TIME HERE?
 * The NOP is x'4700'<Address_of_opened>
        OI    SUBRTN+1,X'F0'  YES, CHANGE NOP TO UNCONDITIONAL BRANCH (47F0...)
        OPEN   INPUT               AND  OPEN THE INPUT FILE SINCE IT'S THE FIRST TIME THRU
 OPENED GET    INPUT        NORMAL PROCESSING RESUMES HERE
       ...
کد جایگزین ممکن است شامل هر بار آزمودن «پرچم» باشد. دستور پرش بدون قید و شرط کمی سریعتر از دستور مقایسه ای است، و همچنین باعث کاهش طول مسیر کلی می‌شود. در سیستم عامل‌های بعدی برای برنامه‌هایی که در حافظه محافظت شده قرار دارند، این تکنیک نمی‌تواند مورد استفاده قرار گیرد و به جای آن از تغییر اشاره گر به زیر برنامه استفاده خواهد شد. اشاره گر در حافظه پویا قرار دارد و می‌تواند پس از گذراندن اولین مرحله برای دور زدن OPEN تغییر یابد (ابتدا باید یک اشاره گر به جای یک پرش مستقیم بارگذاری شود و به زیر برنامه ارتباط پیدا کند که N دستورالعمل را به طول مسیر اضافه می‌کند - اما یک کاهش متناظر با N برای پرش بدون قید و شرط وجود دارد که دیگر لازم نیست).
در زیر نمونه ای از زبان اسمبلی Zilog Z80 است. این کد ثبات B را از مقدار ۰ به ۵ افزایش می‌دهد. دستور مقایسه ای "CP" در هر حلقه تغییر می‌کند.
;====================================================================  ==
ORG 0H
CALL FUNC00
HALT
;====================================================================  ==
FUNC00:
LD A,6
LD HL,label01+1
LD B,(HL)
label00:
INC B
LD (HL),B
label01:
CP $0
JP NZ,label00
RET
;====================================================================  ==
کد خود تغییر دهنده گاهی اوقات برای غلبه بر محدودیت‌های مجموعه دستورها ماشین مورد استفاده قرار می‌گیرد. به عنوان مثال، در مجموعه دستورها اینتل ۸۰۸۰ نمی‌توان یک بایت را از یک پورت ورودی که توسط یک ثبات مشخص شده‌است را وارد کرد. پورت ورودی به صورت استاتیکی در خود دستور، به عنوان بایت دوم دستور دو بایتی رمزگذاری می‌شود. با استفاده از کد خود تغییر دهنده، می‌توان محتویات ثبات را در بایت دوم دستور ذخیره کرد، سپس دستور اصلاح شده را برای رسیدن به اثر مورد نظر، اجرا می‌کند.
کاربرد در زبان‌های سطح پایین و سطح بالا > زبانهای سطح بالا

برخی از زبان‌های کامپایل شده به صراحت اجازه می‌دهند کد خود را تغییر دهید. به عنوان مثال، فعل ALTER در کوبول ممکن است به عنوان دستور پرشی اجرا شود که در حین اجرای برنامه اصلاح می‌شود. یکی از روش‌های برنامه‌ریزی دسته ای استفاده از کد خودمحور است. Clipper و SPITBOL نیز امکانات را برای تغییر صریح خود فراهم می‌کنند. کامپایلر Algol در سیستم‌های B6700 یک رابط را برای سیستم عامل ارائه داد که در آن اجرای کد می‌تواند یک رشته متن یا یک فایل دیسک نام‌گذاری شده را به کامپایلر Algol منتقل کند و سپس قادر به فراخوانی نسخه جدیدی از یک روش بود.
با زبان‌های تفسیر شده، "کد ماشین" متن منبع است و ممکن است حساس به ویرایش بر روی on-the-fly باشد: در اسنوبول، جملات مرجع که اجرا می‌شوند، عناصر یک آرایه متنی هستند. زبان‌های دیگر مانند Perl و Python به برنامه‌ها برای ایجاد کد جدید در زمان اجرا و اجرای آن با استفاده از یک تابع eval، اجازه می‌دهند، اما اجازه تغییر در کد فعلی قابل را نمی‌دهند. تغییر غلط (حتی اگر هر کدام از ماشین‌ها واقعاً رونویسی شوند) با تغییر اشاره گرهای تابع به دست می‌آید، همان‌طور که در این مثال جاوااسکریپت داریم:
var f = function (x) {return x + 1};

    // assign a new definition to f:
    f = new Function('x', 'return x + 2');
ماکروهای Lisp همچنین اجازه می‌دهند که کد در زمان اجرا تولید شود بدون آن که به تجزیه رشته حاوی متن برنامه نیاز باشد.
زبان برنامه‌نویسی Push یک سیستم برنامه‌نویسی ژنتیکی است که به‌طور ویژه برای ایجاد برنامه‌های خود تغییر دهنده طراحی شده‌است. در حالی که یک زبان سطح بالا نیست، زبان سطح پایینی هم در حد زبان اسمبلی نیست.
کاربرد در زبان‌های سطح پایین و سطح بالا > زبانهای سطح بالا > تغییر مرکب

قبل از ظهور تعدادی از ویندوزها، سیستم‌های command-line ممکن است یک سیستم منو که شامل اصلاح یک اسکریپت فرمان اجرایی است را ارائه دهند. فرض کنید یک فایل اسکریپت DOS (یا "دسته ای") Menu.bat شامل موارد زیر باشد:
برچسب. ShowMenu.exe
پس از شروع Menu.bat از خط فرمان، دستور ShowMenu یک منو بر روی صفحه با اطلاعات کمکی ممکن، استفاده از مثال‌ها و… را ارائه می‌دهد. در نهایت کاربر یک انتخاب را انجام می‌دهد که برای اجرا نیاز به یک فرمان somename دارد: ShowMenu پس از بازنویسی فایل Menu.bat که حاوی دستورهای زیر است، وجود دارد
ShowMenu.exe
 CALL C: \ دستورها \ somename بوت
 GOTO StartAfresh
از آنجا که فرمان مترجم DOS یک فایل اسکریپت را کامپایل و سپس اجرا نمی‌کند و قبل از شروع اجرای آن تمام فایل را به حافظه نمی‌بخشد و هنوز هم بر روی محتوای یک بافر رکورد وابسته نیست، زمانی که دستور ShowMenu خارج می‌شود، فرمان مترجم، فرمان جدیدی را برای اجرا پیدا می‌کند (اسکریپت فایل somename را، در یک مکان دایرکتوری و از طریق یک پروتکل که برای ShowMenu شناخته شده‌است، فراخوانی می‌کند) و بعد از آن فرمان کامل شود، به آغاز فایل اسکریپت بازمی‌گردد و ShowMenu را برای انتخاب بعدی، دوباره فعال می‌کند. باید گزینه منو را ترک کنید، فایل می‌بایست به حالت اصلی آن بازنویسی شود. اگر چه این حالت شروع هیچ استفاده ای برای برچسب ندارد، یا مقدار معادل آن متن لازم است، زیرا مترجم فرمان DOS مکان فرمان بعدی را هنگامی که فرمان بعدی را اجرا می‌کند به یاد می‌آورد، بنابراین فایل دوباره نوشته شده باید هماهنگی برای نقطه شروع فرمان بعدی را حفظ کند تا در واقع شروع فرمان بعدی باشد.
بجز راحتی یک سیستم منو (و ویژگی‌های کمکی احتمالی)، این روش به این معنی است که سیستم ShowMenu.exe زمانی که فرمان انتخاب شده فعال نیست، مزیت قابل توجهی در هنگام محدود بودن حافظه دارد.
کاربرد در زبان‌های سطح پایین و سطح بالا > جداول کنترل

مترجم‌های جدول کنترل می‌توانند در یک معنا "خود تغییر داده شده" با مقادیر داده استخراج شده از ورودی‌های جدول (به جای اینکه به‌طور خاص دسته‌بندی شده در جمله‌های شرطی به فرم "IF inputx = 'yyy'") در نظر گرفته شود.
کاربرد در زبان‌های سطح پایین و سطح بالا > برنامه‌های کانال

بعضی از روش‌های دسترسی IBM به‌طور سنتی برنامه‌های کانال خود تغییر دهنده را استفاده می‌کنند، جایی که یک مقدار مانند آدرس دیسک، در یک ناحیه اشاره شده توسط برنامه کانال، که از طریق یک فرمان کانال بعدی برای دسترسی به دیسک استفاده می‌شود، خوانده می‌شود.
تاریخ

IBM SSEC در ماه ژانویه سال ۱۹۴۸ نشان داد که توانایی تغییر دستورهایش را دارد یا در غیر این صورت با آن‌ها دقیقاً مانند داده رفتار کند. با این حال، این قابلیت به ندرت در عمل کاربرد دارد. در اولین روزهای رایانه‌ها، کد خود تغییر دهنده اغلب برای کاهش استفاده از حافظه محدود یا بهبود عملکرد یا به هر دو دلیل استفاده می‌شد. همچنین گاهی اوقات برای پیاده‌سازی توابع زیر برنامه ای استفاده می‌شد و هنگامی برمی‌گشت که مجموعه دستورها تنها پرشی ساده یا رد شدن از دستورها برای تغییر دادن کنترل جریان، باشند. این کاربرد هنوز در برخی معماری معین ultra-RISC مناسب است، حداقل از لحاظ نظری؛ به عنوان مثال معماری one instruction set computer نیز از کد خود تغییر دهنده برای پیاده‌سازی توابع زیر برنامه، استفاده می‌کرد.
کاربرد

کد خود تغییر دهنده را می‌توان برای اهداف مختلف استفاده کرد:
بهینه‌سازی نیمه اتوماتیک یک حلقه وابستگی حالت.
تولید کد زمان اجرا یا تخصص یک الگوریتم در زمان اجرا یا زمان بارگذاری (که محبوب است، به عنوان مثال در حوزه گرافیک در زمان واقعی) مانند یک ابزار مرتب‌سازی کلی - آماده‌سازی کد برای انجام مقایسه کلیدی که در یک فراخوانی خاص شرح داده شده‌است.
تغییر حالت فشرده یک شی، یا شبیه‌سازی ساخت و ساز در سطح بالا از کلوژرها.
پچ کردن آدرس زیر برنامه (اشاره گر) صدا زده شده، معمولاً به عنوان زمان بارگذاری یا مقداردهی اولیه کتابخانه‌های پویا انجام می‌شود، یا در هر فراخوانی، پچ کردن مرجع‌های داخلی زیر برنامه به پارامترهای آن، برای استفاده از آدرس‌های واقعی آنها. (به عبارت دیگر خود اصلاحی مستقیم ").
سیستم‌های محاسباتی تکاملی مانند برنامه‌نویسی ژنتیک.
پنهان کردن کد برای جلوگیری از مهندسی معکوس (با استفاده از disassembler یا debugger) یا فرار از تشخیص توسط نرم‌افزار اسکن ویروس / جاسوسی و مانند آن.
پر کردن ۱۰۰٪ حافظه (در بعضی از معماری‌ها) با یک الگوی نورد از تکرار opcodes، برای پاک کردن تمام برنامه‌ها و داده‌ها، یا سوزاندن سخت‌افزار.
فشرده سازی کد را باید در زمان اجرا فشرده و اجرا کرد، مثلاً زمانی که حافظه یا فضای دیسک محدود است.
برخی از مجموعه‌های دستور بسیار محدود هیچ گزینه ای ندارند، اما از کد خود تغییر دهنده برای انجام وظایف خاص استفاده می‌کنند. به عنوان مثال، یک مجموعه دستورالعمل کامپیوتری (OISC) که تنها از دستور "تفریق" و "branch-if-negative" استفاده می‌کند نمی‌تواند یک کپی غیرمستقیم (چیزی شبیه معادل "a = ** b" در C زبان) بدون استفاده از کد خود تغییر دهنده را انجام دهد.
راه اندازی. میکرو رایانه‌های اولیه اغلب از کد خود تعییر دهنده در بوت لودرها استفاده می‌کردند. از آنجا که بوت لودر از طریق قطعه جلو در هر دکمه پاور کلید شده بود، مهم نبود که بوت لودر خود را تغییر دهد. با این حال، حتی امروزه بسیاری از bootstrap loaderها خود را جایگزین می‌کنند و تعدادی از آن‌ها حتی خود تغییر دهنده نیز هستند.
تغییر دستورها برای تحمل خطا.
کاربرد > بهینه‌سازی یک حلقه وابستگی حالت

مثالd از Pseudocode :
repeat N times {
 if STATE is 1
 increase A by one
 else
 decrease A by one
 do something with A
}
کد خود تغییر دهنده، در این مورد، به سادگی موضوع بازنویسی حلقه مانند این است:
repeat N times {
  ''increase'' A by one
  do something with A
  when STATE has to switch {
  replace the opcode "increase" above with the opcode to decrease, or vice versa
  }
  }
توجه داشته باشید که تعویض دو حالتی OPCode به راحتی می‌تواند به عنوان "xor var" در آدرس با مقدار" (opcodeOf (Inc) xor opcodeOf (dec " نوشته شود.
انتخاب این راه حل باید به مقدار N و فرکانس تغییر حالت بستگی داشته باشد.
کاربرد > تخصص

فرض کنید مجموعه ای از آمار مانند میانگین، بیشینه، موقعیت بیشینه، انحراف استاندارد و … برای برخی از مجموعه داده‌های بزرگ محاسبه می‌شود. در یک وضعیت کلی، ممکن است یک حالت مربوط به وزن با داده وجود داشته باشد، بنابراین هر x i با aw i همراه است و به جای آزمودن حضور وزن در هر مقدار شاخص، ممکن است دو نسخه از محاسبه، یکی برای استفاده با وزن و یکی برای استفاده بدون وزن، با یک آزموندن در آغاز کار، موجود باشد. حال یک گزینه دیگر را در نظر بگیرید که هر مقدار ممکن است با یک عدد بولین همراه باشد تا نشان دهد که آیا این مقدار باید حذف شود یا خیر. این روش می‌تواند با تولید چهار دسته از کد، برای هر permutation و نتایج نفوذ کد، مورد استفاده قرار گیرد. در عوض، وزن و آرایه‌های جست و جوی می‌توانند به یک آرایه موقت (با وزن صفر برای مقادیری که باید پر شوند)، با هزینه پردازش، ترکیب شوند و هنوز هم باد کردن وجود دارد. با این حال، با تغییر کد، به الگوی محاسبه آمار می‌تواند کد مورد نظر که برای پرش از مقادیر ناخواسته و برای اعمال وزن است، اضافه شود. تست‌های تکراری از گزینه‌ها وجود نخواهد داشت و به آرایه داده‌ها یک بار دسترسی انجام می‌شود، همچنین وزن و آرایه‌های جستجو می‌تواند به همین شکل باشد، اگر شامل کد باشند باشد.
کاربرد > استفاده به عنوان پوشش

کد خود تغییر دهنده برای مخفی کردن کپی حفاظت دستورها در برنامه‌های مبتنی بر دیسک ۱۹۸۰ برای سیستم عامل‌هایی مانند IBM PC و Apple II استفاده شده‌است. به عنوان مثال، در IBM PC (یا سازگار)، دستور دستیابی درایو فلاپی دیسک که int 0x13 می‌باشد در تصویر برنامه اجرایی نمایش داده نخواهد شد، اما بعد از اجرای برنامه، در تصویر حافظه اجرایی نوشته می‌شود.
کد خود تغییر دهنده گاهی اوقات توسط برنامه‌هایی استفاده می‌شود که نمی‌خواهند حضورشان را نشان دهند، مانند ویروس‌های کامپیوتری و برخی ازshellcodeها. ویروس‌ها و کد شل‌ها که از کد خود تغییر دهنده استفاده می‌کنند، عمدتاً این کار را با کد پلی مورفیک انجام می‌دهند. تغییر یک قطعه کد در حال اجرا نیز در حملات خاص، مانند سرریز بافر استفاده می‌شود.