ماتريوشڪا سي. پرت وارو پروگرام ٻولي سسٽم

اچو ته ڪيمسٽريءَ کي مينڊيليف جي دوري جدول (1869) کان سواءِ تصور ڪرڻ جي ڪوشش ڪريون. ڪيترا عنصر ذهن ۾ رکڻ گهرجن، ۽ ڪنهن خاص ترتيب ۾ ... (پوء - 60.)

هن کي ڪرڻ لاء، صرف هڪ ڀيرو يا ڪيترن ئي پروگرامنگ ٻولين بابت سوچيو. ساڳيا احساس، ساڳيا تخليقي افراتفري.

۽ ھاڻي اسان XNUMX صديءَ جي ڪيمياسٽن جي احساسن کي تازو ڪري سگھون ٿا، جڏھن انھن کي پنھنجو سمورو علم، ۽ ڪجھ وڌيڪ، ھڪڙي دوري جدول ۾ پيش ڪيو ويو ھو.

ماتريوشڪا سي. پرت وارو پروگرام ٻولي سسٽم


ڪتاب "Matryoshka سي. پروگرام ٻوليءَ جو پرت وارو نظام“ سي ٻوليءَ جي سڀني يونٽن کي هڪ نظر ۾ پيش ڪري ٿو. اهو توهان کي انهن کي منظم ڪرڻ، پراڻي معلومات کي درست ڪرڻ، ۽ پروگرام جي بلڪل تصور کي به واضح ڪرڻ جي اجازت ڏئي ٿو.

اڄ، پروگرامنگ جي معلومات کي سسٽمائيزيشن جي ضرورت آهي اڃا به وڌيڪ ڪيميائي عناصر کان 150 سال اڳ ڪيو هو.

پهرين ضرورت تعليم آهي. مينڊيليف پنهنجو سسٽم ٺاهڻ شروع ڪيو جڏهن هن سوال کي منهن ڏنو ته ڪهڙي عنصر سان ليڪچر ڏيڻ شروع ڪيو وڃي: O, H, N, He, Au... ساڳئي وقت، اهو هن لاءِ آسان هو - هن کيميا جي سکيا ڏني هئي بهترين - شاگردن کي. سينٽ پيٽرسبرگ يونيورسٽي. ۽ پروگرامنگ اڳ ۾ ئي اسڪول ۾ سيکاري وئي آهي ۽ جلد ئي ڪنڊر گارٽن ۾ شروع ٿيندي.

ٻي ضرورت سائنسي انداز جي آهي. Periodic Table جي مدد سان نوان عنصر دريافت ڪيا ويا ۽ پراڻن عنصرن جي معلومات کي درست ڪيو ويو. هن ايٽم جو ماڊل ٺاهڻ ۾ مدد ڪئي (1911). ۽ ايئن.

ٽئين ضرورت هڪ پروگرام جي تصور کي واضح ڪرڻ آهي.

جديد پروگرامنگ 50 صدي عيسويء جي XNUMXs ۾ هڪ پير ڦوڪيو آهي. ان وقت، پروگرام سادو هئا، پر مشينون ۽ مشيني ٻوليون پيچيده هيون، تنهنڪري هر شيءِ مشينن ۽ ٻولين جي چوڌاري ڦري ٿي.

ھاڻي سڀ ڪجھ ٻيو رستو آھي: پروگرام پيچيده ۽ پرائمري آھن، ٻوليون سادي ۽ ثانوي آھن. ان کي اپلائيڊ اپروچ چئبو آهي، جنهن سان هرڪو واقف ٿي لڳي. پر شاگردن ۽ ڊولپرز کي يقين ڏياريو وڃي ٿو ته سڀ ڪجهه ساڳيو آهي.

جيڪو اسان کي پرائيويٽڊوزنٽ مينڊيليف جي پهرين ليڪچر ڏانهن واپس آڻي ٿو. تازو ماڻهن کي ڇا چئجي؟ سچ ڪٿي آهي؟ اهو سوال آهي.

ڪتاب "Matryoshka سي" هن سوال جو جواب ڏئي ٿو. پروگرام ٻولي جو پرت وارو نظام". ان کان علاوه، اهو نه رڳو شاگردن کي، پر پڻ تربيت يافته پروگرامرن کي خطاب ڪيو ويو آهي، ڇاڪاڻ ته اهو اهي آهن، اهو آهي، اسان، جن کي سچ ڳولڻ ۽ دنيا جي نظر کي تبديل ڪرڻ گهرجي.

هيٺ ڏنل ڪتاب جو خلاصو آهي.

1. تعارف

1969 ۾، سي ٻولي ٺاهي وئي، جيڪا بنيادي پروگرامنگ ٻولي بڻجي وئي ۽ 50 سالن تائين برقرار رهي. ائين ڇو آهي؟ سڀ کان پهريان، ڇاڪاڻ ته C آهي لاڳو ٿيل ٻولي جنهن پروگرام ڏنو انساني بدران ڏسو مشين. هي ڪاميابي سي خاندان جي ٻولين پاران محفوظ ڪئي وئي: C++، JavaScript، PHP، Java، C# ۽ ٻيا. ٻيو ته هيءَ هڪ مختصر ۽ سهڻي ٻولي آهي.

بهرحال، سي ٻولي پاڻ کي عام طور تي مشين جي اسمبلر سان ملايو ويندو آهي، ان ڪري ان جي تصور کي پيچيده ۽ خراب ڪري ٿو. ٻيو انتها آهي هڪ مخصوص ”فلسفو“ جو ٻوليءَ تي مسلط ڪرڻ: طريقيڪار، اعتراض، فعلي، مرتب ڪيل، تشريح ڪيل، ٽائپ ٿيل، وغيره. هي جذبو وڌائي ٿو، پر ٻولي کي بهتر بيان ڪرڻ ۾ مدد نٿو ڪري.

سچ وچ ۾ آهي، ۽ سي ٻولي لاء اهو سختي سان وچ ۾ آهي فلسفو ۽ مشيني تصور جي وچ ۾.

سي ٻولي آزاد نه آهي، اها عام لکت واري ٻولي جي فرمانبرداري ڪري ٿي، ۽ ساڳئي وقت اهو اسيمبليء جي ٻولي کي سنڀاليندو آهي. هي پوزيشن بيان ڪري ٿو پروگرام جي تقرير ماڊل، جنهن جي مطابق پروگرام ٽن ماتحت قسمن ۾ ورهايل آهي: تقرير، ڪوڊ، حڪم. سي ٻولي ٻئي، ڪوڊ قسم جي ذميوار آهي.

پروگرام ۾ ٻولي جي جڳھ کي طئي ڪرڻ کان پوء، توھان ان جي باري ۾ معلومات کي منظم ڪري سگھو ٿا، جيڪو ٺاھي ٿو پرت وارو پروگرام ٻولي سسٽم, دوراني نظام جي روح ۾ سي ٻولي جي نمائندگي - هڪ صفحي تي.

سسٽم ٺاهيل آهي اڪائونٽ ۾ وٺي لاڳو ٿيل ٻولين جي ڪميونٽي، انهن جي ڳالهائڻ جي ماتحت مان پيدا ٿئي ٿي. Matryoshka C يونٽن جو ھڪڙو سيٽ توھان کي مختلف ٻولين کي بيان ڪرڻ ۽ موازنہ ڪرڻ جي اجازت ڏئي ٿو، Matryoshkas جو ھڪڙو سلسلو ٺاھيو: C++, PHP, JavaScript, C#, MySQL, Python وغيره. اها ڳالهه قابل ۽ درست آهي ته مختلف ٻولين کي بنيادي ٻوليءَ جي يونٽن ذريعي بيان ڪيو ويو آهي.

2. باب 1. پروگرام جو اسپيچ ماڊل. صاف ڪريو سي

پهريون باب پيش ڪري ٿو پروگرام جي تقرير ماڊل، لاڳو ٿيل طريقي جي عڪاسي ڪندي. هن جي مطابق، پروگرام جا ٽي واضح ترتيب وار قسم آهن:

  1. تقرير - پروگرامر جي سڌي تقرير مسئلو حل ڪرڻ،
  2. ڪوڊ ٿيل - هڪ حل کي انڪوڊنگ کي رياضياتي فارم ۾ C ٻولي ۾ (يا ڪنهن ٻئي)
  3. ۽ حڪم - سڌو مشين حڪم.

تقرير جو ماڊل وضاحت ڪري ٿو ته ڇو C هڪ سادي ۽ سمجھڻ واري ٻولي آهي. Xi انساني تقرير جي تصوير ۽ مشابهت ۾ ٺهيل آهي جيڪا اسان کان واقف آهي.

پروگرام جو پهريون قسم پروگرامر جي سڌي تقرير آهي. تقرير انساني سوچ سان مطابقت رکي ٿي. شروعاتي پروگرامر تقرير استعمال ڪندي پروگرام لکندا آهن - پهرين روسي ۾، پوء قدم قدم تي عملن کي ڪوڊ ٻولي ۾ ترجمو ڪندي. ۽ اهو خاص طور تي هن نموني تي آهي ته C ٻولي ٺاهي وئي.

پروگرامر جي نتيجن، تقرير ۾ بيان ڪيل، ڪوڊ ٿيل عددي شڪل ۾ تبديل ٿي ويا آهن. هن تبديلي کي سڏيو وڃي عڪس، ڇاڪاڻ ته تقرير ۽ ڪوڊ هڪ ئي نوعيت آهي (عڪس - پيدائش - جنس). اهو بلڪل واضح آهي جيڪڏهن اسان تقرير (کاٻي پاسي) ۽ ڪوڊ (ساڄي پاسي) پروگرام جي قسمن جو مقابلو ڪيو.

ماتريوشڪا سي. پرت وارو پروگرام ٻولي سسٽم

اها دلچسپ ڳالهه آهي ته عڪاسي بلڪل سادو ٿئي ٿو - صرف ٻن قسمن جي اظهارن سان.

بهرحال، C ٻوليءَ جي جديد تشريح (1978 کان) ۾ نالن جي ڪا ڪافي فهرست نه آهي يا ته ٻولي کي عام طور تي بيان ڪرڻ لاءِ، يا خاص طور تي ڪم ڪرڻ لاءِ. تنهن ڪري، اسان تخليقي حاصل ڪرڻ ۽ انهن نالن کي متعارف ڪرائڻ تي مجبور آهيون.

