স্ব-পরিবর্তনকারী কোড
কম্পিউটার বিজ্ঞানের ভাষায় স্ব-পরিবর্তনকারী কোড হচ্ছে এমন এক ধরনের কোড, যেটি এক্সিকিউট হওয়ার সময় নিজেই নিজের কোড পরিবর্তন করতে পারে। সাধারণত কোডের লাইনসংখ্যা কমানো এবং কোড যাতে আরও দ্রুত কাজ করতে পারে, সেজন্য এটি ব্যবহার করা হয়। একাধিক শর্তযুক্ত প্রোগ্রামগুলোর বিকল্প হিসেবে স্ব-পরিবর্তনকারী কোড ব্যবহার করা হয়। কোন প্রোগ্রামে লিখা শর্তগুলো যাচাই করার বিকল্প হিসেবেও এই স্ব-পরিবর্তনকারী কোডের ব্যবহার অধিক জনপ্রিয়। এই স্ব-পরিবর্তনকারী কোড এমন পরিস্থিতিতেই ব্যবহার করা হয়, যেখানে "বাফার ফ্লো" কিংবা এই ধরনের কোন ভুলের জন্য কোড পরিবর্তিত হয়ে যাওয়ার কোন সুযোগ নেই।  যেখানে একটি বড় কোড টেস্ট কিংবা ডিবাগ করার জন্য প্রতিটি ইনপুট/আউটপুটের জন্য আলাদা মেমরি, ব্যান্ডউইথ অথবা অন্য কোন কিছুর সাহায্য দরকার হয়, সেখানে এই পদ্ধতিটি সবচেয়ে বেশি ব্যবহার করা হয়। কোডের এই পরিবর্তনগুলো নিন্মোক্ত সময়গুলোতে করা যায়ঃ শুধুমাত্র কোডের শুরুতে - এটি মূলত ইনপুটের উপর নির্ভর করে। বিশেষ করে প্রক্রিয়াটি সাধারণত সফ্টওয়্যার 'কনফিগারেশন' হিসেবে বর্ণনা করা হয় এবং অনুরূপভাবে হার্ডওয়্যার দ্বারা ব্যাখ্যা করতে গেলে প্রিন্টেড সার্কিট বোর্ড দরকার হয়। স্ব-পরিবর্তনকারী কোডের একটি পরোক্ষ সমতুল্য পদ্ধতি প্রোগ্রাম হচ্ছে এন্ট্রি পয়েন্টার। কিন্তু এক্ষেত্রে কয়েকটি বিকল্প নির্দেশ দরকার হয়, ফলে প্রোগ্রামের আকার বৃদ্ধি পায়। কোডের কাজ চলাকালে - এটি কোন একটি প্রোগ্রাম চলাকালে কাজ করে। উভয় ক্ষেত্রেই এটি পুরাতন কোডটিকে সম্পূর্ণরূপে পরিবর্তন করে স্বয়ংক্রিয়ভাবে নতুন একটি কোডে রুপান্তরিত করে ফেলে। কোডের এই পরিবর্তনটি সরাসরি মেশিন কোডটি বদলে ফেলে। উদাহরণস্বরূপ বলা যায়, একটি শর্তহীন কোড অথবা একটি এনওপি। এনওপি হচ্ছে অ্যাসেম্বলি ভাষার এমন একটি নির্দেশনা, যেটি প্রোগ্রাম এক্সিকিউট করার সময় কোন কাজ করেনা।   আইবিএম/৩৬০ এবং জেড/আর্কিটেকচারের ক্ষেত্রে, 'এক্সিকিউট' নির্দেশনাটি তার টার্গেট নির্দেশনাটির প্রথম রেজিস্টারের ৮ বিটের মধ্যে দ্বিতীয় বাইটটিকে যৌক্তিকভাবে পরিবর্তিত করে ফেলে। কিন্তু এই স্ব-পরিবর্তনের ফলে সংগ্রহস্থলের প্রকৃত নির্দেশনার কোন পরিবর্তন হয় না। 