কোড বিভাগকে কেন একটি পাঠ্য বিভাগ বলা হয়?


14

কোড রয়েছে এমন একটি এক্সিকিউটেবলের অংশটিকে কখনও কখনও বিভাগ বলা হয় .text। বিভাগযুক্ত মেমরি আর্কিটেকচারগুলিতে কোড হিসাবে ম্যাপযুক্ত একটি বিভাগটিকে কখনও কখনও পাঠ্য বিভাগ বলা হয়। ইউনিক্স ত্রুটি বার্তা "পাঠ্য ফাইল ব্যস্ত" ( ETXTBSY) এর অর্থ "এই ফাইলটি এমন একটি প্রোগ্রাম যা চালানো হচ্ছে"।

কিভাবে হয়নি টেক্সট মানে আসা এক্সিকিউটেবল (মেশিন) কোড ?

একটি আদর্শ উত্তর হবে: শব্দ এবং এর অর্থের মধ্যে সংযোগটি ব্যাখ্যা করবে; উত্স বা কমপক্ষে শব্দটির ইতিহাসের জন্য একটি প্রশংসা প্রদান করুন; কোন সম্প্রদায়গুলি এটি ব্যবহার করে সে সম্পর্কে কিছু ধারণা দিন।


.textএকটি সমাবেশ নির্দেশ। সমাবেশ পাঠ্য।
অস্টিন হেনলি

6
: একটি অনুরূপ প্রশ্ন জিজ্ঞাসা এবং 3 বছর পূর্বে Stackoverflow উত্তর ছিল stackoverflow.com/questions/1282506/...
স্টিফেন সি

@ স্টেফেনসি লিঙ্কটির জন্য ধন্যবাদ। "টেক্সট বিভাগ" গুগল করে খুঁজে পাওয়া সহজ, আমি বেশিরভাগই "পাঠ্য বিভাগ" দিয়ে চেষ্টা করেছি এবং এটি সক্রিয় হয়নি। সুতরাং এটি কমপক্ষে জিই দিনগুলিতে চলে আসে তবে অর্থ কীভাবে প্রতিষ্ঠিত হয়েছিল তা এখনও পরিষ্কার নয়।
গিলস 'অশুভ হওয়া বন্ধ করুন'

উত্তর:


5

শব্দটি সমাবেশ ভাষা থেকে এসেছে। আমি ব্যুৎপত্তিটি যাচাই করতে পারি না, তবে আমার ধারণা এই নামটি বিভাগটির অন্য ব্যবহার থেকে আসে। যেখানে .dataঅধ্যায় ভেরিয়েবল যে মৃত্যুদন্ড চলাকালীন পরিবর্তন করতে পারেন উল্লেখ করে, .textঅধ্যায় ডেটা আছে যা সম্পাদনের সময় পরিবর্তন হবে না, যার ফলে প্রয়োজনে এটা রম পুরা করা রয়েছে। এটি কোডের জন্য এটি হ্যাঁ কার্যকর করে তোলে, তবে পরিবর্তিত হয় না এমন পাঠ্যের স্ট্রিংয়ের জন্যও এটি দরকারী করে তোলে। শব্দটি এসেছে যেখানে সম্ভবত।

প্রথম শ্রেণীর ফাংশন সম্পর্কে গ্রিফিনের মন্তব্যকে সম্বোধন করতে, নীচের অজগর 3 কোডটি বিবেচনা করুন:

def counter():
    x = 0
    def increment(y):
        nonlocal x
        x += y
        print(x)
    return increment

আপনি যে কোডটি প্রকৃতপক্ষে সম্পাদন করেন তা incrementঅভ্যন্তরীণভাবে এমন কিছু দেখতে শুরু করে:

self.func_dict['x'] += y
print(self.func_dict['x'])

এই এক্সিকিউটেবল কোডটি রমে রাখা যেতে পারে। প্রোগ্রামটি কার্যকর করার সময় এটি কখনই পরিবর্তন হয় না, আপনি যতবার কল করুন না counter()। কি করে পরিবর্তন selfপয়েন্টার এবং সদস্য ভেরিয়েবল। সেগুলি অবশ্যই intoোকাতে হবে .data। যখন আপনি return increment, আপনি আসলে একটি ইনক্রিমেন্ট ফাংশন অবজেক্টের একটি নতুন উদাহরণ ফিরে আসছেন। আপনি প্রতিটি সময় ডায়নামিকভাবে নতুন এক্সিকিউটেবল কোড তৈরি করছেন না। কোডটি নিজেই অপরিবর্তনীয় যদিও এর পয়েন্টারটি নেই।

বিভাগে কেবলমাত্র কোডটি অবশ্যই সংরক্ষণ করতে হবে .dataযা উত্পন্ন হয় eval(), কারণ এটি প্রোগ্রামের শুরুতে সংকলক বা জেআইটি সংকলকটির জানা ছিল না। যাইহোক, এমনকি যে কোড অপরিবর্তনীয়। আপনি যদি স্ট্রিং পরিবর্তন করেন এবং eval()আবার কল করেন, আপনি আগের বার কল করার সময় থেকে কোড পরিবর্তন করছেন না eval(), আপনি একটি সম্পূর্ণ নতুন কোড সেট তৈরি করছেন।

যদিও প্রোগ্রামিং মডেলটি এ জাতীয় অনুভূতিটিকে কোডের মতো পরিবর্তন করতে পারে তবে প্রসেসরের নির্দেশ স্তরে প্রকৃত স্ব-সংশোধনকারী কোড বিপজ্জনক এবং প্রক্রিয়া প্রসঙ্গে স্যুইচিংয়ের মতো ওএস ভুডু বিষয়ের বাইরে খুব কমই পাওয়া যায়।


সুতরাং যখন আপনি কোডটিও পরিবর্তনযোগ্য / ১ ম শ্রেণি বিবেচনা করে একটি কার্যকরী ভাষা ব্যবহার করছেন তখন কী হয়?
গ্রিফিন

1
প্রথম শ্রেণীর ফাংশন সম্পর্কে আমার সম্পাদনা দেখুন।
কার্ল বিলেফেল্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.