ڇا Lisp خاص ڪيو

«سڀ کان وڏي پروگرامنگ ٻولي ڪڏهن ٺاهي وئي«
- الان ڪي، "لسپ تي"

ڇا Lisp خاص ڪيو

جڏهن ميڪارٿي 1950ع جي ڏهاڪي جي آخر ۾ لِسپ کي ترقي ڪئي ته اها موجوده ٻولين کان بنيادي طور مختلف هئي، جن مان سڀ کان اهم ٻولي هئي. قلعي جو.

Lisp نوان نوان خيال متعارف ڪرايا:

1. شرطون. مشروط بيان آهن if-thin-else تعميرات. هاڻي اسان انهن کي سمجهي وٺون ٿا. اهي هئا ايجاد ڪيو ليسپ جي ترقي دوران McCarthy. (ان وقت فورٽران وٽ صرف گوٽو بيان هئا، جيڪي هيٺئين هارڊويئر تي هڪ شاخ جي هدايتن سان ويجهي سان جڙيل هئا.) McCarthy، Algol ڪميٽي ۾ رهڻ دوران، Algol کي مشروط مدد ڏني، جتان اهي ٻين ٻولين ۾ پکڙجي ويا.

2. فنڪشن جو قسم. Lisp ۾، فنڪشن پهرين درجي جون شيون آهن - اهي هڪ ڊيٽا جو قسم آهن، جهڙوڪ انگ، تار، وغيره، ۽ هڪ لفظي نمائندگي آهي، متغير ۾ ذخيرو ٿي سگهي ٿو، دليلن جي طور تي منظور ڪري سگهجي ٿو، وغيره.

3. ورجائي. Recursion، يقينا، Lisp کان اڳ هڪ رياضياتي تصور جي طور تي موجود هو، پر Lisp ان جي حمايت ڪرڻ لاء پهرين پروگرامنگ ٻولي هئي. (شايد فرسٽ ڪلاس آبجیکٹ جي طور تي فنڪشن ٺاهڻ ۾ اهو مطلب آهي.)

4. متغير جو هڪ نئون تصور. Lisp ۾، سڀئي متغير موثر اشارا آهن. قدر اھي آھن جن جا قسم آھن، متغير نه آھن، ۽ متغيرن کي تفويض يا پابند ڪرڻ جو مطلب آھي نقل ڪندڙ پوائنٽر، نه ته اھي جيڪي اشارو ڪن ٿا.

5. ڪچرو گڏ ڪرڻ.

6. پروگرامن جو ٺهيل اظهار. Lisp پروگرام اظهار جا وڻ آهن، جن مان هر هڪ قدر موٽائي ٿو. (ڪجهه Lisp ايڪسپريس ڪيترن ئي قدرن کي واپس ڪري سگھن ٿا.) هي فورٽران ۽ ٻين ڪيترن ئي ڪامياب ٻولين سان مقابلو ڪري ٿو جيڪي "اظهار" ۽ "بيانن" جي وچ ۾ فرق ڪن ٿا.

فورٽران ۾ اهو فرق هجڻ فطري هو ڇاڪاڻ ته ٻولي لڪير تي مبني هئي (اهڙي ٻولي لاءِ حيرت جي ڳالهه ناهي جنهن جي ان پٽ فارميٽ هڪ پنچڊ ڪارڊ هو). توهان nested بيان نه ٿي سگهيا آهن. ۽ جيستائين توهان کي ڪم ڪرڻ لاءِ رياضياتي اظهار جي ضرورت آهي، اتي ڪا به شيءِ حاصل ڪرڻ جو ڪو به مطلب نه هو هڪ قدر واپسي ڇاڪاڻ ته شايد واپس ٿيڻ جي انتظار ۾ ڪا به شيءِ نه هجي.

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

جڏهن ٻولي مڪمل طور تي اظهار جي ٺهيل آهي، توهان اظهار کي ترتيب ڏئي سگهو ٿا ڪنهن به طريقي سان توهان چاهيو ٿا. توهان يا ته لکي سگهو ٿا (نحو استعمال ڪندي آرڪ)

