JavaRush /جاوا بلاگ /Random-SD /پروگرامنگ ٻولين جي سطح

پروگرامنگ ٻولين جي سطح

گروپ ۾ شايع ٿيل

تعارف

مختلف پروگرامنگ ٻوليون ڇا آهن؟ انهن ۾ ڪهڙي قسم جا تصور سمايل آهن؟ انهن ڪيئن ترقي ڪئي؟ هن آرٽيڪل ۾، اسان پروگرامنگ ٻولين جي قسمن تي ٻڌل سطح تي ٻڌل ڪنداسين - مشين ڪوڊ (گهٽ سطح، ڪمپيوٽر جي هارڊويئر جي ويجهو) ٻولين جهڙوڪ جاوا يا سي # (اعلي سطح) تائين. پروگرام جي ٽيڪسٽ لسٽنگ ۾ جيتريون گھٽ تبديليون زيرو ۽ ون جي سيٽ ۾ تبديل ٿي وينديون آهن، اوتري گهٽ سطح.
پروگرامنگ ٻولين جي سطح - 1
اڳتي هلي اسين ڏسنداسين:
  1. گھٽ-سطح ٻوليون (مشين ڪوڊ ۽ اسيمبلي)
  2. وچولي سطح (سي، فورٽران….)
  3. اعليٰ سطح (C++, Java, Python, Ruby, JavaScript...)
سطح پڻ بيان ڪري ٿي ته مستقبل جي پروگرام جي لسٽنگ کي ڪيترو تفصيل سان عمل ڪرڻ جي ضرورت آهي. انسانن لاءِ اهو عمل ڪيترو سادو آهي؟ ڪنهن به ٻوليءَ جي سطح کي ان جي صلاحيتن جو هڪ واضح اشارو نه سمجهيو وڃي. هڪ پروگرامنگ ٻولي هڪ اوزار آهي جيڪو هڪ علائقي ۾ اثرائتو آهي ۽ ٻين ۾ گهٽ مفيد آهي. ڳنڍيندڙ ۽ ڪاريگر ٻئي ڪاٺ سان ڪم ڪن ٿا. پهرين ۾ هڪ مکيه اوزار آهي - chisels جو هڪ سيٽ، ٻيو - هڪ محور. تنهن هوندي به، هڪ ڪارپينٽر هڪ نقشبندي ڪابينا کي وڌيڪ خوبصورت بڻائيندو، ۽ هڪ ڪارپينٽر هڪ گهر تيزيء سان ٺاهيندو. جيتوڻيڪ هر هڪ ٻئي جو ڪم ڪرڻ جي قابل آهي، اهي اهو ڪم تمام گهٽ موثر طريقي سان ڪندا. ڪمپيوٽر ۾ مختلف ڊيٽا کي ظاھر ڪيو ويو آھي ھڪڙي سيٽ جي صفر ۽ ھڪڙي جي طور تي. ان جي پروسيسنگ لاءِ ڪنٽرول ڪمانڊ ساڳيا ڊيٽا آھن جن ۾ ھدايتون شامل آھن جيڪي ضروري معلومات جي جڳھ جو تعين ڪن ٿيون ۽ ترميم جو طريقو.

مشيني ٻوليون (سڀ کان گھٽ سطح)