لفظن جي چونڊ واضح ۽ صاف هجڻ گهرجي. ان لاءِ هڪ خاص طريقي جي ضرورت هئي، مختصر طور تي هن ريت بيان ڪيو ويو آهي: مادري زبان جو سخت استعمال. انگريزن لاءِ ته انگريزي هوندي، پر اسين انگريز نه آهيون. تنهنڪري اسان استعمال ڪنداسين جيڪو اسان وٽ آهي ۽ روسي ڳالهائڻ جي ڪوشش ڪنداسين.

عڪاسي ٻن قسمن جي اظهار سان ڪئي ويندي آهي:

  1. حساب ڪتاب (HF) - هڪ اعتراض جي ملڪيت ۾ تبديلي کي ظاهر ڪري ٿو. ڪنهن شئي جي ملڪيت جو اظهار عدد سان ڪيو ويندو آهي، پوءِ ملڪيت تي هڪ عمل هڪ عدد تي عمل هوندو آهي - هڪ آپريشن.
  2. ماتحت (Pch) - عملن جي ترتيب ۾ تبديلي کي ظاهر ڪري ٿو. Pch جو پروٽوٽائپ هڪ تقرير پيچيده جملو آهي، تنهن ڪري Pch جا اڪثر قسم ماتحت ڪنجنشن سان شروع ٿين ٿا ”جيڪڏهن“، ”ٻي صورت ۾“، ”جڏهن“، ”لاءِ“. پي سي جا ٻيا قسم انھن کي پورو ڪن ٿا.

رستي ۾، ڇا توهان يقين ڪري سگهو ٿا ته C جي وضاحت ۾ حساب ڪتاب جي اظهار جو ڪو نالو ناهي - انهن کي صرف "اظهار" سڏيو ويندو آهي؟ ان کان پوءِ اها حيرت جي ڳالهه نه رهندي ته ماتحتيءَ جي قسم جو ڪو به نالو ۽ واسطو نه هوندو آهي، ۽ حقيقت ۾ نالن، وصفن ۽ عام ڪرڻن جي گهٽتائي هوندي آهي. اهو ئي سبب آهي جو مشهور K/R (“The C Language”, Kernighan/Ritchie, 1978) ڪا وضاحت نه آهي، پر ٻولي استعمال ڪرڻ لاءِ هڪ گائيڊ آهي.

تنهن هوندي به، مان ٻولي جي وضاحت ڪرڻ چاهيندس. تنهن ڪري هن کي پيش ڪيو ويو آهي پرت وارو پروگرام ٻولي سسٽم.

3. باب 2. پرت سسٽم. مختصر سي

ڪنهن به وضاحت کي صحيح ۽ انتهائي جامع هجڻ گهرجي. پروگرام جي ٻولي جي صورت ۾، سامهون واري وضاحت ڏکيو آهي.

هتي اسان وٽ هڪ پروگرام آهي. اهو ماڊلز تي مشتمل آهي. ماڊلز سب روٽين ۽ مجموعن تي مشتمل آهن (ڍانچي). Subroutines انفرادي اظهار تي مشتمل آهي: اعلان، حساب، ماتحت. ماتحتيءَ جا ڏهه قسم آهن. ماتحتيت ذيلي سطحن ۽ ذيلي روٽين کي ڳنڍيندي آهي. اهڙا ڪيترائي اشتهار پڻ آهن. بهرحال، اعلان شامل آهن نه رڳو سب روٽين ۽ ذيلي سطحن ۾، پر ماڊلز ۽ مجموعن ۾ پڻ. ۽ گھڻا جملا انھن لفظن تي مشتمل آھن جن کي بيان ڪرڻ ايترو ڏکيو آھي جو اھي عام طور تي صرف ٻن لسٽن ۾ ڏنا ويندا آھن - اصل ۽ نڪتل لفظ، جن سان توھان سڄي ٻوليءَ جي سکيا ۽ استعمال کان واقف ٿي ويندا. اچو ته ان ۾ شامل ڪريون اوقاف جي نشانين ۽ ٻين لفظن جو هڪ انگ.

اهڙي پيشڪش ۾، اهو سمجهڻ آسان ناهي ته ڪير ڪنهن تي بيٺو آهي.

ٻوليءَ کي بيان ڪرڻ لاءِ هڪ سڌي ترتيب وار انداز تمام گهڻو پيچيده هوندو. هڪ گول ابڙو ڳولها ٻولي جي وضاحت ڏانهن وٺي ٿي ان جي تقرير جي فطرت ۽ ڪمانڊ پاسي جي بنياد تي. اهڙيء طرح، پرت سسٽم پيدا ٿيو، جزوي طور تي مينڊيليف جي دورياتي نظام سان ٺهڪي اچي ٿو، جيڪو پڻ پلائي. جيئن ته ان جي اشاعت (42) کان 1869 سال پوء، سسٽم جي مدت برقي سان لاڳاپيل آهي. پرت (1911، ايٽم جو بوهر-ردرفورڊ ماڊل). انهي سان گڏ، هڪ صفحي تي سڀني يونٽن جي ٽيبلر ترتيب ۾ پرت ۽ دوري نظام ساڳيا آهن.

ٻوليءَ جي يونٽن جي وضاحت مختصر آهي - صرف 10 قسم جا اظهار ۽ 8 قسم جا ٻيا يونٽ، گڏوگڏ معنيٰ ۽ بصري. جيتوڻيڪ پهرين واقفيت لاء غير معمولي.

ٻولي يونٽ 6 سطحن ۾ ورهايل آهن:

  1. يونٽ - ٽيبل جون قطارون
  2. ڊپارٽمينٽس - نسل جا خاص گروپ (پهرين لائن جا حصا)
  3. جينس - سيلز (مکيه سطح جي تقسيم)
  4. سپر اسپيسيز- اسپيسز جدا ڪندڙ (نادر سطح)
  5. قسمون - يونٽ فارمولا سيل جي تري ۾ يا الڳ الڳ
  6. نمونن - يونٽ پاڻ (صرف لفظن لاء)

نموني لفظ بيان ڪري ٿو ڊڪشنري - هڪ الڳ سبسسٽم ٺاهيل ساڳي ڇهن سطحن مان.

سي ٻولي جي تقرير جو حصو بلڪل واضح آهي، جيتوڻيڪ اهو اڃا تائين وضاحت جي لائق آهي. پر ٻولي جو ڪمانڊ حصو خاص طور تي ڪمپليشن ڪنٽرول سان لاڳاپيل آهي، جنهن دوران ٽئين قسم جو پروگرام ٺاهيو ويندو آهي - ڪمانڊ. هتي اسان سي ٻولي جي سڀ کان وڌيڪ دلچسپ پهلو ڏانهن اچون ٿا: خوبصورتي.

4. هيٺيان باب. خوبصورت سي

سي ٻولي جديد پروگرامنگ جو بنياد آهي. ڇو؟ سڀ کان پهرين، تقرير جي تمام گهڻي مطابقت جي ڪري. ٻيو، ڇاڪاڻ ته اها سهڻي طور تي مشين نمبر پروسيسنگ جي حدن کي ختم ڪري ٿي.

ڇا واقعي Xi تجويز ڪيو؟ تصوير ۽ پرت.

لفظ "تصوير" انگريزي لفظ "قسم" جو ترجمو آهي، جيڪو يوناني "prototype" - "type" مان ايندو آهي. روسي ٻولي ۾، لفظ "قسم" بيان نه ڪيو ويو تصور جي بنيادي بنياد کي بيان ڪري ٿو؛ ان کان علاوه، اهو معاون معني "قسم" سان پريشان آهي.

شروعات ۾، تصوير هڪ خالص مشين حساب ڪتاب جو مسئلو حل ڪيو، ۽ پوء اعتراض ٻولين جي پيدائش لاء هڪ رن وي بڻجي ويو.

پرت فوري طور تي ڪيترن ئي مسئلن کي حل ڪيو - ٻئي مشين ۽ لاڳو ٿيل. تنهن ڪري، غور هڪ واحد ڪم واري تصوير سان شروع ٿيندي ۽ هڪ گھڻائي ڪم واري پرت تي منتقل ٿيندو.

تاريخي پروگرامنگ جي ناپسنديده خصوصيتن مان هڪ آهي ته اڪثر تصورات، جن ۾ بنيادي شامل آهن، بغير ڪنهن تعريف جي ڏني وئي آهي. ”پروگرامنگ ٻولي (دريائن جو نالو) ۾ انٽيجر ۽ فلوٽنگ نمبر جا قسم آهن...“ ۽ اهي اڳتي وڌيا. اهو بيان ڪرڻ ضروري ناهي ته "قسم" (تصوير) ڇا آهي، ڇاڪاڻ ته ليکڪ پاڻ کي مڪمل طور تي سمجهي نه سگھندا آهن ۽ ان کي "وضاحت جي خاطر" کي خاموش ڪري ڇڏيندو. جيڪڏهن اهي ڀت ڏانهن ڇڪي رهيا آهن، اهي هڪ مبهم ۽ بيڪار تعريف ڏيندا. اهو غير ملڪي لفظن جي پويان لڪائڻ ۾ تمام گهڻو مدد ڪري ٿو: روسي ليکڪن لاء - انگريزيء جي پويان (قسم)، انگريزن لاء - فرينچ جي پويان (سبروٽين)، يوناني (پوليمورفيزم)، لاطيني (انڪيپسوليشن) يا انهن جي مجموعن (ايڊ-هڪ پوليمورفيزم).

پر اها اسان جي قسمت ناهي. اسان جي پسند خالص روسي ۾ اڀريل ويزر سان وصفون آهن.

تصوير

تصوير ھڪڙي مقدار جو ھڪڙو اڳوڻو نالو آھي، وضاحت ڪري ٿو 1) مقدار جي اندروني ملڪيت ۽ 2) مقدار لاء عملن جي چونڊ.

لفظ "قسم" (قسم) وصف جي پهرين حصي سان ملندو آهي: "مقدار جي اندروني ملڪيت." پر تصوير جي بنيادي معني ٻئي حصي ۾ آهي: "مقدار جي عملن جي چونڊ."

C ۾ تصوير متعارف ڪرائڻ لاءِ شروعاتي نقطو هڪ عام حساب آهي، جيئن اضافي آپريشن.

ڪاغذ رياضي، ڇا هٿ سان لکيل يا ڇپيل، انگن جي قسمن جي وچ ۾ گهڻو فرق نٿو ڪري، عام طور تي فرض ڪري ٿو ته اهي حقيقي آهن. تنهن ڪري، انهن جي پروسيسنگ آپريشن غير واضح آهن.

مشين رياضي سختي سان انگن کي عددن ۽ فرقن ۾ ورهائي ٿو. مختلف قسم جا انگ مختلف طريقي سان ميموري ۾ محفوظ ڪيا ويندا آهن ۽ پروسيسر جي مختلف هدايتن تي عمل ڪيو ويندو آهي. مثال طور، انٽيجرز ۽ فريڪشنز کي شامل ڪرڻ لاءِ هدايتون ٻه مختلف هدايتون آهن جيڪي ٻه مختلف پروسيسر نوڊس سان ملن ٿيون. پر انٽيجر ۽ جزوي دليلن کي شامل ڪرڻ لاءِ ڪو حڪم نه آھي.

لاڳو ٿيل رياضي، يعني سي ٻولي، انگن جي قسمن کي الڳ ڪري ٿي، پر عملن کي گڏ ڪري ٿي: انٽيجرز ۽/يا فرقن لاءِ اضافو هڪ عمل جي نشاني سان لکيل آهي.

تصور جي تصوير جي واضح تعريف اسان کي يقيني طور تي ٻن ٻين تصورن بابت ڳالهائڻ جي اجازت ڏئي ٿي: شدت и آپريشن.

شدت ۽ آپريشن

ويليو - نمبر تي عمل ڪيو پيو وڃي.

آپريشن - آخري نمبر (مجموعي) حاصل ڪرڻ لاء ابتدائي قدر (دليل) جي قدرن کي پروسيسنگ.

شدت ۽ آپريشن هڪ ٻئي سان لاڳاپيل آهن. هر آپريشن هڪ مقدار آهي ڇاڪاڻ ته ان ۾ هڪ عددي نتيجو آهي. ۽ هر قيمت پروسيسر رجسٽر کان / مان قيمت جي منتقلي جو نتيجو آهي، اهو آهي، آپريشن جو نتيجو. هن تعلق جي باوجود، بنيادي شيء انهن جي الڳ وضاحت جو امڪان آهي، جيتوڻيڪ لغت جي مختلف حصن ۾ هڪ لفظ جي ورهاڱي سان، جيڪو MA3 ۾ ٿئي ٿو.

مشين جي طريقيڪار پروگرامر پاران استعمال ڪيل سڀني انگن کي ورهايو حڪم и ڊيٽا. اڳي، اهي ٻئي نمبر هئا، مثال طور، حڪم عددي ڪوڊ ۾ لکيل هئا. بهرحال، لاڳو ٿيل ٻولين ۾، حڪمن جا نمبر بند ٿي ويا ۽ بڻجي ويا لفظن ۾ и عمل جا نشان. صرف ”ڊيٽا“ انگن جي حيثيت ۾ رهي ٿو، پر انهن کي انهي طريقي سان سڏڻ جاري رکڻ بيوقوفي آهي، ڇاڪاڻ ته مشين کان رياضياتي نقطه نظر جي منتقلي ۾، انگ اهي مقدار آهن جن کي اصل (جي ذريعي ورهايو ويندو آهي)ڊيٽا) ۽ آخري (گهربل). ”اڻڄاڻ ڊيٽم“ بيوقوف آواز ڪندو.

ٽيمن کي پڻ ٻن قسمن جي عملن ۾ ورهايو ويو: رياضياتي ۽ خدمت. رياضياتي عمل- عمل. اسان بعد ۾ سرڪاري شيون حاصل ڪنداسين.

سي ٻولين ۾، عام ڪاغذ ۽ مشين غير مبهم، يا اڪيلو، رياضياتي عملن کي تقريبن عالمي طور تي گھڻا بڻجي ويندا آهن.

گھڻا آپريشن آھن ھڪ ئي نالي جا ڪيترائي عمل آھن مختلف قسم جي دليلن سان ۽ مختلف، ساڳي معنيٰ ۾، ڪارناما.

Integer دلائل هڪ پوري آپريشن سان ملن ٿا، ۽ جزوي دلائل هڪ جزوي آپريشن سان ملن ٿا. اهو فرق خاص طور تي ڊويزن آپريشن دوران واضح ٿئي ٿو، جڏهن اظهار 1/2 ڪل 0 ڏئي ٿو، نه 0,5. اهڙو اشارو ڪاغذ جي رياضي جي قاعدن سان مطابقت نٿو رکي، پر سي ٻولي انهن سان عمل ڪرڻ جي ڪوشش نه ڪندو آهي (فورٽران جي برعڪس) - اهو پنهنجي مطابق ادا ڪندو آهي. لاڳو ٿيل ضابطا.

انٽيجرز ۽ فرڪشنن کي گڏ ڪرڻ جي صورت ۾، صرف صحيح هڪ شامل آهي casting argument values - هڪ تصوير کان ٻئي ۾ قدر جي چونڊيل تبديلي. درحقيقت، جڏهن هڪ عدد ۽ هڪ جزوي نمبر شامل ڪيو وڃي، نتيجو جزوي آهي، تنهنڪري آپريشن جي تصوير کڻندو آهي هڪ عددي دليل کي جزوي قدر ۾ تبديل ڪرڻ جو عمل.

ڪيترائي آپريشن باقي آھن جمع۽ اڪيلو. اهڙن عملن کي صرف هڪ قسم جي دليلن لاءِ بيان ڪيو ويو آهي: تقسيم باقي - انٽيجر دليل، اسٽيڪنگ (bitwise آپريشن) - قدرتي عدد. Ma3 اشارن سان عملن جي گھڻائي کي اشارو ڪري ٿو (#^) انهن تصويرن کي ظاهر ڪري ٿو جن لاءِ آپريشن جي وضاحت ڪئي وئي آهي. هي هر آپريشن جي هڪ اهم پر اڳي ئي نظر انداز ڪيل ملڪيت آهي.

سڀ ڪم صوابديدي يونٽ آپريشن آهن. استثنا آهي آپريٽرز - غير بریکٹ افعال، ٻولي ۾ ٺهيل (اصل آپريشن).

مدد

مدد - آپريشن سان گڏ عمل.

جيڪڏهن اسان آپريشن کي بنيادي عمل سمجهون ٿا، ته پوءِ اسان ٻن گڏ ٿيندڙن ۾ فرق ڪري سگهون ٿا جيڪي آپريشن مهيا ڪن ٿا ۽ ان کان مختلف آهن. اهي آهن 1) متغير ڪنٽرول ۽ 2) ماتحت. هن عمل کي سڏيو ويندو آهي مدد.

هتي اسان کي پروگرامنگ درسي ڪتابن جي روسي ترجمن جي باري ۾ الڳ الڳ بحث ڪرڻ جي ضرورت آهي. ڪمن کي رڪارڊ ڪرڻ لاءِ K/R جي متن ۾ نئون لفظ متعارف ڪرايو ويو بيان (اظهار)، جنهن مشين ڪمانڊ جي تصورن کي مختلف ڪمن ۾ ورهائڻ جي ڪوشش ڪئي: 1) آپريشن، 2) اعلان، ۽ 3) ماتحت (جنهن کي "ڪنٽرول تعميرات" سڏيو ويندو آهي). هن ڪوشش کي روسي مترجمن پاران دفن ڪيو ويو، لفظ "آپريٽر" سان "اظهار" کي متبادل بڻايو ويو، جيڪو:

  1. مشيني لفظ ”ڪمانڊ“ سان مترادف ٿي ويو آهي،
  2. لفظ ”عمل جي نشاني“ سان مترادف ثابت ٿيو،
  3. ۽ اضافي قدرن جو لامحدود تعداد پڻ حاصل ڪيو. اهو آهي، اهو انگريزي مضمون سان ملندڙ جلندڙ شيء ۾ تبديل ٿي ويو آهي "uhhhhhhhhhhhhhhhhhhhhhhhhhh"

گڏوگڏ عملن تي غور ڪريو، يا مدد.

متغير ڪنٽرول

متغير ڪنٽرول (UP) - متغير سيلز ٺاهڻ / ختم ڪرڻ.
UE ظاهر ٿئي ٿو جڏهن هڪ متغير جو اعلان ڪيو وڃي، جيڪو اڳ ۾ ئي ڪنهن ٻئي سبب لاء لکيو ويو آهي - قدر جي تصوير کي ظاهر ڪرڻ لاء. صرف هڪ منظر واضح طور تي منظم ڪيو ويو آهي اضافي متغير malloc() ۽ free() افعال استعمال ڪندي.

اهو ياد رکڻ گهرجي ته نقلي عمل لکڻ لاءِ وڌيڪ آسان آهن، ڇاڪاڻ ته انهن کي ڪجهه به لکڻ جي ضرورت ناهي، پر انهن کي سمجهڻ ڏکيو آهي - انهن کي حساب ۾ رکڻ ۽ تفسير ڪرڻ وڌيڪ ڏکيو آهي.

ماتحت

ماتحت - پرت حصن کي ڳنڍيو / بند ڪريو.

سي ٻولي پيش ڪيل عملن جي ترتيب کي ڪنٽرول ڪرڻ جو هڪ لاڳو طريقو پيش ڪيو، جمع ڪندڙ - ماتحت کان مختلف. اهو ظاهر ڪري ٿو ۽ ترقي ڪري ٿو هڪ تقرير پيچيده جملي کي واضح تقسيم سان مکيه حصو (ماتحت شق) ۽ ماتحت حصو (ذيلي سطح / ماتحت حصن).

ٻئي اعلان ۽ تسليم مڪمل طور تي تصور تي ٺهيل آهن پرت.

پرت

پرت اظهار جو هڪ محدود واحد سطحي چونڊيل سيٽ آهي.

پرت واضح ۽ واضح طور تي ڪيترن ئي ڪمن تي هڪ ئي وقت تي ورتو:

  1. پروگرام کي ترتيب ڏيڻ
  2. نالن جي نمائش کي محدود ڪرڻ (واضح طور تي)
  3. متغير جو انتظام (ميموري سيلز) (مضمون)،
  4. ماتحتيءَ لاءِ ماتحت شقن جي تعريف،
  5. افعال ۽ چونڊ ۽ ٻين جي تعريف.

مشيني ٻولين ۾ پرت جو ڪو به تصور نه هو، تنهنڪري اهو K/R ۾ ظاهر نه ٿيو، ۽ جيڪڏهن ڪا شيءِ نه هئي ته پوءِ ايندڙ ڪتابن ۾ ان کي متعارف ڪرائڻ بدعت ۽ آزاد خيال هوندو. تنهن ڪري، هڪ پرت جو تصور بلڪل ظاهر نه ٿيو، جيتوڻيڪ اهو انتهائي مفيد ۽ بلڪل واضح آهي.

پرت جي بغير، پروگرام جي ڪيترن ئي عملن ۽ ضابطن کي مختصر ۽ واضح طور تي بيان ڪرڻ ناممڪن آهي. مثال طور، ڇو گوٽو ايترو سادو آهي جيترو ٽي ڪوپيڪس خراب، ۽ مشڪل وقت سٺو آهي. توهان صرف بي وسيءَ سان قسم کڻي سگهو ٿا، جيئن ڊجڪسٽرا ڪيو (“پروگرامرز جي مهارت هڪ اهڙو ڪم آهي جيڪو ان جي برعڪس انهن جي پروگرامن ۾ گوٽو بيانن جي موجودگيءَ جي تعدد تي منحصر هوندو آهي. مختصر ۾، صرف ٻڪريون گوٽو استعمال ڪن ٿيون. جواز جي سطح خدا آهي.) سچ، اهو ايترو خوفناڪ نه آهي جيڪڏهن توهان جا ڪتاب اسان کي ڪجهه به بيان ڪرڻ جي ضرورت ناهي، پر، جيئن اسان اڳ ۾ ئي چيو آهي، اهو اسان جي قسمت ناهي.

رستي ۾، اهو فرض ڪري سگهجي ٿو ته ڊان رچي ڪجهه اڻ ڄاتل تصور جي ڳولا لاءِ گوٽو کي صحيح طور تي ڇڏي ڏنو، ڇاڪاڻ ته گوٽو جي اظهار ۾ ڪابه ضرورت يا خوبصورتي نه هئي. پر ٻوليءَ جي نون اصولن جي هڪ سادي ۽ سمجھي وضاحت جي ضرورت هئي، جيڪا خود رچي نه پئي ڏني، ۽ جيڪي صحيح طور تي تصور تي ٻڌل آهن. پرت.

انحراف

انحراف - نئين نالي جي معمولي ملڪيت کي تبديل ڪرڻ.

سڀ کان اهم انحراف خاص طور تي پروگرام جي پرت جي ملڪيت سان لاڳاپيل آهي، ۽ هڪ لفظ "جامد" طرفان بيان ڪيو ويو آهي، جنهن جي هر قسم جي پرت ۾ مختلف معني آهي.

5. آخري باب. لاڳو ٿيل ٻولين جي عاميت

اپلائيڊ ٻوليون آهن علامتي ٻوليون (هڪ تصوير آهي، "ٽائپ ٿيل"). اهي تصوير جي واضح يا ظاهري استعمال تي ٻڌل آهن. ان کان علاوه، هتي وري هڪ تضاد ظاهر ٿئي ٿو: هڪ واضح تصوير وڌيڪ سمجهي سگهجي ٿو، پر گهٽ آسان، ۽ ان جي برعڪس.

ماتريوشڪا سي. پرت وارو پروگرام ٻولي سسٽم

(ٽيبل جي ترتيب اڃا تائين نه ڏني وئي آهي، تنهنڪري ٽيبل هڪ تصوير سان ڏيکاريل آهي.)

سي کان پوءِ، اپلائيڊ ٻولين جي ترقيءَ سندن فڪري صلاحيت وڌائڻ جو رستو اختيار ڪيو. اعليٰ تصويرن کي سمجھڻ لاءِ سڀ کان وڌيڪ اھم آھي سي جو سڌو اولاد - C++ ٻولي. هو مقدار جي عملن جي هڪ خودمختياري چونڊ جي خيال کي ترقي ڪري ٿو ۽ ان کي مصنوعي اظهار جي چونڊ جي بنياد تي ٺاهي ٿو، جيڪو هڪ نئون نالو حاصل ڪري ٿو - اعتراض. جڏهن ته، C++ نئين مجموعي جي قسمن ۽ انهن سان لاڳاپيل قاعدن جي اوورلوڊ جي ڪري C جيترو مختصر ۽ اظهاريندڙ نه آهي. رستي ۾، اچو ته "اوور لوڊ" بابت ڳالهايون.

اوور لوڊنگ ۽ پوليمورفيزم

لفظ "اوورلوڊ" ٺاهڻ لاءِ هڪ پراڻي مشين لرننگ اصطلاح آهي گھڻن آپريشن.

مشين (سسٽم) پروگرامر کثرتيت آپريشن چڱي طرح ناراض ٿي سگھي ٿو: "ھن نشاني (+) جو ڇا مطلب آھي: عددن کي شامل ڪرڻ، جزن کي شامل ڪرڻ، يا اڃا به ڦيرائڻ؟! اسان جي زماني ۾ اهي ائين نه لکندا هئا!” تنهن ڪري چونڊيل لفظ جو منفي مفهوم ("اوور ڪل"، "ٿڪندڙ"). ايپليڪيشن پروگرامر لاءِ، گھڻا آپريشن بنيادي بنياد آھن، سي ٻولي جي بنيادي ڪاميابي ۽ ورثي، ايتري قدر قدرتي آھي جو اھي اڪثر سڃاتل نه آھن.

C++ ٻولي ۾ کثرتيت وڌايو ويو نه رڳو اصل عملن تائين، پر ڪمن تائين - ٻئي انفرادي ۽ گڏيل طبقن ۾ - طريقا. ڪيترن ئي طريقن سان انهن کي وڌايل طبقن ۾ ختم ڪرڻ جي صلاحيت آئي، جنهن کي مبهم طور تي "پوليمورفيزم" سڏيو ويندو هو. پوليمورفيزم ۽ اوورلوڊ جي ميلاپ هڪ ڌماڪيدار مرکب پيدا ڪيو جيڪو ٻن پوليمورفيزم ۾ ورهايو ويو: "سچو" ۽ "ايڊ-هاڪ." اهو سمجھڻ ممڪن آهي صرف تفويض ڪيل نالن جي باوجود. اشتهار جو رستو غير ملڪي نالن سان پڪو ڪيو ويو آهي.

فارم جو اعلان "اوورلوڊ" لفظ ۾ بهتر بيان ڪيو ويو آهي اضافي اعلان - ساڳئي نالي جي هڪ فنڪشن جو اعلان شامل ڪندي مختلف تصوير جي دليلن سان.

فارم جو اعلان "پوليمورفيزم" بهتر سڏيو ويندو آهي ٻيهر اعلان - ساڳئي تصوير جي دليلن سان ساڳئي نالي جي فنڪشن جي نئين واڌ واري پرت ۾ اوورليپنگ اعلان.

پوءِ اهو سمجهڻ آسان ٿيندو ته مختلف تصويرن جا ساڳيا طريقا (دليل) - اضافي طور تي اعلان ڪيو۽ هڪ تصوير - ٻيهر اعلان ڪيو.

روسي لفظن جو فيصلو.

رن وي

انتهائي علامتي ٻولين جي تصورن تي غور ڪرڻ بنيادي مفهومن جي واضح وصف جي اهميت جي تصديق ڪري ٿو. C جي صحيح بيان سان، اعليٰ ٻوليون سکڻ آسان ۽ مزيدار ٿيندو.

هن لاء خاص طور تي اهم آهي انتهائي علامتي ٻوليون (PHP، جاوا اسڪرپٽ). انهن لاءِ شيون (مجموعي تصويرون) جي اهميت C++ جي ڀيٽ ۾ اڃا به وڌيڪ ٿي وڃي ٿي، پر تصوير جو تمام گهڻو تصور بي معنيٰ ۽ غير واضح ٿي وڃي ٿو. سھولت جي نقطي نظر کان، اھي آسان ٿي ويا آھن، پر سمجھڻ جي نقطي نظر کان، اھي وڌيڪ ڏکيو ٿي ويا آھن.

تنهن ڪري، توهان کي سي ٻولي سان پروگرامنگ ٻولين کي سکڻ شروع ڪرڻ گهرجي ۽ انهي ترتيب ۾ اڳتي وڌو جنهن ۾ C خاندان جون ٻوليون ظاهر ٿين ٿيون.

ساڳيو ئي ٻوليون بيان ڪرڻ لاءِ. مختلف ٻولين ۾ سي ٻوليءَ جي ڀيٽ ۾ هڪجهڙا، يا ننڍا، يونٽ جي صنفن جو سيٽ هوندو آهي. قسمن ۽ نمونن جو تعداد ٻنهي طرفن ۾ مختلف ٿي سگهي ٿو: C++ ۾ C کان وڌيڪ قسمون آهن، جڏهن ته JavaScript ۾ گهٽ آهن.

MySQL ٻولي خاص ذڪر جي لائق آهي. اهو لڳي ٿو ته عام ۾ ڪجھ به نه آهي، پر هن کي مڪمل طور تي بيان ڪيو ويو آهي Matryoshka، ۽ هن کي ڄاڻڻ تيز ۽ آسان ٿي ويندو. جيڪو اهم آهي، ويب لاء ان جي اهميت ڏني وئي - جديد پروگرامنگ جي ڊائننگ روڊ. ۽ جتي MySQL آهي، اتي ٻيا SQL آهن. خير، Fortran-Pascal-Pythons جي سڀني قسمن کي پڻ Matryoshka پاران بيان ڪيو ويو آهي، جيئن ئي اهي ان تي هٿ کڻندا آهن.

تنهن ڪري، وڏيون شيون اسان جو انتظار ڪري رهيون آهن - سي ٻولي جي هڪ لاڳو ڪيل وضاحت ۽ ٻولين جو هڪ متحد بيان جيڪي ان جي پيروي ڪندا آهن. "اسان جا مقصد واضح آهن، اسان جا ڪم بيان ڪيا ويا آهن. ڪم تي وڃو، ساٿيو! (طوفاني، ڊگھي تاليون، واڪ ۾ بدلجڻ، هرڪو اٿي بيٺو.)

توهان جي راءِ کي وڏي توجه سان ٻڌو ويندو، nesting dolls ويب سائيٽ ٺاهڻ ۾ توهان جي مدد وڏي مهرباني سان قبول ڪئي ويندي. ڪتاب جي باري ۾ وڌيڪ مڪمل معلومات ويب سائيٽ تي آهي، چٽيء طرح لڪيل Matryoshka C.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو