এখন, প্রোগ্রামিং ভাষাগুলির প্রতি KISS পদ্ধতির একটি মজার ধারণা, যদি আপনি কমপক্ষে প্রোগ্রামিং ভাষাগুলি কোনও সিপিইউয়ের নির্দেশনা সেটকে বিমূর্ত স্তর হিসাবে বিবেচনা করেন, ইত্যাদি, যদি আপনি "KISS" আরও ঘনিষ্ঠভাবে সংজ্ঞায়িত না করেন। আমি কেবল এখানে বলছি, একটি অক্সকার্টটি সম্পূর্ণরূপে একটি গাড়ীতে প্রয়োগ করা হয় KISS।
এখন কেআইএসএসের আর একটি ব্যাখ্যা হতে পারে "অযত্ন অলঙ্কারগুলি ছাড়া স্মার্টলি করা এবং অত্যধিক জটিল নয়" like বিশেষত একটি যুক্তিযুক্ত হতে পারে যে অনুরূপ জিনিসগুলির জন্য খুব বেশি নির্দিষ্ট কেস হওয়া উচিত নয়, ইত্যাদি Usually সাধারণত গাণিতিক উপাদানগুলিকে তার সারাংশে ফুটিয়ে তুলতে বেশ ভাল, এবং - ও অবাক - গণিতবিদরা প্রোগ্রামিং এবং কম্পিউটার সম্পর্কেও কিছুটা সময় ব্যয় করেছেন well ।
প্রোগ্রামিংয়ের জন্য, 2 বেশ কয়েকটি বিখ্যাত বিমূর্ত মডেল উপস্থিত রয়েছে:
- একটি হ'ল টিউরিং মেশিন যা একটি মেশিন এবং একটি সাধারণ শিক্ষামূলক মডেল সংজ্ঞা দেয় যা কম্পিউটার যা করতে পারে তার সমস্ত কিছু গণনা করতে সক্ষম comp
- অন্যটি হ'ল চার্চ এট-এর ল্যাম্বদা-ক্যালকুলাস। অল। এটি ক্ষমতার সমতুল্য
মজার বিষয় হ'ল টিউরিং মেশিনটি এর বিন্যাসে বেশ সহজ হলেও এটি এমন কোনও সিস্টেম যা পরিচালনা করা সহজ নয় এবং আমি মনে করি না এটি "স্মার্ট কেআইএসএস" এর জন্য যোগ্যতা অর্জন করে। তবে ল্যাম্বডা ক্যালকুলাসের আমাদের জানা প্রোগ্রামিং ভাষাগুলির সাথে আরও বেশি কিছু করার রয়েছে - এবং ল্যাম্পা ক্যালকুলাসের লিস্প এবং স্কিমের অগ্রণী বৈশিষ্ট্যগুলির সাহায্যে এটি অনেকগুলি ভাষায় প্রবেশ করেছে।
লিস্প এবং স্কিমটি হ'ল সহজ, কমপক্ষে সিনট্যাক্স অনুযায়ী। প্রোগ্রামিং ল্যাঙ্গুয়েজে সিনট্যাক্স একটি বড় সমস্যা (এ কারণেই সম্ভবত তারা সর্বদা পুনরায় নতুন করে তৈরি করা হয়)। সি ++ এর ক্ষেত্রে মানব মস্তিষ্কের জন্য ভবিষ্যদ্বাণী করা প্রায় সোর্স নয় যে সংকলক দ্বারা কিছু উত্সের রেখা কীভাবে ব্যাখ্যা করা হয়।)
লিপস কমান্ডের জন্য একটি সাধারণ ফর্ম প্রবর্তন করে সিনট্যাকটিকাল জটিলতা পুরোপুরি হ্রাস করছে:
(command param1 param2 ...)
এটি কোনও মেথড কল হতে পারে, যেমন
(max 1 2 3 4)
পাশাপাশি একটি if শাখা, লুপ ইত্যাদি
(if (< 1 2)
(write 4)
(write 5))
(এখানে সমস্ত কোড সিউডো-লিস্প / ডায়ালেক্ট অগ্নোস্টিক)
ফর্ম
(command param1 param2 ...)
একটি তালিকা হিসাবে ব্যাখ্যা করা যেতে পারে
(item1 item2 item3)
এবং এটি লিস্পস সরলতা এবং সৌন্দর্যের ভিত্তি। কারণ নেস্টেড তালিকাগুলি ( if
বিবৃতি উদাহরণের মতো) গাছ গঠন করে এবং এগুলি মেশিনের মাধ্যমে এবং মেশিনের সামনের মানুষ উভয়ই সহজেই বুঝতে পারে।
লিসপসের আর একটি বৈশিষ্ট্য হ'ল ম্যাক্রোগুলি আমি এখানে নোংরা বিশদতে যাব না, তবে যেহেতু সাধারণ ফাংশন কল এবং "সিনট্যাক্স (লুপগুলির জন্য ডিম, ভেরিয়েবল ডিকোরিয়েশন ইত্যাদি) এর মধ্যে কোনও সিনট্যাক্টিক পার্থক্য নেই, পার্সারকে অন্য যে কোনও জিনিস হ্যান্ডেল করতে হয় everything প্রোগ্রামিং ল্যাঙ্গুয়েজ) আপনি নিজের সিনট্যাক্স তৈরি করতে পারেন Mac ম্যাক্রোস আসলে আপনার প্রোগ্রামটি গঠন করে এমন গাছের ম্যানিপুলেশন ।
আমি মনে করি প্রোগ্রামিংয়ের জন্য লিস্পের একটি KISS রয়েছে। ম্যাক্রো ব্যবহার করে আপনি সিনট্যাক্সটি হেরফের করতে পারেন এমন একটি ঘটনা ঘটেছে যা লিস্প বেশ গতিশীলভাবে বিবর্তিত হয়েছে। একটি নতুন ভাষার বৈশিষ্ট্য যেমন - অবজেক্ট ওরিয়েন্টেশন বলা যাক - কেবল ম্যাক্রো সহ একটি ওওপি সিস্টেম লিখুন!
যদিও ওওপি বৈশিষ্ট্যগুলি (সি ++, ওবজ। সি) লিস্পকে 2 বার চতুর্দিকে আউট করা হয়েছিল, লিস্প একাধিকবার বাড়ানো হয়েছিল, শেষ পর্যন্ত সেখানে বিজয়ী ছিল।
এটি লিস্প সম্পর্কে আরও গৌরব, এটি বিকশিত হয় (লিস্পের আকর্ষণীয় নতুন মিউটেশনের জন্য ক্লোজার এবং ক্লোজারস স্ক্রিপ্ট দেখুন)।
KISS এর বৈশিষ্ট্যগুলির জন্য লিস্পসকে কিছু লোক ভাষা শেখানোর পক্ষে পছন্দ করে। ফোগাস তার শিক্ষাগত ভাষার ব্লুপ্রিন্টে রূপরেখার মতো ( http://blog.fogus.me/2013/01/21/enfield-a-programming-language-disedigned- for-pedagogy/ )
শুরু করার জন্য, আমি দৃ strong় বিশ্বাসী যে নতুন শিখার সময়, এবং অনেক সময় জটিল বিষয়গুলি অযৌক্তিক সিনট্যাক্স বিধিগুলি সহ শিক্ষার্থীদের ওভারলোড করা সম্পূর্ণরূপে ক্ষতিকারক। সুতরাং, এনফিল্ডটি ন্যূনতম সিনট্যাক্স বিধি এবং সিনট্যাক্সের মতো লিস্পের চেয়ে আরও ন্যূনতম কিসের সাথে ডিজাইন করা হয়েছে।