Byte Code Engineering Library
બાઈટ કોડ એન્જિનિયરિંગ લાઈબ્રેરી (બી. સી. ઈ. એલ.) એ અપાચે ફાઉન્ડેશન દ્વારા અગાઉ તેમના જકાર્તા ચાર્ટર હેઠળ પ્રાયોજિત એક પ્રોજેક્ટ છે, જે દ્વિસંગી જાવા વર્ગોને વિઘટિત કરવા, તેમાં ફેરફાર કરવા અને ફરીથી કંપોઝ કરવા માટે એક સરળ API પ્રદાન કરે છે. બાઈટકોડ). 27 ઓક્ટોબર 2001ના રોજ અપાચે જકાર્તા ફાઉન્ડેશનને સત્તાવાર રીતે દાન કરવામાં આવે તે પહેલાં આ પ્રોજેક્ટની કલ્પના અને વિકાસ માર્કસ ડાહમ દ્વારા કરવામાં આવ્યો હતો. ઉપયોગ બી. સી. ઈ. એલ. એક સરળ પુસ્તકાલય પ્રદાન કરે છે જે આપેલા જાવા વર્ગના આંતરિક એકંદર ઘટકોને તેના એ. પી. આઈ. દ્વારા ઓબ્જેક્ટ કન્સ્ટ્રક્ટ્સ (નીચલા સ્તરના ઓપકોડ્સના ડિસએસેમ્બલીના વિરોધમાં) તરીકે છતી કરે છે. આ પદાર્થો દ્વિસંગી બાઈટકોડમાં ફેરફાર કરવા માટેની કામગીરીને પણ છતી કરે છે, તેમજ નવો બાઈટકોડ પેદા કરે છે (હાલના કોડમાં નવા કોડના ઇન્જેક્શન દ્વારા, અથવા એકસાથે નવા વર્ગોની પેઢી દ્વારા). બી. સી. ઈ. એલ. લાઈબ્રેરીનો ઉપયોગ વિવિધ એપ્લિકેશનોમાં કરવામાં આવ્યો છે, જેમ કેઃ જાવા બાઈટકોડ ડીકમ્પાઇલિંગ, ઓબ્ફ્યુસેશન, અને રીફેક્ટરિંગ પરફોર્મન્સ અને પ્રોફાઇલિંગ ઇન્સ્ટ્રુમેન્ટેશન કોલ્સ કે જે પ્રદર્શન મેટ્રિક્સને કેપ્ચર કરે છે તેને મેમરી/કવરેજ ડેટાની તપાસ કરવા માટે જાવા વર્ગની દ્વિસંગીઓમાં ઇન્જેક્ટ કરી શકાય છે. (ઉદાહરણ તરીકે, પ્રવેશ/બહાર નીકળવાના બિંદુઓ પર ઇન્સ્ટ્રુમેન્ટેશનને ઇન્જેક્શન આપવું.) નવી ભાષા શબ્દાર્થશાસ્ત્રનો અમલ ઉદાહરણ તરીકે, જાવા ભાષામાં પાસા-લક્ષી ઉમેરાઓ BCEL નો ઉપયોગ કરીને બિંદુ-કટ ઓળખ માટે વર્ગ માળખાને વિઘટિત કરીને અમલમાં મૂકવામાં આવ્યા છે, અને પછી ફરીથી જ્યારે પાસા-સંબંધિત કોડને દ્વિસંગીમાં પાછું દાખલ કરીને વર્ગનું પુનર્ગઠન કરવામાં આવે છે. (જુઓઃ એસ્પેક્ટજે) સ્ટેટિક કોડ વિશ્લેષણ ફાઇન્ડબગ્સ બી. સી. ઈ. એલ. નો ઉપયોગ કોડ રૂઢિપ્રયોગો માટે જાવા બાઇટકોડનું વિશ્લેષણ કરવા માટે કરે છે જે ભૂલોને સૂચવે છે. ઓબ્જેક્ટવેબ એ. એસ. એમ. જાવાસિસ્ટ બાહ્ય કડીઓ અપાચે કોમન્સ બી. સી. ઈ. એલ.-બી. સી. ઈ. એલ. પ્રોજેક્ટ હોમ પેજ પણ જુઓ. બી. સી. ઈ. એલ. આધારિત પ્રોજેક્ટ લિસ્ટિંગ-બી. સી. ઈ. એલ. લાઈબ્રેરીનો ઉપયોગ કરતા પ્રોજેક્ટની સૂચિ. અપાચે જકાર્તા હોમ-અપાચે જકાર્તા હોમ પેજ. એસ્પેક્ટજે-એસ્પેક્ટજે પ્રોજેક્ટ હોમ પેજ. (ઉચ્ચ-દૃશ્યતા પરિયોજનાઓમાંથી એક જે BCEL નો ઉપયોગ કરે છે.) વર્ચ્યુઅલાઈઝેશન સોફ્ટવેર