كومپيۇتېرنىڭ كېلىپ چىقىشى ۋە تارىخى تەرەققىياتى(3)
پروگراممىلار
ھازىرقى زامان كومپيۇتېرلىرىنىڭ ئۇلارنى باشقا بارلىق ماشىنىلاردىن پەرقلەندۈرۈپ تۇرىدىغان ئارتۇقچىلىقى بولسا ئۇلارنىڭ پىروگراممىلاشقا بولىدىغانلىقىدۇر. يەنى مەلۇم تىپتىكى بۇيرۇقلار (پروگراممىلار) كومپيۇتېرغا بېرىلگەندىن كىيىن ئۇ بۇ بۇيرۇقلارنى بىر تەرەپ قىلىدۇ . ۋان نېئۇمەن (von Neumannarchitecture.) لاھىيەسىدىكى ھازىرقى زامان كومپيۇتېرلىرى ، ئادەتتەكوماندىلىق پروگرامما تىلى شەكلىدىكى ماشىنا كۇدىغا ئىگە . يېزىق بىر تەرەپ قىلىش قورالى (مىكرو سوفت ۋورد )بىلەن تور كۆرگۈچ قورالى (گۇگول تور كۆرگۈچ) نىڭ پروگراممىسىنى مىسالغا ئالساق، ئەمەلىيەتتە بىر كومپيوتېر پروگراممىسى پەقەت بىر قانچە بۇيرۇقلار ياكى تېخىمۇ كۆپ بولغان مىليونلىغان بۇيرۇقلاردىن تۈزىلىشى مۇمكىن. بىر دانە تىپىك ھازىرقى زامان كومپيوتېر ىسېكۇنتىغا مىليونلىغان بۇيرۇقلارنى ئىجرا قىلالايدۇ ، ھەم ئۇزۇن يىل خىزمەت قىلسىمۇ خاتالىق ناھايىتى ئاز كۆرۈلىدۇ . مىليونلىغان بۇيرۇقلاردىن تۈزۈلىدىغان ناھايىتى زور مىقداردىكى كومپيوتېر پروگراممىسى، پروگرامما گۇرۇپىسىدىكىلەرنىڭ ئۇزۇن يىل ۋاقت سەرپ قىلىپ يېزىپ چىقىشىغا توغرا كېلىدۇ ، ئۇنىڭ ئۈستىگە بۇيرۇقتىكى فۇنكىسسىيەلەرنىڭ مۇرەككەپلىكى سەۋەبىدىن ئاندى- ساندا خاتالىقلاردىن ساقلانغىلى بولماسلىقىمۇ مۇمكىن.
پروگرامما ساقلاش شەكلىدىكى قۇرۇلما(stored-program architecture)
بۇبۆلەكتە, ئەڭ كۆپ كۆرۈلىدىغان ئىختىيارى ساقلاش ساقلىغۇچىنى (Ram) ئاساس قىلغان كومپيوتېر بۇيىچە چۈشەندۈرۈش ئېلىپ بارىمىز . كۆپۈنچە ئەھۋاللاردا كومپيوتېر بۇيرۇقلىرى ئاددى بولىدۇ . مەسلەن ، سانلارنى ئۆز- ئارا قۇشۇش ، بەزى سانلىق مەلۇماتلارنى بىرئورۇندىن يەنە بىر ئورۇنغا يۆتكەش، سىرتقى ئۈسكۈنىلەرگە ئۇچۇر يەتكۈزۈش دېگەندەك. بۇ بۇيرۇقلار كومپيۇتېرنىڭ ئىچكى ساقلىغۇچىدىن ئوقۇلىدۇ ۋە شۇ ئوقۇلغان تەرتىپ بۇيىچە ئىجرا قىلىنىدۇ . ھالبۇكى ، بەزى مەخسۇس بۇيرۇقلار، كومپيۇتېرغا پروگراممىدىن بىرقانچە قۇر ئاتلاپ ياكى بىر قانچە قۇر چېكىنىپ شۇ يېرىدىن باشلاپ ئىجرا قىلىنىشنى بۇيرۇيدۇ . بۇ "بۇيرۇق ئاتلاش"دەپ ئاتىلىدۇ. (ياكى شاخچە دەپمۇ ئاتىلىدۇ) ئۇنىڭ ئۈستىگە، بۇيرۇق ئاتلاش شەرتلىك ھالدا ئېلىپ بېرىلىشىمۇ مۇمكىن. بۇنداق بولغاندا، ئوخشاش بولمىغان بۇيرۇق تەرتىپلىرى، سىرتقى نەتىجىلەر ياكى بىر قىسىم ئالدىنقى ھېساپلاشلارنىڭ نەتىجىسىگە ئاساسەن قوللىنىلىدۇ. نۇرغۇن كومپيۇتېرلار مەلۇم بىر خىل ئاتلاش شەكلىنى ( يەنى ئۆزى ئاتلىغان ئورۇننى ھەم باشقا بىر بۇيرۇق شۇ ئورۇنغا قايتۇرىدىغان بۇيرۇقنى ئېسىدە تۇتۇۋېلىپ ئاندىن بۇيرۇق ئاتلاش) تەمىنلەپ بېرىش ئارقىلىق تارماق پروگراممىلارنى بىۋاستە قوللايدۇ. پروگراممىنىڭ ئىجرا قىلىنىشىنى كىتاب ئوقۇش بىلەن سېلىشتۇرۇش مۇمكىن . كىشىلەر كىتاپ ئوقۇغاندائادەتتە سۆزمۇ- سۆز ، قۇرمۇ- قۇر ئوقۇسىمۇ ، ئەمما بەزى ۋاقىتلاردا ئۆزى ئاللىقاچان ئوقۇپ بولغان مەزمۇنلارنى قايتا ئوقۇشى ۋە ياكى ئۆزى قىزىقمىغان مەزمۇنلاردىن ئاتلاپ ئۆتۈپ كېتىشى مۇمكىن . شۇنىڭدەك ، كومپيۇتېر بەزىدە پروگراممىنىڭ مەلۇم قىسمىغا قايتىپ بېرىپ تاكى بىر قىسىم ئىچكى شەرتلەر قانائەتلەنگەنگە قەدەر ئاشۇ بۇيرۇقلارنى قايتا-قايتا ئىجرا قىلىشى مۇمكىن . بۇ پروگراممىدىكى ئېقىمنى كونترول قىلىش دەپ ئاتىلىدۇ ، ئۇ (يەنى ئېقىمنى كونترول قىلىش) كومپيۇتېرنى ئادەمنىڭ دەخلىسىسىز مەلۇم ۋەزىپىنى قايتا-قايتا ئىجرا قىلىش ئىمكانىيىتىگە ئىگە قىلىدۇ . سېلىشتۇرۇپ ئېيتقاندا بىر كىشى ھىسابلىغۇچنىڭ بىر قانچە كونۇپكىسىنى بېسىش ئارقىلىق سانلار ئۈستىدىكى قوشۇش دىگەندەك ئارفمىتىكىلىق ھېسابلاشلارنى ئېلىپ بارالايدۇ. ۋەھالەنكى ، بىردىن 1000 غىچە بولغان بارلىق سانلارنى قوشماقچى بولغاندا ، بۇ كىشى نۇرغۇن قېتىم كۇنۇپكىلارنى بېسىشى كېرەك بولىدۇ ، بۇنىڭغا كۆپ ۋاقىت كېتىدۇ ھەم خاتالىقتىن خالىي بولغىلى بولمايدۇ . ئەمما بىر كومپيۇتېر پروگراممىسى ئاددى بولغان بىر قانچە قۇر بۇيرۇق بىلەنلا بۇ ھېسابنىڭ توغرا جاۋابىنى تاپالايدۇ . مەسلەن ، movNo. 0, sum ; set sum to 0 movNo. 1, num ; set num to 1 loop: add num , sum ; add num to sum addNo. 1, num ; add 1 to num cmp num, #1000 ; compare num to 1000 ble loop ; if num <= 1000, go back to 'loo' halt ; end of program. stop running
بۇپروگراممىنى ئىجرا قىلىشقا بۇيرۇق بىرىلگەن ھامان، كومپيۇتېر، ئادەم ئارىلاشمىغان ئەھۋال ئاستىدا قايتا قايتا ھالدا قوشۇش ۋەزىپىسىنى ئىجرا قىلىپ ۋەزىپىنى تاماملايدۇ. ھازىرقى زامان كومپيۇتېرىنىڭ بۇ ھېسابنى خاتاسىز ھالدا تاماملاپ بولىشى ئۈچۈن مىليوندىن بىر سېكونت (1000000\1)ۋاقىت كېتىدۇ .
باگلار (Bugs) ياكى خاتالىق كومپيۇتېر پروگراممىسىدىكى خاتالىقلار ئادەتتە باگلاردەپ ئاتىلىدۇ. ئۇلار بەلكىم ياخىشىنىيەتلىك بولۇپ ، ئىشلەيدىغان پروگراممىغا تەسىر يەتكۈزمەسلىكى ياكى ئاجىز تەسىركۆرسىتىشى مۇمكىن. بىراق بەزى ھاللاردا ئۇلار پروگراممىنى ھەتتا پۈتكۈل سىستېمىسنى پالەچ ھالغا چۈشۈرۈپ قويۇپ سىستىمىنى مائۇس، كونۇپكا تاختىسىنىڭ مەشغۇلاتىغا ئىنكاس قايتۇرالمايدىغان قىلىپ مەغلۇبىيەتكە ئاپىرىشى ياكى پۈتۈنلەي بۇزۇۋېتىشى مۇمكىن. باشقىچە ئېيتقاندا ، ياخشى نىيەتلىك باگلار بەزى ۋاقىتلاردا باشقىلارنى قاقتى سوقتى قىلىشنى نىشان قىلغان رەزىل شەخسلەر تەرىپىدىن تۈزۈلۈپ، پروگراممىدىكى باگلارنىڭ يوچۇقىدىن پايدىلىنىپ ،كومپيۇتېرنىڭ نورمال خىزمەت قېلىشىغا بۇزغۇنچىلىق قىلىدىغان يامان نىيەتلىك كودلار تەرىپىدىن پايدىلىنىپ كىتىلىشىمۇ مۇمكىن. باگلار ئادەتتە كومپيۇتېرنىڭ سەۋەنلىكى ھېسابلانمايدۇ. چۈنكى كومپيۇتېرلار ئاساسەن بىرىلگەن بۇيرۇقلارنىلا ئىجرا قىلىدۇ. باگلار ھەمىشە پروگراممىرلارنىڭ پروگرامما تۈزۈش جەريانىدىكى سەۋەنلىكى ياكى بىخەستىلىكىدىن كېلىپ چىقىدۇ. گەرچە تۇنجى قېتىم باگ دېگەن سۆزنى كومپيۇتېر ساھەسىگە ئىلىپ كىرگەن كىشىنىڭ زادى كىم ئىكەنلىكى توغرىسىدا بەزى دە تالاشلار بار بولسىمۇ ئەممە ئامېرىكىلىق كومپيۇتېرئالىمى ۋە شۇنداقلا تۇنجى كود ئۆرۈگۈچىنى (compiler-ئالى دەرىجىلىك پروگرامما تىلىدا يېزىلغان كودلارنى يەنى مەنبە كودلىرىنىكومپيۇتېر تونۇيدىغان ۋە ئىجرا قىلالايدىغان ئىككىلىك سىستېمىدىكى كودقا ئايلاندۇرۇش پروگراممىسى) تەتقىق قىلىپ چىققۇچى دېڭىز ئارمىيە گېنېرالى گىرەيس خوپىر (Grace Hopper)
1947- يىلى 9- ئايدا باگ دېگەن سۆزنى تۇنجى بولۇپ كومپيۇتېر تېخنىكا ساھەسىدە ئىشلەتكەن دەپ قارىلىدۇ. ئۇ بۇ سۆزنى كېپىنەك ئۆلۈكىنىڭ خارۋارد مارك ئىككى (HarvardMark II) كومپيۇتېرىنىڭ مەلۇم بۆلىكىدە قىسقا تۇتىشىشنى كەلتۈرۈپ چىقارغانلىقىنى بايقىغاندا ئىشلەتكەن.
|