اسان کي سافٽ ويئر واري علائقي کان هارڊويئر واري علائقي تائين مختصر دورو ڪرڻو پوندو. اچو ته ان کي هڪ سادي شڪل ۾ ڏسو. پروسيسر ڪمپيوٽر جو بنيادي "دماغ" آهي. مدر بورڊ جنهن تي ان کي انسٽال ڪيو ويو آهي ان ۾ ڪنٽرولرز شامل آهن جيڪي استعمال ڪيا ويندا آهن ٻين ڊوائيسز سان رابطو ڪرڻ لاءِ بس ذريعي (ڪميونيڪيشن لاءِ ڊيٽا چينلز).
پروگرامنگ ٻولين جي سطح - 2
ڪجهه ڪم تيز رفتار تي (لال تير): پروسيسر ميموري مان ڪمانڊ ڪڍندو آهي ۽ ڊيٽا کي هٿي وٺرائيندو آهي، وڊيو ڪارڊ، خاص طور تي 3D گيمز ۾، مانيٽر اسڪرين تي تصوير ٺاهڻ لاءِ وڏي مقدار ۾ بناوت، شڪلون، پکسل ڪوآرڊينيٽس ۽ ٻيون شيون استعمال ڪري ٿو. . ٻيا (معلومات جي بدلي جي رفتار ۾ حدن جي ڪري) اهڙن اعلي اشارن جي ضرورت ناهي. مختلف اندروني ۽ بيروني ڊوائيسز ڊاگرام ۾ سائي تير سان ڳنڍيل آهن.

پروسيسر جي اندروني دنيا

سڀ پروسيسر حڪم بائنري فارم ۾ عمل ڪرڻ لاء ميموري کان ايندا آهن. فارميٽ، نمبر، هدايتن جو ذيلي سيٽ ان جي فن تعمير تي منحصر آهي. انھن مان گھڻا ھڪ ٻئي سان لاتعلق آھن ۽ مختلف نظرين جي پيروي ڪندا آھن. ۽ پڻ ڪمانڊ جي قسم جو دارومدار موڊ (8/16/32... بٽ ڊيپٿ) ۽ ڊيٽا ماخذ (ميموري، رجسٽر، اسٽيڪ...) تي آهي جنهن سان پروسيسر ڪم ڪري ٿو. ساڳيو عمل مختلف هدايتن جي نمائندگي ڪري سگهجي ٿو. پروسيسر کي ٻه آپريشنز شامل ڪرڻ لاءِ هدايتون آهن (ADD X,Y) ۽ هڪ کي شامل ڪرڻ لاءِ مخصوص ڪيل (INC X). هڪ آپرينڊ ۾ ٽرپل شامل ڪرڻ ADD X,3 جي طور تي ڪري سگهجي ٿو يا INC X کي ٽي ڀيرا ڪال ڪندي. ۽، مختلف پروسيسرز لاءِ، اڳڪٿي ڪرڻ ناممڪن آهي ته انهن مان ڪهڙو طريقو رفتار يا ميموري فوٽ پرنٽ جي لحاظ کان بهتر هوندو. سهولت لاء، بائنري معلومات هيڪساڊيڪل فارم ۾ لکيل آهي. اچو ته هڪ واقف پروگرام جو حصو سمجهون (سي ٻولي، جنهن جو نحو جاوا سان ملندڙ جلندڙ آهي)
int func() {
    int i = getData("7") ;
    return ++i;
   ...
}
ڪوڊ جيڪو ساڳيو عمل لاڳو ڪري ٿو پروسيسر لاءِ هدايتون جي ترتيب جي صورت ۾: ... 48 83 ec 08 bf bc 05 20 00 31 c0 e8 e8 fe ff ff 48 83 c4 08 83 c0 01 ... هي اهو آهي جيڪو Intel پروسيسر لاءِ گهٽ-سطح پروگرامنگ ٻولي اصل ۾ ڏسڻ جهڙو آهي. ھڪڙو ٽڪرو جيڪو ھڪڙي طريقي کي ھڪڙي دليل سان سڏيندو آھي ۽ ھڪڙو نتيجو وڌائيندو آھي. هي مشيني ٻولي (ڪوڊ) آهي، جيڪا سڌي طرح منتقل ڪئي ويندي آهي، بغير ڪنهن تبديلي جي، عمل لاءِ پروسيسر ڏانهن. فائدا:
  • اسان مڪمل طور تي صورتحال جا ماهر آهيون، اسان وٽ پروسيسر ۽ ڪمپيوٽر هارڊويئر استعمال ڪرڻ جا وسيع امڪان آهن.
  • ڪوڊ کي ترتيب ڏيڻ ۽ بهتر ڪرڻ جا سڀ اختيار اسان وٽ موجود آهن.
مائنس:
  • اهو ضروري آهي ته پروسيسرز جي ڪم جي وسيع ڄاڻ حاصل ڪرڻ ۽ ڪوڊ تي عمل ڪرڻ وقت هارڊويئر فيڪٽرز جي وڏي تعداد ۾ رکڻ گهرجي.
  • پروگرام ٺاهڻ جيڪي ڏٺل مثال کان ٿورو وڌيڪ پيچيده آهن ڪوڊ لکڻ ۽ ان کي ڊيبگ ڪرڻ ۾ خرچ ٿيل وقت ۾ تيز اضافو ٿئي ٿو.
  • پليٽ فارم انحصار: هڪ پروسيسر لاءِ ٺاهيل پروگرام عام طور تي ٻين تي ڪم نه ڪندو. اهو ممڪن آهي ته هن پروسيسر لاء، ان جي آپريشن جي ٻين طريقن ۾، ڪوڊ ايڊيٽنگ جي ضرورت پوندي.
ڪمپيوٽر جي شروعات ۾ مشيني ڪوڊ وڏي پيماني تي استعمال ڪيا ويا؛ ڪمپيوٽر جي اڳين جي دور ۾ پروگرامنگ جا ٻيا طريقا نه هئا. في الحال، اهي ڪڏهن ڪڏهن انجنيئرن پاران مائڪرو اليڪٽرانڪس جي شعبي ۾ استعمال ٿيندا آهن جڏهن پروسيسرز جي ترقي يا گهٽ سطح جي جانچ.

اسيمبلي ٻولي (گهٽ سطح)

ڪمپيوٽر جي برعڪس، توهان ۽ مان معلومات کي ڊجيٽل فارم جي بجاءِ ٽيڪسٽ/سيمينٽڪ فارم ۾ بهتر سمجهون ٿا. توهان آساني سان پنهنجي سمارٽ فون تي 50 رابطن جا نالا رکي سگهو ٿا، پر توهان ممڪن ناهي ته انهن سان لاڳاپيل فون نمبر دل سان لکي سگهندا. اهو ساڳيو پروگرامنگ سان آهي. اسان ٽن بنيادي قدم کڻڻ سان قسم جي ڏاڪڻ کي مٿي ڪريون ٿا:
  • اچو ته ھڪڙي علامتي ھدايت کي ڊجيٽل پروسيسر جي ھدايتن جي گروپن سان ڳنڍيون جيڪي لاڳاپيل ڪارناما انجام ڏين.
  • اچو ته الڳ الڳ پروسيسر جي هدايتن جي دليلن کي اجاگر ڪريون.
  • اچو ته ميموري علائقن، متغير، ۽ انفرادي حڪمن جي جڳھ کي نالو ڏيڻ جي صلاحيت متعارف ڪرايو.
اچو ته اڳئين پروگرام جا ٽڪرا مشين ڪوڊ (مرڪز) ۽ اسيمبليءَ جي ٻوليءَ ۾ (ساڄي):
2004b0     48 83 ec 08      sub    $0x8,%rsp
2004b4     bf bc 05 20 00   mov    $0x2005bc,%edi
2004b9     31 c0            xor    %eax,%eax
2004bb     e8 e8 fe ff ff   callq  getData
2004c0     48 83 c4 08      add    $0x8,%rsp
2004c4     83 c0 01         add    $0x1,%eax
جئين توهان ڏسي سگهو ٿا، هڪ پروگرام لکڻ جو عمل آسان ڪيو ويو آهي: ڊجيٽل ڪمانڊ ويلز پيدا ڪرڻ، منتقلي جي ڊيگهه کي ڳڻڻ، ميموري ۾ ڊيٽا کي پنهنجي سيلز ۾ ورهائڻ، ۽ پروسيسر جي ٻين خاصيتن لاء حوالن جي ڪتابن کي استعمال ڪرڻ جي ڪا ضرورت ناهي. اسان علامتي حڪمن جي هڪ سيٽ مان گهربل عمل ۽ عمل جي منطق لاءِ ضروري دليلن کي بيان ڪريون ٿا، ۽ پوءِ مترجم پروگرام ٽيڪسٽ فائل کي زيرو جي سيٽ ۾ ترجمو ڪري ٿو ۽ پروسيسر کي سمجھڻ لائق. فائدا:
  • ڪوڊ لکڻ ۽ تبديل ڪرڻ جي عمل کي آسان ڪيو ويو آهي.
  • سڀني هارڊويئر وسيلن تي ڪنٽرول برقرار رکيو ويو.
  • اهو نسبتا آسان آهي پروگرام کي پورٽ ڪرڻ لاء ٻين پليٽ فارمن تي، پر انهن کي تبديل ڪرڻ جي ضرورت آهي هارڊويئر مطابقت جي لحاظ سان.
مائنس:
  • اسيمبليءَ جي ٻولي گھٽ سطح جي پروگرامنگ ٻولي آھي. ڪوڊ جي ننڍن حصن کي ٺاهڻ ڏکيو آهي. ان کان سواء، ان کي به اڪائونٽ ۾ سامان جي مخصوص آپريشن وٺڻ ضروري آهي.
  • پليٽ فارم تي انحصار.
سڀ کان وڌيڪ مشهور جاوا ڊيمو مثال:
public static void main(String[] args) {
    System.out.println("Hello World!");
}
ڏسندو (NASM نحو، ونڊوز API ۽ kernel32.lib استعمال ڪندي) هن ريت:
global _main
	extern  _GetStdHandle@4
	extern  _WriteFile@20
	extern  _ExitProcess@4

	section .text
_main:
	; DWORD  bytes;
	mov 	ebp, esp
	sub 	esp, 4

	; hStdOut = GetstdHandle( STD_OUTPUT_HANDLE)
	push	-11
	call	_GetStdHandle@4
	mov 	ebx, eax

	; WriteFile( hstdOut, message, length(message), &bytes, 0);
    push	0
	lea 	eax, [ebp-4]
	push	eax
	push	(message_end - message)
	push	message
	push	ebx
	call	_WriteFile@20

	; ExitProcess(0)
	push	0
	call	_ExitProcess@4

	; never here
	hlt
message:
	db  	'Hello, World', 10
message_end:
مشين ڪوڊ وانگر، اسيمبليء جي ٻولي گهڻو ڪري انجنيئرز ۽ سسٽم پروگرامرز پاران استعمال ڪيو ويندو آهي. اهو آپريٽنگ سسٽم ڪنيل جي هارڊويئر-انحصار حصن کي لکڻ لاءِ استعمال ڪيو ويندو آهي جيڪي وقت جي لحاظ کان اهم آهن يا مختلف پردي ڊوائيسز لاءِ ڊرائيورن جي عمل درآمد جي خاصيتن لاءِ نازڪ آهن. پر تازو اهي ان کي گهٽ ۽ گهٽ استعمال ڪري رهيا آهن، ڇاڪاڻ ته ان جو استعمال ٻين پليٽ فارمن تي پروگرامن جي پورٽبلٽي کي تمام گهڻو گهٽائي ٿو. ڪڏهن ڪڏهن اهي ڌار ڪرڻ واري عمل کي استعمال ڪندا آهن - اهي ڊجيٽل ڪوڊس مان هڪ پروگرام جي اسيمبلي لسٽ ٺاهي رهيا آهن ته جيئن ننڍن ٽڪرن تي عمل ڪرڻ جي منطق کي پارس ڪن. نادر ڪيسن ۾، جيڪڏهن اصل اعليٰ سطحي ڪوڊ موجود نه آهي: انهن کي منهن ڏيڻ لاءِ وائرس جو تجزيو يا سورس ڪوڊ جو نقصان. اسيمبليءَ جي ٻولي کي پھريون/ٻيون نسل سمجھيو ويندو آھي (اسين اسمبلر جي اڀرڻ کان اڳ الڳ الڳ pseudocodes تي غور نه ڪنداسين ۽ علامتي حڪمن کان انھن جي فرق کي). مان ڊيمو منظر ۾ اسمبلر جي استعمال کي اجاگر ڪرڻ چاهيان ٿو: فن، رياضيات ۽ گهٽ-سطح ڪوڊنگ جو هڪ فيوزن، انهن جي تخليق ڪندڙن جي فني خيالن کي پروگرامن جي صورت ۾ پيش ڪندي جيڪي وسيلن جي حدن سان وڊيو ڪلپس ٺاهي رهيا آهن. گهڻو ڪري پروگرام جي ڪل سائيز ۽ ڊيٽا فائل 256 بائيٽ کان وڌيڪ نه هجڻ گهرجي (4/64 ڪلوبائيٽ فارميٽ پڻ مشهور آهي). هتي 4 KB پروگرام جو هڪ مثال آهي:

گروپ سي / فورٽران ٻوليون (وچولي / اعلي سطح)

ڪمپيوٽر جي ٽيڪنالاجي جي صلاحيتن جي ترقي سان، ڪارڪردگي جي مقدار ۽ ڪوڊ جي عمل درآمد جي وقت جو تعداد وڌيڪ اطمينان بخش نه هو. پروگرامن جي لکڻ، جانچ ۽ برقرار رکڻ جا خرچ سندن صلاحيتن کان وڌيڪ تيزيءَ سان وڌيا. اهو ضروري هو ته پروگرامر جي ضرورتن کي گھٽائڻ لاء اوزار جي ڪم جي ڄاڻ جي لحاظ کان، هن کي هڪ اوزار ڏنو وڃي جيڪو هن کي انساني منطق جي ويجهو ٻولين ۾ لکڻ جي اجازت ڏئي. پروگرامنگ ٻولي جي قسمن جي نئين سطح ڏانھن وڃو. وڌيڪ ترتيب وار ڪالنگ سان مختلف ماڊلز ۾ ورهائڻ جي صلاحيت مهيا ڪريو (طريقي پروگرامنگ پيراڊم)، مختلف قسم جي ڊيٽا مهيا ڪرڻ جي صلاحيت سان گڏ انهن کي تعمير ڪرڻ، وغيره. اضافي طور تي، انهن قدمن کي ٻين پليٽ فارمن تي ڪوڊ جي پورائيزيشن کي بهتر بڻائي، وڌيڪ آرامده تنظيم. ٽيم جو ڪم. پهرين ٻولين مان هڪ جيڪا مٿين سڀني جي حمايت ڪئي هئي Fortran، گذريل صديء جي 50s ۾ ترقي ڪئي وئي . لوپ، شاخن، سب روٽينز استعمال ڪندي عمل جي منطق جي وضاحت سان ٽيڪسٽ فارم ۾ ٺاهڻ جي صلاحيت ۽ صفن سان ڪم ڪرڻ ۽ حقيقي، انٽيجر ۽ پيچيده نمبرن جي شڪل ۾ ڊيٽا پيش ڪرڻ انجنيئرن ۽ سائنسدانن کي خوش ڪيو. ٿوري وقت ۾، سائنسي "فريم ورڪ" ۽ لائبريريون ٺاهيا ويا. اهو سڀ ڪجهه ان حقيقت جو نتيجو هو ته فورٽران اڄ به لاڳاپيل آهي، جيتوڻيڪ هڪ تنگ سائنسي ماحول ۾، ۽ ترقي ڪري رهي آهي، ڇاڪاڻ ته ترقيات جو سامان تمام وڏو آهي، IMSL لائبريري اڪيلو 1970 (!) کان وٺي فعال طور تي ترقي ڪري رهيو آهي (!) ڪيتريون ئي ملندڙ جلندڙ سافٽ ويئر توهان کي ياد ڪري سگهو ٿا؟ - old-timers? هن سطح تي ٻولين جي ترقيءَ جي هڪ ٻي شاخ سي . جيڪڏهن فورٽران سائنسدانن لاءِ هڪ اوزار بڻجي ويو، ته پوءِ سي ٺاهيو ويو پروگرامرز کي ايپليڪيشن سافٽ ويئر ٺاهڻ ۾ مدد ڏيڻ لاءِ: آپريٽنگ سسٽم، ڊرائيور وغيره. ٻولي توهان کي دستي طور تي ميموري مختص ڪرڻ جي اجازت ڏئي ٿي ۽ هارڊويئر وسيلن تائين سڌي رسائي ڏئي ٿي. سي پروگرامرز کي هيٺين سطح جي ادارن کي ڪنٽرول ڪرڻو پوندو آهي، تنهنڪري ڪيترن ئي راء آهي ته سي هڪ ترقي يافته اسمبلي ٻولي آهي ۽ اڪثر ڪري "مڊل ليول" ٻولي سڏيو ويندو آهي. اسمبلر ۾ ڊيٽا ٽائپنگ کي متعارف ڪرائڻ، طريقيڪار ۽ ماڊل پروگرامنگ جا عنصر، سي ٻولي اڃا تائين سسٽم پروگرامنگ جي مکيه ٻولين مان هڪ آهي، جيڪا پڻ تازو سالن ۾ مائڪرو اليڪٽرانڪس جي تيز ترقي جي ذريعي سهولت فراهم ڪئي وئي آهي. سڀني قسمن جي گيجٽس، ڪنٽرولرز، نيٽ ورڪ ۽ ٻين ڊوائيسز جي ضرورت آهي ڊرائيور، تعاون لاء پروٽوڪول تي عمل درآمد ۽ سامان سان رابطي کي لاڳو ڪرڻ لاء ٻين نسبتا گهٽ سطحي سافٽ ويئر. مٿيون سڀ ڳالهيون اڄ جي ٻوليءَ جي گهرج ۾ حصو وٺن ٿيون. اعتراض تي مبني ۽ فنڪشنل اصولن کي اڳتي وڌايو ويو C++، C#، Java جي صورت ۾، C نحو مان گهڻو ڪجهه وٺي .
  • ڪوڊ ٺاهڻ جي عمل کي آسان ڪرڻ: قسمن جو تعارف، ماڊلز ۾ ورهائڻ، پروگرام جي فهرستن جي گھٽتائي.
  • Прозрачная логика заложенного алгоритма вследствие ухода от машинных codeов к более понятным для человека командам в семантически описательном стиле.
  • Переносимость. Стало достаточно перекомпorровать текст программы для выполнения на другой платформе (возможно, с небольшой модификацией).
  • Скорость откомпorрованных программ.
