Debugger vs Compiler
Ընդհանուր առմամբ, կոմպիլյատորը համակարգչային ծրագիր է, որը կարդում է մի լեզվով գրված ծրագիր, որը կոչվում է սկզբնաղբյուր, և այն թարգմանում է մեկ այլ լեզվով, որը կոչվում է նպատակային լեզու: Ավանդաբար, սկզբնաղբյուր լեզուն բարձր մակարդակի լեզու էր, ինչպիսին է C++-ը, իսկ թիրախային լեզուն ցածր մակարդակի լեզու էր, ինչպիսին է անսամբլի լեզուն: Debugger-ը համակարգչային ծրագիր է, որն օգտագործվում է այլ ծրագրերում սխալներ/սխալներ գտնելու համար: Վրիպազերծիչը թույլ է տալիս ծրագրավորողին դադարեցնել ծրագրի կատարումը մի կետում և ուսումնասիրել բնութագրերը, ինչպիսիք են փոփոխական արժեքները տվյալ կետում:
Ի՞նչ է վրիպազերծիչը:
Debugger-ը համակարգչային ծրագիր է, որն օգտագործվում է այլ ծրագրերում սխալներ/սխալներ գտնելու համար: Debugger-ը թույլ է տալիս կատարել ծրագիր և ստուգել ծրագրի կատարման յուրաքանչյուր քայլը: Այն նաև թույլ է տալիս ինչ-որ պահի դադարեցնել ծրագրի կատարումը և փոխել որոշ փոփոխական արժեքներ, այնուհետև շարունակել կատարումը։ Այս բոլոր հնարավորություններն ապահովված են օգնելու ծրագրավորողին համոզվելու, որ իր ծրագիրը ճիշտ է վարվում և օգնում է բացահայտել կոդի սխալները: Վրիպազերծողներից շատերը հնարավորություն են տալիս քայլ առ քայլ իրականացնել ծրագիրը (որը նաև կոչվում է մեկ քայլ)՝ ընդմիջելով ծրագրի ներկա վիճակը ուսումնասիրելու համար՝ տրամադրելով ընդմիջման կետ և հետևելով փոփոխական արժեքներին: Որոշ առաջադեմ վրիպազերծիչներ թույլ են տալիս ծրագրավորողին բաց թողնել այն տեղադրությունը, որն առաջացնում է կոդի խափանում կամ տրամաբանական սխալ և շարունակել կատարումը այլ վայրից: Հանրաճանաչ վրիպազերծողներից մի քանիսն են՝ GNU Debugger (GDB), Microsoft Visual Studio Debugger և այլն:
Ի՞նչ է կոմպիլյատորը:
Կոմպիլյատորը համակարգչային ծրագիր է, որը կարդում է մի լեզվով գրված ծրագիր, որը կոչվում է սկզբնաղբյուր, և այն թարգմանում է մեկ այլ լեզվով, որը կոչվում է նպատակային լեզու: Ամենից հաճախ սկզբնաղբյուրը բարձր մակարդակի լեզու է, իսկ թիրախային լեզուն ցածր մակարդակի լեզու է: Այսպիսով, ընդհանուր առմամբ, կազմողները կարող են դիտվել որպես թարգմանիչներ, որոնք թարգմանում են մի լեզվից մյուսը: Բացի այդ, կոմպիլյատորները կատարում են կոդի որոշ օպտիմալացումներ: Տիպիկ կոմպիլյատորը կազմված է մի քանի հիմնական բաղադրիչներից։ Առաջին բաղադրիչը սկաներն է (հայտնի է նաև որպես բառապաշարի անալիզատոր): Սկաները կարդում է ծրագիրը և այն վերածում նշանների շարքի: Երկրորդ բաղադրիչը վերլուծիչն է: Այն փոխակերպում է նշանների տողը վերլուծական ծառի (կամ վերացական շարահյուսական ծառի), որն արտացոլում է ծրագրի շարահյուսական կառուցվածքը: Հաջորդ բաղադրիչը իմաստային առօրյաներն են, որոնք մեկնաբանում են շարահյուսական կառուցվածքի իմաստաբանությունը: Դրան հաջորդում են կոդի օպտիմալացումները և վերջնական կոդի ստեղծումը:
Ո՞րն է տարբերությունը Debugger-ի և Compiler-ի միջև:
Debugger-ը համակարգչային ծրագիր է, որն օգտագործվում է այլ ծրագրերում սխալներ/սխալներ գտնելու համար, մինչդեռ կոմպիլյատորը համակարգչային ծրագիր է, որը կարդում է մի լեզվով գրված ծրագիր և այն թարգմանում մեկ այլ լեզվով: Կոմպիլյատորներն ունեն նաև շարահյուսական սխալներ և այլ կոմպիլյացիայի ժամանակի սխալներ հայտնաբերելու հնարավորություն, սակայն վրիպազերծիչները ավելի շատ հնարավորություններ են տալիս (օրինակ՝ հիշողության մոնիտորինգը)՝ ծրագրերում սխալները հայտնաբերելու համար: Այս երկուսը երկու տարբեր ծրագրեր են, բայց շատ դեպքերում վրիպազերծիչը և կոմպիլյատորը ինտեգրված են մեկ փաթեթի մեջ: