ল্যাম্বডা ক্যালকুলাস কি অধ্যয়নের জন্য প্রাসঙ্গিক করে তোলে?


10

আমি পরের শরতে একটি স্নাতক কম্পিউটার বিজ্ঞান কোর্স শুরু করছি, তবে কার্যকরী প্রোগ্রামিংয়ের প্রসঙ্গে আমি সত্যিই λ-ক্যালকুলাস বুঝতে পারি না। আমি এটির পুরোপুরি ভুল ব্যাখ্যা করতে পারি, তবে দর্শনশাস্ত্রের স্ট্যানফোর্ড এনসাইক্লোপিডিয়া থেকে এই সংজ্ঞাটির ভিত্তিতে এটি কার্যকারণের জন্য এটি অন্য একটি স্বীকৃতি।

যদি এটি ঠিক তেমন হয় তবে অ্যালগরিদম রান সময় গণনা করার জন্য নিয়মিত ফাংশন স্বরলিপিগুলির চেয়ে λ-ক্যালকুলাস ব্যবহার করা কেন সুবিধাজনক?


5
এটি "ফাংশনগুলির জন্য অন্য একটি স্বরলিপি" নয় "ফাংশনের জন্য প্রথম স্বরলিপি"।
আন্দ্রেজ বাউর 18

পরামর্শের জন্য ধন্যবাদ, কাভেহ। আমি ভবিষ্যতের পোস্টগুলির জন্য এটি মাথায় রাখব, তবে মিলভেনদের উত্তরটি দুর্দান্ত, সুতরাং ক্রসপোস্টের দরকার নেই।

এটি বস্তুগুলির একটি আনুষ্ঠানিকভাবে সংজ্ঞায়িত সংস্থা। আপনার সঠিক সমস্যাটি কী তা আমি দেখছি না।
রাফায়েল

আমি ল্যাম্বডা ক্যালকুলাস সম্পর্কে না জানার আগে পর্যন্ত পরিভাষাটি বা জিনিসগুলি কেন ফাংশনাল প্রোগ্রামিংয়ে করা হয় তা আসলে বুঝতে পারি নি। এটি সফ্টওয়্যার নির্মানকে অনেক কম স্বেচ্ছাসেবী মনে করে।
ডানসালমো

উত্তর:


13

কম্পিউটার বিজ্ঞানে আমরা গাণিতিক কঠোরতার সাথে উত্স-কোডটি বিশ্লেষণ করতে এবং বুঝতে চাই। নিখুঁত নিশ্চয়তার সাথে আকর্ষণীয় বৈশিষ্ট্য (যেমন সমাপ্তি) প্রমাণ করার একমাত্র উপায় to তার জন্য আমাদের প্রতিটি নির্মাণের জন্য খুব সু-সংজ্ঞায়িত অর্থ সহ একটি ভাষা প্রয়োজন।

তাত্ত্বিকভাবে এটি কোনও ভাল ফর্মাল শব্দার্থবিদ্যার সাথে যে কোনও ভাষা হতে পারে । তবে জিনিসগুলিকে কম জটিল এবং ত্রুটির প্রবণতা তৈরি করার জন্য, এমন ভাষা ব্যবহার করা ভাল যা যথাসম্ভব সহজ তবে তবুও কোনও প্রোগ্রাম প্রকাশ করতে সক্ষম (যেমন টুরিং সম্পূর্ণ )। অত্যাবশ্যক কোড সম্পর্কে যুক্তির জন্য, এখানে ট্যুরিং মেশিন রয়েছে । ফাংশনাল প্রোগ্রামিং সম্পর্কে তর্ক করার জন্য, ক্যালকুলাস রয়েছে।λ

বেসিক ল্যাম্বদা-ক্যালকুলাস একটি কার্যকরী প্রোগ্রামিং ভাষার মতো তবে প্রচুর 'ব্যাগেজ' বেরিয়ে আসে। প্রোগ্রামগুলি লেখার জন্য এটি একটি দুর্দান্ত ভাষা হওয়া গুরুত্বপূর্ণ নয়, এটি দক্ষ ভাষাও নয়। কেবল এটি সহজ এবং মতামতপূর্ণ। উদাহরণস্বরূপ, আমাদের লুপগুলির দরকার নেই, কারণ আমরা এগুলি পুনরাবৃত্তির সাথে অনুকরণ করতে পারি। এবং আমাদের একাধিক পরামিতিগুলির সাথে ফাংশনগুলির প্রয়োজন নেই, যেহেতু আমরা কারিয়ের সাথে তাদের অনুকরণ করতে পারি ।λ

এখন, এক পর্যায়ে আপনি কনস্ট্রাক্টস সম্পর্কিত বৈশিষ্ট্যগুলি প্রমাণ করতে চাইতে পারেন যা মৌলিক ( অব্যক্ত ) ল্যাম্বদা-ক্যালকুলাসের অংশ নয়। এই কারণেই কম্পিউটার বিজ্ঞানীরা বছরের পর বছর ধরে এটি বিভিন্ন দিকে প্রসারিত করেছেন। উদাহরণস্বরূপ, টাইপ-সিস্টেমগুলি সম্পর্কে যুক্তিযুক্ত কারণ হিসাবে টাইপ করা ল্যাম্বদা-ক্যালকুলির অনেকগুলি বিভিন্ন প্রকারের রয়েছেλλλ