Минусы:
  • Отсутствие автоматического управления памятью и необходимость постоянного её контроля.
  • Отсутствие реализации концепций an objectно-ориентированного и функционального программирования.

Развитие языков высокого уровня

اعليٰ سطحي پروگرامنگ ٻوليون، سافٽ ويئر ٺاھڻ جي لحاظ کان، تيزي سان مشين ڪوڊس کان پري ھلڻ شروع ڪري ڇڏيون آھن ۽ مختلف پروگرامنگ پيراڊمز کي لاڳو ڪرڻ لاءِ پروسيجرل کان علاوه. انهن ۾ پڻ شامل آهي اعتراض تي مبني اصولن تي عمل درآمد. سي ++، جاوا، پٿون، جاوا اسڪرپٽ، روبي ... - هن قسم جي ٻولين جي حد تمام مقبول ۽ اڄ جي طلب ۾ آهي. اهي مختلف قسم جي سافٽ ويئر کي لاڳو ڪرڻ لاء وڌيڪ موقعا فراهم ڪن ٿا ۽ انهن مان هر هڪ جي "خاصيت" کي واضح طور تي طئي ڪرڻ ناممڪن آهي. پر لاڳاپيل علائقن ۾ ايپليڪيشن جي مقبوليت انهن سان گڏ ڪم ڪرڻ لاءِ لائبريريون/فريم ورڪ جي ڪري آهي، مثال طور: JavaScript - Frontend. ٻولي ڪلائنٽ ويب برائوزر ۽ صارف ۽ ريموٽ سرور جي وچ ۾ رابطي لاءِ ٺهيل هئي. سڀ کان وڌيڪ مشهور لائبريريون Angular، React ۽ VUE آهن. في الحال، اهو نسبتا فعال طور تي ويب ۽ ٻين سرورز تي استعمال ڪيو ويندو آهي (پٺاڻ)، Node.js خاص طور تي مشهور آهي. روبي - پس منظر. اهو اسڪرپٽ ٺاهڻ لاء استعمال ڪيو ويندو آهي (سروس فائلون) ۽ ويب سرور تي. مکيه فريم ورڪ Ruby On Rails آهي. Python هڪ سائنسي ۽ انجنيئرنگ ڊومين آهي (ويب ڊومين کان علاوه). اهو معياري ڪمپيوٽنگ ۽ رياضياتي پيڪيجز (Mathematica, Octave, MatLab...) جو متبادل آهي، پر ان ۾ ٻوليءَ جي معمولي معنيٰ ۽ وڏي تعداد ۾ لائبريريون آهن. مشين لرننگ سسٽم، شماريات ۽ مصنوعي ذهانت جي ميدان ۾ ڪيترائي مداح آهن. اڪثر استعمال ٿيل لائبريرين ۾ جنگو، نمپي، پانڊاس، ۽ ٽينسر فلو شامل آهن. C++ - يونيورسل، C ٻولي جي ارتقائي ترقي. گھٽ سطح جي هارڊويئر سان رابطي جي صلاحيت کي وڃائڻ کان سواءِ فنڪشنل ۽ اعتراض تي مبني پروگرامنگ صلاحيتون مهيا ڪري ٿي. انهي جي ڪري، پيداوار ۽ لچڪدار محسوس ڪيو ويندو آهي جڏهن سافٽ ويئر ٺاهي، پر قيمت پڻ ملن ٿا: ٻوليء جي پيچيده وضاحتن جي ڪري داخلا ۾ هڪ اعلي رڪاوٽ، پروگرام کي هلائڻ دوران وسيلن تي آزاد ڪنٽرول جي ضرورت آهي. ڪيترائي سنگل يوزر ۽ سسٽم سافٽ ويئر ان کي استعمال ڪندي لکيا ويا آهن: آپريٽنگ سسٽم ماڊلز (ونڊوز، سمبين...)، رانديون، ايڊيٽر (ايڊوب فوٽوشاپ، آٽوڊيسڪ مايا...)، ڊيٽابيس (MSSQL، Oracle...)، رانديگر ( WinAmp...) وغيره. اهو نوٽ ڪيو وڃي ٿو ته جديد سافٽ ويئر هڪ پيچيده پيداوار آهي، جنهن جي ترقي هڪ ئي وقت ۾ ڪيترن ئي پروگرامنگ ٻولين کي استعمال ڪري ٿو، ۽ انهن مان هر هڪ جي شموليت جي درجي کي طئي ڪرڻ تمام ڏکيو ٿي سگهي ٿو. مجموعي نتيجو.

