Interning (computer science)
કોમ્પ્યુટર વિજ્ઞાનમાં, ઇન્ટર્નિંગ એટલે નવી વસ્તુઓ બનાવવાને બદલે માંગ પર સમાન મૂલ્યની વસ્તુઓનો ફરીથી ઉપયોગ કરવો. આ રચનાત્મક પેટર્નનો ઉપયોગ વારંવાર વિવિધ પ્રોગ્રામિંગ ભાષાઓમાં સંખ્યાઓ અને શબ્દમાળાઓ માટે થાય છે. પાયથોન જેવી ઘણી ઓબ્જેક્ટ-ઓરિએન્ટેડ ભાષાઓમાં, પૂર્ણાંક સંખ્યાઓ જેવા આદિમ પ્રકારો પણ ઓબ્જેક્ટ છે. મોટી સંખ્યામાં પૂર્ણાંક પદાર્થોના નિર્માણના ઓવરહેડને ટાળવા માટે, આ પદાર્થોનો ઇન્ટર્નિગ દ્વારા ફરીથી ઉપયોગ થાય છે. કામ કરવા માટે ઇન્ટર્નિગ માટે ઇન્ટર્ન્ડ ઓબ્જેક્ટ્સ અપરિવર્તનીય હોવા જોઈએ, કારણ કે સ્થિતિ બહુવિધ ચલો વચ્ચે વહેંચાયેલી છે. સ્ટ્રિંગ ઇન્ટર્નિગ એ ઇન્ટર્નિગની એક સામાન્ય એપ્લિકેશન છે, જ્યાં સમાન પ્રોગ્રામમાં સમાન મૂલ્યો ધરાવતી ઘણી સ્ટ્રિંગ્સની જરૂર પડે છે. હિસ્ટ્રી લિસ્પે તેના પ્રતીકો માટે આંતરિક તારની કલ્પના રજૂ કરી. LISP 1.5 પ્રોગ્રામર્સ મેન્યુઅલ ઇન્ટર્ન નામના કાર્યનું વર્ણન કરે છે જે ક્યાં તો પૂરા પાડવામાં આવેલ નામના હાલના પ્રતીકનું મૂલ્યાંકન કરે છે, અથવા જો કોઈ અસ્તિત્વમાં નથી, તો તે નામનું નવું પ્રતીક બનાવે છે. આંતરિક પ્રતીકોનો આ વિચાર લિસ્પની વધુ તાજેતરની બોલીઓમાં ચાલુ રહે છે, જેમ કે ક્લોઝર ખાસ સ્વરૂપોમાં જેમ કે (ડેફ પ્રતીક) જે પ્રતીક નિર્માણ અને આંતરિક કાર્ય કરે છે. ઓબ્જેક્ટ-ઓરિએન્ટેડ પ્રોગ્રામિંગ પેરાડિગમ ઇન્ટર્નિગ એ ફ્લાયવેટ પેટર્નમાં એક મહત્વપૂર્ણ પદ્ધતિ છે, જ્યાં ઓબ્જેક્ટની આંતરિક સ્થિતિને સંગ્રહિત કરવા માટે ઇન્ટર્નિગ પદ્ધતિ કહેવામાં આવે છે, જેથી આને વિવિધ પદાર્થો વચ્ચે વહેંચી શકાય જે વિવિધ બાહ્ય સ્થિતિને શેર કરે છે, બિનજરૂરી ડુપ્લિકેશનને ટાળે છે. પ્રોગ્રામિંગ ભાષાના અમલીકરણમાં મેમરીના ઉપયોગને સંચાલિત કરવા માટે ઇન્ટર્નિગ એક મહત્વપૂર્ણ તકનીક બની રહી છે; ઉદાહરણ તરીકે, જાવા લેંગ્વેજ સ્પષ્ટીકરણ માટે જરૂરી છે કે સમાન શબ્દમાળા અક્ષરો (એટલે કે, અક્ષરો કે જેમાં કોડ પોઇન્ટનો સમાન ક્રમ હોય છે) એ વર્ગ શબ્દમાળાના સમાન ઉદાહરણનો સંદર્ભ લેવો આવશ્યક છે, કારણ કે અનન્ય ઉદાહરણો શેર કરવા માટે શબ્દમાળા અક્ષરો "ઇન્ટર્ન" હોય છે. પાયથોન પ્રોગ્રામિંગ ભાષામાં નાના પૂર્ણાંકોને ઇન્ટર્ન કરવામાં આવે છે, જોકે જેની વિગતો ભાષાના સંસ્કરણ પર આધારિત હોય છે. પ્રેરણા ઇન્ટર્નિંગ મેમરી બચાવે છે અને આમ પ્રોગ્રામની કામગીરી અને મેમરી ફૂટપ્રિન્ટમાં સુધારો કરી શકે છે. નકારાત્મક બાજુ એ વસ્તુઓના હાલના મૂલ્યોને શોધવા માટે જરૂરી સમય છે જે ઇન્ટર્ન કરવાના છે. ફ્લાયવેટ પેટર્ન હેશ કોન્સિંગ સંદર્ભો બાહ્ય કડીઓ ડિઝાઇન પેટર્ન-યુનિવર્સિટી ઓફ વોશિંગ્ટન સ્ટ્રિંગ ઇન્ટર્નિંગ ઇન પાયથોન સોફ્ટવેર ઓપ્ટિમાઇઝેશન સ્ટ્રિંગ (કોમ્પ્યુટર સાયન્સ) પણ જુઓ.