3
তবে, কিছু কম্পিউটার বিজ্ঞান সোর্স কোড বোঝার বিষয়ে হতে পারে তবে সাধারণ শব্দগুলির মধ্যে এটি সত্য বলে মনে হচ্ছে গাণিতিক দৃor়তার সাথে রকেট বোঝার বিষয়ে sounds কম্পিউটার বিজ্ঞান গণনা সম্পর্কে। একজন সংশ্লিষ্ট অভিযোগ ভাষার দক্ষতা আছে ব্যাপার যদি আপনি দক্ষতা এবং সুগঠিত সোর্স কোড পড়াশোনা করতে চান। সেই অর্থে, অপরিহার্য ভাষার একটি মডেল না করে দক্ষতার জন্য টিএমএস সম্পর্কে চিন্তা করার উপায় হিসাবে এটি সম্ভবত আরও ভাল (এবং উভয় উদ্দেশ্যেই শব্দ-র‌্যাম আরও ভাল পছন্দ হতে পারে)
সাশো নিকোলভ

বিটিডব্লিউ আমি যা লিখেছি তার অর্থ এই নয় যে আমি তোমার উত্তর পছন্দ করি না :)
সাশো নিকোলভ

একমত। ;-) স্থির
মেলভেনস

1
টুরিং মেশিন অনুজ্ঞাসূচক কোড সম্পর্কে যুক্তি এ নৃশংস হয়, এটা একটা সহজ মত একটি খেলনা ভাষা ব্যবহার করার অনেক সহজ যখন টাইপ ভাষা। stackoverflow.com/questions/507310/the- દરમ્યાન- ভাষা । জটিলতা তত্ত্ব অন্তর্দৃষ্টি জন্য টুরিং মেশিনগুলি খুব দরকারী।
কোডি

1

আশ্চর্যজনকভাবে প্রচুর বই ক্যালকুলাস সম্পর্কে লিস্প বা স্কিম , আধুনিক ভিত্তিক প্রোগ্রামিং ভাষার উপর ভিত্তি করে আলোচনা করে না, দুর্ভাগ্যবশত শিক্ষার্থীদের পুরানো এবং বিমূর্ত এবং বেশিরভাগ তাত্ত্বিক ধারণাটি রেখে যায়। লিস্প বা স্কিম অধ্যয়ন করা ক্যালকুলাসকে বুঝতে সহায়তা করার দুর্দান্ত কোণ হতে পারে ।λλλ

যদি এটি ঠিক তেমন হয় তবে অ্যালগরিদম রান সময় গণনা করার জন্য নিয়মিত ফাংশন স্বরলিপিগুলির চেয়ে λ-ক্যালকুলাস ব্যবহার করা কেন সুবিধাজনক?

লিস্প বা ফাংশনাল প্রোগ্রামিং ব্যবহার এবং অ্যালগরিদম রান সময় গণনা করার অনেক সুবিধা রয়েছে কেবল একটি সম্ভাবনা (যদিও আপনি যদি এর জন্য রেফ উল্লেখ করেন তবে এটি সহায়ক হবে)। যেহেতু এটি ইতিমধ্যে কার্যকরী স্বরলিপিতে রয়েছে কখনও কখনও অন্তর্ভুক্তি বা পুনরাবৃত্ত সম্পর্কের মাধ্যমে রান টাইমের সূত্রগুলি নির্ধারণের মূল কোডের সাথে আরও দৃ stronger় বা আরও সুস্পষ্ট সম্পর্ক থাকতে পারে। অ্যালগরিদমের অন্যান্য ধরণের বিশ্লেষণও সরল করা হয়েছে।

আর একটি প্রধান সুবিধা সিনট্যাক্টিকাল সরলতা। অন্যান্য ভাষার পার্সারগুলি অত্যন্ত জটিল তবে লিস্প পার্সারগুলি খুব সহজ। সুতরাং পার্সিং তত্ত্বটি অধ্যয়নের জন্য লিস্প একটি দুর্দান্ত ভাষা।

আরেকটি মূল বিষয় হ'ল "কম্পিউটার-বৈজ্ঞানিক" দৃষ্টিভঙ্গির চেয়ে লজিকাল বা গাণিতিক লেন্স / ভিউ থেকে সফ্টওয়্যারটিকে আরও বিশ্লেষণ করা ।

অন্য উত্তরটি উল্লেখ করে যে, লিস্প পুনরাবৃত্তির পরিবর্তে পুনরাবৃত্তি সম্পর্কে এবং সিএসের কেন্দ্রস্থলে পুনরাবৃত্তি খুব বেশি।

একটি " mb ভিউ" এবং আরও তথ্যের জন্য [1], একটি নিখরচায় অনলাইন এবং সেমিফামাস রেফারেন্সে পাওয়া যাবে।λ

[1] কম্পিউটার প্রোগ্রামগুলির কাঠামো এবং ব্যাখ্যা, অ্যাবেলসন এবং সুসমান দ্বারা

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.