وڌيڪ ترقي

تازو، پروگرامنگ جو هڪ ٻيو قسم مقبوليت حاصل ڪري رهيو آهي - فنڪشنل (ٻولي جي سطح جي وڌيڪ ترقي) . هتي حسابن لاءِ تجريد جو هڪ ٻيو قسم آهي - فنڪشن جيڪي ڪمن جو هڪ سيٽ دلائل طور وٺن ٿا ۽ ٻيو هڪ واپس ڪن ٿا. متغيرن جو ڪردار ادا ڪيو ويندو آهي ساڳيون افعال (متغير جيڪي اسان کي واقف آهن صرف مسلسل اظهار آهن، جاوا ۾ قسم جي اعلان کان اڳ فائنل وانگر). فنڪشن پاڻ کي پنهنجي دائري ۾ بند ڪيو ويو آهي، ان جي آپريشن جو نتيجو صرف منظور ٿيل دليلن تي منحصر آهي. هن مان ٻه قابل ذڪر خاصيتون آهن:
  • جاچ لاءِ، اسان کي صرف فنڪشن جي دليلن جي ضرورت آهي (ڪم جو نتيجو خارجي متغير تي منحصر نه آهي، وغيره).
  • هڪ فنڪشنل طرز جو پروگرام معجزاتي طور تي اتفاق سان تيار آهي: تسلسل واري فنڪشن ڪالون پاڙيسري سلسلي ۾ جاري ڪري سگهجن ٿيون (ڇاڪاڻ ته اهي خارجي عنصر کان متاثر نه آهن) ۽ لاڪ جي ضرورت ناهي (يعني ڪو به هم وقت سازي مسئلو ناهي). هن موضوع تي وقت وقف ڪرڻ لاءِ هڪ سٺي حوصلا افزائي ، ملٽي ڪور پروسيسرز جي وسيع اپنائڻ جي ڪري.
