Debugger vs Compiler
Жалпысынан компилятор – бул баштапкы тил деп аталган бир тилде жазылган программаны окуп, аны башка тилге которуучу компьютердик программа. Адаттагыдай, булак тили C++ сыяктуу жогорку деңгээлдеги тил жана максаттуу тил ассемблер тили сыяктуу төмөнкү деңгээлдеги тил болгон. Debugger башка программалардагы мүчүлүштүктөрдү/каталарды табуу үчүн колдонулган компьютердик программа. Мүчүлүштүктөрдү оңдоочу программистке программанын аткарылышын бир чекитте токтотууга жана ошол учурда өзгөрмө маанилери сыяктуу мүнөздөмөлөрдү текшерүүгө мүмкүндүк берет.
Мүчүлүштүктөрдү оңдоочу деген эмне?
Debugger – бул башка программалардагы мүчүлүштүктөрдү/каталарды табуу үчүн колдонулган компьютердик программа. Debugger программаны аткарууга жана программанын аткарылышынын ар бир кадамын текшерүүгө мүмкүндүк берет. Ал ошондой эле кандайдыр бир учурда программанын аткарылышын токтотууга жана кээ бир өзгөрмө маанилерди өзгөртүүгө жана андан кийин аткарууну улантууга мүмкүндүк берет. Бул мүмкүнчүлүктөрдүн баары программистке анын программасы туура иштеп жатканын текшерүүгө жана коддогу мүчүлүштүктөрдү аныктоого жардам берүү үчүн берилген. Мүчүлүштүктөрдү оңдоочулардын көбү программаны этап-этабы менен аткаруу мүмкүнчүлүгүн камсыздайт (бир кадам деп да аталат), үзгүлтүккө учуроо чекин берүү жана өзгөрүлмө маанилерди көзөмөлдөө аркылуу программанын учурдагы абалын текшерүү үчүн тыныгуу. Кээ бир өркүндөтүлгөн мүчүлүштүктөрдү оңдоочулар программистке коддун бузулушуна же логикалык катага алып келген жерди өткөрүп жиберүүгө жана башка жерден аткарууну улантууга мүмкүндүк берет. Таанымал мүчүлүштүктөрдү оңдоочулардын кээ бирлери GNU Debugger (GDB), Microsoft Visual Studio Debugger ж.б.
Компилятор деген эмне?
Компилятор – бул баштапкы тил деп аталган бир тилде жазылган программаны окуп, аны башка тилге которуучу компьютердик программа. Көбүнчө баштапкы тил жогорку деңгээлдеги тил, ал эми максаттуу тил төмөнкү деңгээлдеги тил болуп саналат. Ошентип, жалпысынан компиляторлорду бир тилден экинчи тилге которгон котормочулар катары кароого болот. Мындан тышкары, компиляторлор кодду кээ бир оптималдаштырууларды аткарышат. Кадимки компилятор бир нече негизги компоненттерден турат. Биринчи компонент сканер (ошондой эле лексикалык анализатор деп аталат). Сканер программаны окуп, аны бир катар токендерге айлантат. Экинчи компонент талдоочу болуп саналат. Ал токендердин саптарын программанын синтаксистик түзүлүшүн камтыган талдоо дарагына (же абстракттуу синтаксис дарагына) айлантат. Кийинки компонент синтаксистик түзүлүштүн семантикасын чечмелөөчү семантикалык процедуралар. Андан кийин кодду оптималдаштыруу жана акыркы кодду түзүү.
Debugger менен Compiler ортосунда кандай айырма бар?
Debugger – бул башка программалардагы мүчүлүштүктөрдү/каталарды табуу үчүн колдонулган компьютер программасы, ал эми компилятор – бир тилде жазылган программаны окуп, аны башка тилге которгон компьютер программасы. Компиляторлор ошондой эле синтаксис каталарын жана башка компиляция убактысы каталарын аныктоо мүмкүнчүлүгүнө ээ, бирок мүчүлүштүктөрдү оңдоочулар программалардагы мүчүлүштүктөрдү аныктоо үчүн көбүрөөк мүмкүнчүлүктөрдү (мисалы, эстутумду көзөмөлдөө) камсыздайт. Бул экөө эки башка программа, бирок көбүнчө мүчүлүштүктөрдү оңдоочу жана компилятор бир пакетке бириктирилет.