(if foo (= x 1) (= x 2))

يا

(= x (if foo 1 2))

7. علامت جو قسم. اکر تارن کان مختلف آهن، ان صورت ۾ توهان پوائنٽرن جي مقابلي ڪندي برابري جي جانچ ڪري سگهو ٿا.

8. ڪوڊ لاء هڪ اشارو علامتي وڻ استعمال ڪندي.

9. سڄي ٻولي هميشه موجود آهي. پڙهڻ وقت، مرتب وقت ۽ هلائڻ وقت جي وچ ۾ ڪو واضح فرق ناهي. توهان ڪوڊ گڏ ڪري سگهو ٿا يا هلائي سگهو ٿا جڏهن توهان پڙهندا آهيو، يا ڪوڊ پڙهو يا هلائي سگهو ٿا جڏهن توهان گڏ ڪري سگهو ٿا، يا ڪوڊ پڙهو يا گڏ ڪري سگهو ٿا جڏهن اهو هلندو آهي.

رننگ ڪوڊ پڙهڻ دوران صارفين کي Lisp جي نحو کي ٻيهر پروگرام ڪرڻ جي اجازت ڏئي ٿو. گڏ ڪرڻ واري وقت تي هلندڙ ڪوڊ ميڪروز جو بنياد آهي. رن ٽائم ڪمپليشن Lisp استعمال ڪرڻ جو بنياد آھي پروگرامن ۾ ايڪسٽينشن ٻولي جي طور تي جيئن Emacs؛ ۽ آخرڪار، رن ٽائم ريڊنگ پروگرامن کي s-expressions استعمال ڪندي گفتگو ڪرڻ جي اجازت ڏئي ٿي، هڪ خيال تازو ئي XML ۾ بحال ٿيو آهي.

ٿڪل

جڏهن Lisp پهرين ايجاد ڪئي وئي، اهي خيال روايتي پروگرامنگ جي عملن کان پري رويا هئا جيڪي 1950 جي ڏهاڪي ۾ موجود هارڊويئر پاران ترتيب ڏنل آهن.

وقت گذرڻ سان گڏ، ڊفالٽ ٻولي، مشهور ٻولين جي ڪاميابيءَ سان جڙيل، آهستي آهستي لِسپ (Lisp) ڏانهن وڌي وئي. پوائنٽس 1-5 هاڻي وڏي پيماني تي قبول ڪيا ويا آهن. پوائنٽ 6 مکيه وهڪرو ۾ ظاهر ٿيڻ شروع ٿي رهيو آهي. Python ۾، ھڪڙي شڪل ۾ ھڪڙي شق 7 آھي، جيتوڻيڪ ڪو مناسب نحو موجود نه آھي. آئٽم 8، جيڪو (آئٽم 9 سان) ميڪرو کي Lisp ۾ ممڪن بڻائي ٿو، اڃا تائين صرف Lisp ۾ آهي، شايد ان ڪري جو (a) ان کي ضرورت آهي اهي قوسون يا ڪا شيءِ جيتري خراب، ۽ (b) جيڪڏهن توهان طاقت ۾ هن تازي واڌ کي شامل ڪريو ٿا، توهان ڪري سگهو ٿا هاڻي ڪنهن نئين ٻولي ايجاد ڪرڻ جي دعويٰ نه ڪئي آهي، پر صرف Lisp جي هڪ نئين لهجي کي ترقي ڪئي آهي؛ -)

جيتوڻيڪ اهو جديد پروگرامرز لاءِ ڪارآمد آهي، ليسپ کي ان جي فرق جي لحاظ کان بيان ڪرڻ عجيب آهي ٻين ٻولين ۾ اختيار ڪيل بي ترتيب ٽيڪنالاجي کان. اهو شايد نه هو جيڪو McCarthy سوچي رهيو هو. Lisp Fortran جي غلطين کي درست ڪرڻ لاء ٺهيل نه هئي؛ اها ڪوشش جي هڪ پيداوار جي طور تي وڌيڪ ظاهر ٿيو axiomateize حساب.

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

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