جڏهن ته، داخلا جي حد OOP جي ڀيٽ ۾ وڌيڪ آهي: مؤثر ڪوڊ لاء اهو ضروري آهي ته هڪ پروگرام ٺاهيو وڃي، ڪارڪردگي جي الگورتھم کي بيان ڪري ٿي. پر هڪ خالص فنڪشنل انداز لاءِ به اهو سٺو لڳندو ته منطق ۽ ڪيٽيگري جي نظريي جي بنيادي ڄاڻ کي. سڀ کان وڌيڪ مشهور آهن Haskell، Scala، F#. پر ڊپ نه ٿيو، فنڪشنل پروگرامنگ جا عنصر جاوا ۾ ظاهر ٿيا آهن (انهي سان گڏ ٻين جديد ٽئين نسل جي ٻولين ۾) ۽ انهن کي OOP سان گڏ ڪري سگهجي ٿو. توھان حاصل ڪندا اھي سڀ تفصيل وڌيڪ تفصيل سان JavaRush آن لائن انٽرنيشنل شپ تي. منطقي پروگرامنگ جي فيلڊ (ٻولين جي ايندڙ سطح) اڃا تائين وسيع عملي ايپليڪيشن نه ملي آهي ان جي گهٽ طلب جي ڪري. بلڊنگ پروگرامن لاءِ الڳ رياضي جي بنيادي اصولن جي ڄاڻ جي ضرورت آهي، اڳڪٿي منطق، رڪاوٽ جا اوزار ۽ رياضياتي منطق جي ٻين شاخن. سڀ کان وڌيڪ مشهور فعال ٻولي Prolog آهي.

نتيجو

هن وقت، سڀ کان وڌيڪ عام ٻوليون OOP آهن. جاوا، ان جي شروعات کان وٺي، هميشه مٿين ۾ آهي، عام طور تي مٿين ٽن، مشهور ٻولين ۾. OOP کان علاوه، ان ۾ فنڪشنل پروگرامنگ جا عنصر شامل آهن، ۽ توهان پنهنجي پروگرامن کي لکڻ جي مختلف اندازن کي گڏ ڪري سگهو ٿا. جاوا جي ايپليڪيشنن جو دائرو تمام وسيع آهي - اهي ڪاروباري ڪم آهن، ويب سرورز (بيڪ اينڊ) جو نفاذ، Android ايپليڪيشنون ٺاهڻ جي مکيه ٻولي، ڪراس پليٽ فارم پروگرامنگ ماحول ۽ ڪم جي جڳهن (IDE/AWM) ۽ ماڊلنگ، ۽ گهڻو ڪجهه. . جاوا جي پوزيشن خاص طور تي انٽرپرائز شعبي ۾ مضبوط آهي - ڪارپوريٽ سافٽ ويئر جو هڪ علائقو جنهن کي اعلي معيار ۽ ڊگهو ڪوڊ ڪوڊ ۽ تمام پيچيده ڪاروباري منطق جي نفاذ جي ضرورت آهي.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION