![اسسەمبلەردەن Java-عا دەيىن: باعدارلامالاۋدىڭ قىسقاشا تاريxى](http://infohub.kz/uploads/thumbnail/20240119224924673_big.jpg)
اسسەمبلەردەن Java-عا دەيىن: باعدارلامالاۋدىڭ قىسقاشا تاريxى
العاشقى كومپيۋتەر 70 جىلدان استام ۋاقىت بۇرىن پايدا بولعان، سودان بەرى باعدارلامالاۋ ءتىلىنىڭ جۇزدەگەن ءتۇرى ويلاپ تابىلدى. ۇسىنىلىپ وتىرعان بۇل ماقالادا «ينتەرپرەتاتور»، «پوليمورفيزم» جانە «ينكاپسۋلياسيا» سياقتى سوزدەر بەيتانىس ءارى تۇسىنىكسىز بولىپ كەلەتىن ادامدار ءۇشىن باعدارلامالاۋ تاريxى تۋرالى مالىمەتتى قاراپايىم تىلدە جەتكىزۋگە تىرىستىق.
العاشقى باعدارلامالاۋ تىلدەرى ويلاپ تابىلعانعا دەيىن نە بولعان
1945 جىلى امەريكادا العاشقى كومپيۋتەر — ENIAC (Electronic Numerical Integrator And Computer) جاساپ شىعارىلدى. 17 مىڭ شامنان قۇراستىرىلعان كومپيۋتەردىڭ سالماعى 27 توننانى، ال قۇنى 480 000 دوللاردى قۇرادى. سالىستىرىپ كورىڭىز: قۇنى شامامەن 1000 دوللار بولعان جاڭا iPhone X قالتاڭىزعا سىيادى، ءارى ونىڭ قۋاتى 25 مىڭ ەسە ارتىق.
ول زاماندا باعدارلامالاۋ تىلدەرى ءالى بولماعان جانە ENIAC ماشينالىق كودپەن (ياعني بىرلىكتەر مەن نولدەردىڭ تىزبەگى تۇرىندە) جازىلعان بۇيرىقتار جۇيەسى ارقىلى باسقارىلاتىن. باعدارلامالاردى ماشينالىق كودتا جازۋ ۇزاق ءارى كۇردەلى بولاتىن. سۋپەرماركەتتەگى سورەلەردىڭ ادەتتە باعالار كورسەتىلەتىن جەرىندە تاۋارلاردىڭ اتى جازىلماي، تەك شتريxكودى مەن باعاسى عانا بەرىلگەن دەپ ەلەستەتىپ كورىڭىز. سوندا، مىسالى، ۋىلدىرىقتىڭ باعاسىن ءبىلۋ ءۇشىن بانكاداعى نومەردى قاراپ، ونى باعالار كورسەتكىشىمەن سالىستىرۋ كەرەك بولادى. ءبىر عانا سيفردان قاتە جىبەرىپ الساڭىز، قارا ۋىلدىرىقتى اق ناننىڭ باعاسىمەن الىپ كەتۋىڭىز مۇمكىن (ال كاسساعا كەلگەندە چەكتەگى سومانىڭ ءسىز ويلاعاننان 100 ەسە ارتىق بولىپ شىققانىن كورەسىز). وسىلايشا ماشينالىق كودتا دا ءبىر سيفردان كەتكەن قاتەنىڭ ءوزى بۇكىل باعدارلاما ەسەبىنىڭ قاتە ناتيجەسىنە الىپ كەلەتىن.
الەمدەگى ەڭ العاشقى كومپيۋتەر ENIAC
باعدارلامالاۋشىلار كومپيۋتەر جۇمىسىنداعى قاتەلەردى «باگتار» دەپ اتايدى. اعىلشىن تىلىنەن اۋدارعاندا bug «جاندىك» نەمەسە «كىشكەنە قوڭىز» دەگەندى بىلدىرەدى. بۇل ءسوز ودان بۇرىن دا قولدانىلعان — مىسالى، راديوينجەنەرلەر قۇرىلعىداعى تابىلۋى قيىن تەxنيكالىق اقاۋلاردى وسىلاي اتاعان. ءبىراق، اڭىز بويىنشا، تاريxتاعى ەڭ ءبىرىنشى كومپيۋتەرلىك باگ شىنىمەن دە جاندىك بولعان! 1947 جىلى گارۆاردتا گرەيس حوپپەر ەسىمدى باعدارلامالاۋشى Mark II سۋپەركومپيۋتەرىنىڭ جۇمىسىنداعى قاتەنى ىزدەپ ءجۇرىپ، كومپيۋتەر ىشىنە ۇشىپ كىرگەن ءارى جۇيەنى بۇزعان كۇيە كوبەلەكتى تاۋىپ الادى. سكوچتىڭ كومەگىمەن ول كۇيە كوبەلەكتى جۇمىس جۋرنالىنا جابىستىرىپ، «ءىس جۇزىندە تۇڭعىش رەت تابىلعان باگ» دەگەن جازبا قالدىرادى.
اسسەمبلەر — ادامنىڭ ءتىلىن ماشينالىق تىلگە اۋدارۋشى
كومپيۋتەر باسقارۋدى جەڭىلدەتۋدىڭ جولدارى كەمبريدج ۋنيۆەرسيتەتىندە پروفەسسور موريس ۋيلكس EDSAC ەلەكتروندى-ەسەپتەۋىش ماشيناسىن قۇرۋ جۇمىسىن باستاعان كەزدە قاراستىرىلا باستادى. كەيىن ءدال سول ماشينا ءۇشىن العاشقى كومپيۋتەرلىك ويىن «Tic-tac-toe» ويلاپ تابىلعان.
«Tic-tac-toe» ويىنى
ءبىراق، ۋيلكستىڭ باستى سىڭىرگەن ەڭبەگى بۇل ەمەس، ارينە. ونىڭ ەڭبەگى 1949 جىلى قۇرعان باعدارلاماسىندا. سول باعدارلاما كوماندالاردى ادام ءۇشىن ىڭعايلى فورمادا جازۋعا مۇمكىندىك بەرەتىن جانە ولاردى ماشينالىق كودقا ءوزى اۋداراتىن.
باعدارلامانى ۋيلكس جيناقتاۋشى جۇيە نەمەسە «اسسەمبلەر» دەپ اتايتىن (اعىلشىنشا «assemble» — جيناۋ/جيناقتاۋ). ەكىلىك كودتىڭ ورنىنا اسسەمبلەر تىلىندە ارىپتەر، سيفرلار نەمەسە بۇيرىقتىڭ ءمان-ماعىناسىن اشاتىن قىسقارتۋلار قولدانىلاتىن. مىسالى، «Mov Ax، 6» بۇيرىعى اسسەمبلەر تىلىندە «„اح“ جادى ۇياشىعىنا 6 سانىن جىلجىت» دەگەندى بىلدىرەتىن. نولدەر مەن بىرلىكتەردىڭ ۇزىن قاتارلارىنان گورى وسىنداي بۇيرىقتاردى ەستە ساقتاۋ الدەقايدا جەڭىل ەمەس پە.
سوندا دا اسسەمبلەر ءتىلىنىڭ ەداۋىر كەمشىلىكتەرى بولاتىن. كودتار ءالى دە كومپيۋتەردىڭ بۇيرىقتار جۇيەسىنە دالمە-دال سايكەس كەلۋى ءتيىس ەدى جانە ءاربىر ناقتى ەسەپتەۋىش ماشيناعا ءوز اسسەمبلەر ءتىلى قاجەت بولاتىن. مۇنداي تىلدەر ماشيناعا تاۋەلدى نەمەسە تومەن دەڭگەيدەگى تىلدەر دەپ اتالادى.
ماشينادان تاۋەلسىز تىلدەردىڭ العاشقى تۇرلەرى
العاشقى جوعارى دەڭگەيدەگى ءتىل 1957 جىلى امەريكادا پايدا بولدى. ول فورتران (FORmula TRANslator) دەپ اتالاتىن جانە باعدارلامانى ناقتى كومپيۋتەردىڭ قۇرىلىمىن ەسكەرمەي-اق جازۋعا مۇمكىندىك بەرەتىن. كود «تاسىمالداناتىن» بولدى — ەندى ءبىر عانا باعدارلامانى ءار ءتۇرلى قۇرىلعىدا قوسا الۋ مۇمكىندىگى تۋدى.
بۇعان كومپيلياتورلار دەپ اتالاتىن ارنايى باعدارلامالاردىڭ ارقاسىندا قول جەتكىزىلدى. ولار فورترانداعى ءماتىندى ماشينالىق كودقا اينالدىراتىن جانە كومپيۋتەردىڭ بۇيرىقتار جۇيەسى مەن سول كود اراسىنداعى سايكەستىكتەردى وزدەرى ورناتاتىن.
IBM EOS-704 EDPM ءۇشىن جاسالعان Fortran اۆتوماتتى كودتاۋ جۇيەسىنىڭ مۇقاباسى (Fortran جايلى العاشقى كىتاپ بولىپ سانالادى)
كودتىڭ تاسىمالدانا الۋى بۇكىل الەمدەگى باعدارلامالاۋشىلاردىڭ كۇشىن بىرىكتىرىپ، باعدارلامالاردى ساتۋعا مۇمكىندىك بەردى. ەندى كۆادراتتىق تەڭدەۋدى شەشۋ نەمەسە كوسينۋستى ەسەپتەۋ ءۇشىن جاڭا باعدارلاما جاساماي-اق، باسقا باعدارلامالاۋشىلارمەن جازىلىپ قويىلعان باعدارلامانى قولدانا الاتىن بولدى. وسىلايشا ناقتى ءبىر ماسەلەلەر توبىن شەشەتىن باعدارلامالار جيىنتىعى — «كىتاپxانالار» پايدا بولدى. باعدارلامالاۋشىلاردىڭ جازعان كىتاپxانالارىن ساتىپ الۋشى كومپانيالار سول كىتاپxانالاردى وزدەرىنىڭ كۇردەلى ەسەپتەۋلەرىن جۇرگىزۋدە (مىسالى، زىمىراننىڭ ۇشۋ تراەكتورياسىن ەسەپتەۋدە) قولداناتىن.
فورتران عىلىمي-تەxنيكالىق ماتەماتيكالىق ەسەپتەۋلەرگە باعدارلانعان
بۇگىندە وسى تىلدەگى ماتەماتيكالىق كىتاپxانالاردىڭ كوپتىگى سونداي، ءتىپتى عالىمدار اراسىندا مىناداي قالجىڭ ءسوز تاراعان: «كەز كەلگەن ماتەماتيكالىق ەسەپ فورتراندا الدەقاشان شەشىلىپ قويىلعان». سونداي-اق، فورتراننىڭ تابىستى بولعانى سونشالىق، مونوپوليانى بولدىرماۋ ماقساتىندا ەۋروپادا ALGOL (ALGOrythmic Language) دەپ اتالعان ءوز جوعارى دەڭگەيدەگى باعدارلامالاۋ ءتىلى قۇراستىرىلدى.
قۇرىلىمدىق باعدارلامالاۋ جانە سي ءتىلى
جىل وتكەن سايىن باعدارلامالار كۇردەلەنە بەردى، سايكەسىنشە قاتەلەر سانى مەن ولاردى انىقتاپ، دۇرىستاۋ ۋاقىتى ارتا ءتۇستى. باعدارلامالار كودىن ارتىق قاتەلەردى بولدىرمايتىنداي جانە سول قاتەلەردى وڭاي تاباتىنداي ەتىپ ۇيىمداستىرۋ قاجەتتىلىگى تۋدى. وسىلايشا 70ء-ىنشى جىلدارى قۇرىلىمدىق باعدارلامالاۋ پايدا بولدى.
قۇرىلىمدىق باعدارلامالاۋ يدەياسى — باعدارلامانى بلوكتار تىزبەگىنەن قۇرۋدا ەدى. باعدارلامالاۋشى بلوكتارمەن كەزەك-كەزەگىمەن جۇمىس جاسايدى جانە ءبارى ويداعىداي جۇمىس ىستەيتىنىنە كوزى جەتپەيىنشە ارى قاراي جالعاستىرمايدى. بلوكتاردى قۇرۋ ءۇشىن ءۇش بازالىق كونسترۋكسيا قولدانىلادى: تىزبەكتىلىك، تارماقتانۋ جانە سيكل.
تىزبەكتىلىك بىرىنەن سوڭ ءبىرى تۇرعان نۇسقاۋلىقتار ارقىلى اۆتوماتتى تۇردە جۇزەگە اسىرىلادى: «الدىمەن كوبەيتۋ مەن ءبولۋدى، سوسىن قوسۋ مەن ازايتۋدى ورىندا». تارماقتانۋ شارتتارمەن جۇمىس جاساۋعا كومەكتەسەدى: «ەگەر ديسكريمينانت نولدەن ارتىق بولسا، شەشىمدەرىن ىزدە، ال ەگەر كەم بولسا، وندا شەشىمدەرى جوق دەپ جاز». سيكل شارتتىڭ ورىندالۋى بارىسىندا ىس-ارەكەتتىڭ بىرنەشە رەت قايتالانۋىنا مۇمكىندىك بەرەدى: «سەبەت ءىشى تولعانشا، جيدەكتى اعاشتان جۇلىپ ال دا، سەبەتكە سال».
قۇرىلىمدىق باعدارلامالاۋ كەزدەرىندە سي ءتىلى پايدا بولدى. ونى امەريكاندىق دەننيس ريچي ويلاپ تاپتى جانە 1999 جىلى تەxنولوگيالار مەن يننوۆاسيالار اياسىنداعى جەتىستىگى ءۇشىن اقش ۇلتتىق مەدالىن يەلەندى. ءتىل ەسكى بي تىلىنە نەگىزدەلگەن، سوندىقتان ونى اعىلشىن ءالفاۆيتىنىڭ كەلەسى ارپىمەن سي دەپ اتادى. سي امبەباپ ءارى وتە جىلدام بولاتىن، سوندىقتان ول بىردەن كەڭىنەن تارادى جانە C++، C#، Objective C، Java سەكىلدى قازىرگى زامانعى تىلدەردىڭ نەگىزىن قالادى.
سي باعدارلامالاۋ ءتىلىن جاساپ شىعارعان كەن تومپسون (سول جاعىندا) جانە دەننيس ريچي (وڭ جاعىندا)
نىسانعا باعىتتالعان باعدارلامالاۋ جانە Java ءتىلى
باعدارلامالار بارعان سايىن كۇردەلەنە بەردى جانە ءبىر عانا جوبانى ازىرلەۋ جۇمىسىن ونداعان ادام جاساي الاتىن. ءار ءتۇرلى باعدارلامالاۋشىلار جازعان كودتى بىرىكتىرۋدىڭ امبەباپ جولىن تابۋ قاجەت بولدى. بۇل ماسەلەنى وبەكتىگە باعىتتالعان باعدارلامالاۋ (نبب) شەشىپ بەردى. اتالعان باعدارلامالاۋ مالىمەتتەردىڭ ابستراكسياسى اينالاسىندا قۇرىلعان. بۇل دەگەنىمىز، باعدارلامانىڭ بازالىق ەلەمەنتى رەتىندە ابستراكتىلى «وبەكت» الىنادى. كەز كەلگەن نارسە وبەكت بولا الادى — كەمپىرقوساق، كۆادراتتىق تەڭدەۋ، ماليەۆيچتىڭ «قارا كۆادراتى». ءار وبەكتىنىڭ سيپاتتامالار جيىنتىعى بولادى. مىسالى، كەمپىرقوساقتا بۇل ونىڭ ءيىنىنىڭ ۇزىندىعى، كورىنەتىن تۇستەرىنىڭ قانىقتىلىعى مەن سانى. سيپاتتامالار جيىنتىعى بىردەي وبەكتىلەر كلاستارعا بىرىكتىرىلەدى. ەگەر «ءۇي» كلاسىن الىپ، ۇزىندىق، بيىكتىك، قاباتتار سانى سياقتى پارامەترلەردى ەنگىزسەك، ءوزىڭىز تۇراتىن ناقتى ءۇي — وبەكت شىعادى. ونىڭ ۇستىنە، جۇمىس ىستەۋ ءپرينسيپى ءبىر جانە ناقتى قانداي مالىمەتتەرمەن جۇمىس ىستەپ جاتقانىڭىز ماڭىزدى ەمەس. كلاسس وبەكتىلەرىمەن قۇرىلىمىنا جەتە ءمان بەرمەي-اق جۇمىس ىستەي بەرۋگە بولادى: ءۇيدى قۇلاتۋ ءۇشىن ونىڭ قانشا قاباتى مەن بولمەسى بار ەكەندىگىن ءبىلۋ مىندەت ەمەس.
العاشقى كەڭىنەن تاراعان نىسانعا باعىتتالعان ءتىل Smalltalk بولدى. ونى 1970ء-ىنشى جىلدارى Xerox كورپوراسياسىنىڭ الان كەي باسقارعان عالىمدار توبى قۇراستىردى. بۇل امەريكاندىق عالىمدى نبب-نىڭ نەگىزىن قالاۋشىلاردىڭ ءبىرى دەپ اتايدى —وسى جۇمىسى ءۇشىن ول تيۋرينگ سىيلىعىن يەلەندى. كەيىنىرەك، سي ءتىلىن نەگىزگە الا وتىرىپ، دانيالىق ءبورن ستراۋسترۋپ س++ ويلاپ تاپتى. ءقازىر بۇل ءتىلدى جوعارى جۇكتەمەلى (جۇكتەمەسى سەكۋندىنا 10 مىڭ پايدالانۋشىدان باستالاتىن) جۇيەلەردى قۇرۋ ءۇشىن قولدانادى.
الان كەي نىسانعا باعىتتالعان باعدارلامالاۋدىڭ نەگىزىن قالاۋشى بولىپ سانالادى
1995 جىلى سول بۇرىنعى سي نەگىزىندە Java ءتىلى پايدا بولدى. ول س++ تىلىندەگى كوپتەگەن قيىندىقتاردى اينالىپ ءوتتى جانە ەداۋىر تۇسىنىكتىرەك بولدى. مىسالى، س++ تىلىندە باعدارلاما جادىسىنىڭ تولىپ كەتۋىن مۇقيات قاداعالاۋ كەرەك. ەگەر ءسىز كوپ مالىمەتتەرمەن جۇمىس جاساپ، كەيىن ولاردى قولدانۋدى توقتاتىپ، ولاردىڭ بارلىق سىلتەمەسىن وشىرسەڭىز — مالىمەتتەر باعدارلاما جادىسىندا ساقتالىپ، قاجەتسىز بولىپ جاتادى. Java-دا مۇنداي جادىنى تازالاۋمەن «قوقىستى اۆتوماتتى جيناۋشى» اينالىسادى. ءبىراق ءتىلدىڭ باستى ايىرماشىلىعى باعدارلامالاردى ىسكە قوسۋ ادىسىندە بولدى.
باعدارلامالار Java-دا كومپيلياتور باعدارلاماسى ارقىلى ارنايى بايت-كودقا اينالادى. ونى JVM (Java Virtual Machine) — Java ۆيرتۋالدى ماشيناسى ورناتىلعان كەز كەلگەن قۇرىلعىدا ىسكە قوسۋعا بولادى. بۇرىن ءار جۇيە ءۇشىن باعدارلامانىڭ ءبىر ءماتىنىن كومپيلياتور ارقىلى بىرنەشە رەت وتكىزۋ قاجەت بولدى. Java-دا كود كومپيليرياتوردان ءبىر رەت قانا وتكىزىلەدى جانە بارلىق جەردە جۇمىس ىستەي بەرەدى — ونىڭ كومپيۋتەرلەرمەن بايلانىسى ءۇشىن JVM جاۋاپ بەرەدى.
كودتىڭ تاسىمالدانۋى تۇرعىسىنان قاراعاندا بۇل ريەۆوليۋسيالىق ءتاسىل بولدى. باعدارلامالار كروسسپلاتفورمالىققا اينالدى — بۇل دەگەنىمىز، JVMء-ى بار كومپيۋتەر، توڭازىتقىش، كوفەماشينا جانە لەگو روبوتى ءۇشىن ءبىر عانا كودتى جازۋعا بولادى، ويتكەنى JVM ارقاسىندا ولاردىڭ بارلىعى دا سول كودتى تۇسىنە الادى.
ءقازىر Java — Android-قوسىمشالارىندا جانە ۇلكەن كولەمدى مالىمەتتەرمەن (big data) جۇمىس جاساۋدا قولدانىلاتىن باستى ءتىل. ارينە، باعدارلامالاۋ تاريxى Java-مەن اياقتالمايدى. ءبىراق جاڭا تىلدەردىڭ كوپشىلىگى تار شەڭبەرلى ماسەلەلەر اياسىندا جوبالانادى، سوندىقتان ولاردى ءوزارا سالىستىرۋ قيىن. مىسالعا، Swift ءتىلىن Apple كومپانياسى ارنايى iOS پەن Mac قوسىمشالارى ءۇشىن قۇراستىرعان، ال Julia ءتىلى ۇلكەن كولەمدى ەسەپتەۋلەرمەن جۇمىس ىستەۋ كەزىندەگى جوعارى ونىمدىلىكتى ساقتاۋ ماقساتىندا پايدا بولعان.