अब, प्रोग्रामिंग भाषाओं को KISS दृष्टिकोण एक अजीब धारणा, यदि आप भाषाओं प्रोग्रामिंग एक CPU के अनुदेश सेट, आदि के लिए एक अमूर्त परत पर विचार कम से कम आपके द्वारा निर्धारित नहीं करते हैं "किस" और अधिक बारीकी से है। मैं बस यहाँ कह रहा हूँ, एक OXCART KISS अपनी पूर्णता के साथ एक कार के लिए आवेदन किया है।
अब KISS की एक और व्याख्या की तरह "चालाकी से अनावश्यक गहने के बिना किया और वह बहुत जटिल नहीं" कुछ हो सकता है। विशेष रूप से एक यह तर्क दे सकता है कि समान चीजों के लिए बहुत अधिक विशिष्ट मामले नहीं होने चाहिए, आदि आमतौर पर गणित अपने सार में सामान को उबालने में काफी अच्छा है, और - ओ आश्चर्य - गणितज्ञों ने प्रोग्रामिंग और कंप्यूटर के बारे में भी सोचने में कुछ समय बिताया है ।
प्रोग्रामिंग के लिए, 2 काफी प्रसिद्ध सार मॉडल मौजूद हैं:
- एक ट्यूरिंग मशीन है जो एक मशीन और एक सरल निर्देशात्मक मॉडल को परिभाषित करता है जो एक कंप्यूटर जो कुछ भी कर सकता है, उसे गणना करने में सक्षम है।
- चर्च एट द्वारा अन्य एक लैम्बडा-कैलकुलस है। अल। यह सत्ता में बराबर है
मज़ा बात है: एक ओर जहां ट्यूरिंग मशीन अपने लेआउट में काफी सरल है, यह एक ऐसी प्रणाली संभाल करने के लिए आसान है कि नहीं है और मैं इसे "स्मार्ट किस" के लिए उत्तीर्ण नहीं लगता। लेकिन लैम्ब्डा कैलकुलस का प्रोग्रामिंग भाषाओं के साथ अधिक है जो हम जानते हैं - और लिम्बडा कैलकुलस की लिस्प और स्कीम अग्रणी विशेषताओं के साथ इसने कई भाषाओं में अपना रास्ता बना लिया है।
लिस्प और स्कीम वास्तव में सरल हैं, कम से कम वाक्यविन्यास बुद्धिमान हैं। प्रोग्रामिंग भाषाओं के साथ सिंटैक्स एक बड़ी समस्या है (जो शायद इसीलिए उन्हें हर समय पुष्ट किया जाता है)। C ++ के मामले में मानव मस्तिष्क के लिए यह अनुमान लगाना लगभग असंभव है कि संकलक द्वारा कुछ स्रोत रेखाओं की व्याख्या कैसे की जाती है।)
लिस्प्स आज्ञाओं के लिए एक सामान्य रूप को प्रस्तुत करके वाक्य रचना की जटिलता को पूरी तरह से कम कर रहे हैं:
(command param1 param2 ...)
इस तरह के रूप में एक विधि कॉल, हो सकता है
(max 1 2 3 4)
साथ ही अगर एक शाखा, लूप आदि।
(if (< 1 2)
(write 4)
(write 5))
(यहाँ सभी कोड छद्म लिस्प / बोली अज्ञेय है)
फार्म
(command param1 param2 ...)
एक सूची के रूप में भी व्याख्या की जा सकती है
(item1 item2 item3)
और यही लिस्प्स सादगी और सुंदरता का आधार है। क्योंकि नेस्टेड सूचियों (जैसे if
कथन उदाहरण में) पेड़ों का निर्माण करती हैं और जिन्हें मशीन द्वारा और मशीन के सामने मानव द्वारा आसानी से समझा जा सकता है।
लिस्प्स की एक अन्य विशेषता मैक्रोज़ हैं जो मैं यहां गंदे विस्तार में नहीं जाऊंगा, लेकिन चूंकि सामान्य फ़ंक्शन कॉल और "सिंटैक्स (अंडाकार छोरों के लिए अंडा), चर घोषणा, आदि के बीच कोई वाक्यात्मक अंतर नहीं है, जो कुछ भी पार्सर को दूसरे में संभालना पड़ता है। प्रोग्रामिंग लैंग्वेज) आप अपना स्वयं का सिंटैक्स बना सकते हैं। मैक्रोज़ सार में हैं ट्री ऑफ मैनिपुलेशन जो आपके प्रोग्राम का गठन करता है।
मुझे लगता है कि लिस्प प्रोग्रामिंग करने के लिए एक KISS है। यह कि आप मैक्रो का उपयोग करके वाक्यविन्यास में हेरफेर कर सकते हैं, जिससे लिस्प काफी गतिशील रूप से विकसित हो गया है। आवश्यकता की तरह एक नई भाषा सुविधा - बस मैक्रो के साथ एक OOP प्रणाली बारे में - कहते हैं कि वस्तु उन्मुखीकरण देता है!
जबकि C को OOP फीचर्स (C ++, Obj। C) के साथ 2 बार राउंडअबाउट बढ़ाया गया था, लिस्प को कई बार बढ़ाया गया था, अंत में एक विजेता था।
यह लिस्प के बारे में एक और विचित्रता है, यह विकसित होता है (लिस्प के दिलचस्प नए उत्परिवर्तन के लिए क्लोजुरे और क्लोजुरस्क्रिप्ट देखें)।
इसके KISS प्रॉपर्टी के लिए Lisps कुछ लोगों द्वारा भाषाओं को पढ़ाने के रूप में इष्ट है। जैसे एक शैक्षिक भाषा के अपने खाका में फोगस की रूपरेखा ( http://blog.fogus.me/2013/01/21/enfield-a-programming-language-designed-for-pedagogy/ )
शुरू करने के लिए, मैं मजबूत विश्वास रखता हूं कि जब नया सीखते हैं, और कई बार जटिल विषयों पर यह छात्रों के लिए प्रतिकूल सिंटैक्स नियमों के साथ अधिभार के लिए हानिकारक है। इसलिए, एनफ़ील्ड को न्यूनतम सिंटैक्स नियमों के साथ डिज़ाइन किया गया है और सिंटेक्स जैसे लिस्प की तुलना में अधिक न्यूनतम क्या है।