প্রোগ্রামিং ভাষা এবং গণিতের ভিত্তি কীভাবে সম্পর্কিত?


30

মূলত আমি গণিতের তিনটি ভিত্তি সম্পর্কে সচেতন

  1. সেটতত্ত্ব
  2. প্রকার তত্ত্ব
  3. বিভাগ তত্ত্ব

সুতরাং কীভাবে প্রোগ্রামিং ভাষা এবং গণিতের ভিত্তি সম্পর্কিত?

সম্পাদনা

মূল প্রশ্নটি ছিল "গণিতের ভিত্তিতে প্রোগ্রামিং ভাষা"

যুক্ত প্যারাগার্ফ সঙ্গে

এবং তত্ত্বের বাস্তবায়ন
১. কোক-
তে থিওরি টাইপ করুন SE
. এসইটিএল-তে তত্ত্ব সেট করুন Has . হাস্কেলের মধ্যে বিভাগ তত্ত্ব theory

একটি পরামর্শের ভিত্তিতে এটিকে "প্রোগ্রামিং ভাষা এবং গণিতের ভিত্তিগুলি কীভাবে সম্পর্কিত হয়" তে পরিবর্তন করা হয়েছিল

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

এখন পর্যন্ত সমস্ত মন্তব্য এবং উত্তরের জন্য ধন্যবাদ, আমি তাদের কাছ থেকে শিখছি।


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

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


উত্তর:


29

[দ্রষ্টব্য: এই অনুচ্ছেদগুলি এখন পুরানো]] আপনার প্রশ্নের শিরোনামে একটি অযাচিত অনুমিতি রয়েছে, যথা প্রোগ্রামিং ভাষা "গণিতের ভিত্তিতে"। সাধারণত এটি হয় না, যদিও দুটি ক্ষেত্রের গুরুত্বপূর্ণ সম্পর্ক রয়েছে। আরও সঠিক বিবৃতিটি হ'ল (কয়েকটি) প্রোগ্রামিং ল্যাঙ্গুয়েজগুলি ফাউন্ডেশনাল কৌশলগুলি ব্যবহার করে ডিজাইন করা হয়েছিল। আরও ভাল প্রশ্ন জিজ্ঞাসা করা হবে "প্রোগ্রামিং ভাষা এবং গণিতের ভিত্তি কীভাবে সম্পর্কিত?"

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

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

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

মোরগ হয় না একটি প্রোগ্রামিং ভাষা বরং প্রমাণ সহায়ক। যাইহোক, এটিরও নিষ্কাশন ক্ষমতা রয়েছে যা প্রমাণগুলি থেকে প্রোগ্রাম দেয়। প্রুফ সহকারী এবং প্রোগ্রামিং ভাষা একে অপরের সাথে বিভ্রান্ত হওয়া উচিত নয়।

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

হাস্কেল একটি সাধারণ উদ্দেশ্যে প্রোগ্রামিং ভাষা যা ডোমেন তত্ত্বের ভিত্তিতে তৈরি । এটি বলার জন্য, এর শব্দার্থবিজ্ঞানটি ডোমেন-তাত্ত্বিক কারণ এটি আংশিক ফাংশন এবং পুনরাবৃত্তির জন্য অ্যাকাউন্ট করতে হবে account হাস্কেল সম্প্রদায় বিভাগের তত্ত্ব দ্বারা অনুপ্রাণিত হয়ে অনেকগুলি কৌশল উদ্ভাবন করেছে, যার মধ্যে মনাদ সর্বাধিক পরিচিত তবে মনাদের সাথে বিভ্রান্ত হওয়া উচিত নয় । আরও সাধারণভাবে, উন্নত প্রোগ্রামিং বৈশিষ্ট্যগুলি সাধারণত ডোমেন তত্ত্ব এবং বিভাগের তত্ত্বের সংমিশ্রণে চিকিত্সা করা হয়, তবে রাস্তায় হাস্কেল প্রোগ্রামার এতে পারদর্শী এমন কিছু নয়। হাস্কেল প্রকারের তথাকথিত "সিনট্যাকটিক বিভাগ" হ্যাশকেল এবং বিভাগের তত্ত্ব একে অপরের সাথে কীভাবে সামঞ্জস্য হয় সে সম্পর্কে একটি সাধারণ লোকের দৃষ্টিভঙ্গি।

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

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


" গণনা প্রমাণ অনুসন্ধান যে ধারণা ।" আমি এই বক্তব্য দ্বারা বিভ্রান্ত। নিশ্চয়, প্রুফ অনুসন্ধান গণনার একটি ফর্ম, তবে সমস্ত গণনা প্রমাণ অনুসন্ধান নয়? এই প্রশ্নের প্রসঙ্গে প্রুফ যাচাই, টাইপ চেকিংও রয়েছে। আরও সাধারণভাবে, কেবল 5 + 3 যোগ করা। আপনি এই বিবৃতি বলতে কি বোঝাতে চাই?
user56834

6

এটি একটি খুব জটিল বিষয় এবং এই বিষয়ে অনেক দুর্দান্ত বই রয়েছে, সাম্প্রতিক একটিকে বলা হয় টারিংস ক্যাথেড্রাল, ডিজিটাল মহাবিশ্বের উত্স এবং যুক্তি, গণিতবিদ এবং কম্পিউটারের উত্সের ইঞ্জিনও

কম্পিউটারের ভাষাগুলি বহু দশক ধরে বিকশিত হয়েছে, তবে এটি বিশ্বাস করুন বা না দুটি মূল প্রোগ্রামিং ভাষা রয়েছে যা দেখায় যে গণিত এবং কম্পিউটার বিজ্ঞান অন্তরঙ্গভাবে জড়িত:

দুটি মূল ব্যক্তিত্ব রয়েছে যারা গাণিতিক এবং কম্পিউটার বিজ্ঞানের সীমানা পেরিয়েছিলেন "প্রোগ্রামিং ভাষাগুলি":

  • শ্যানন দ্বারা পরিচালিত তথ্য তত্ত্ব গণিত এবং কম্পিউটার বিজ্ঞানের মধ্যে গভীর সংযোগ দেখায়

  • গণিত এবং কম্পিউটার বিজ্ঞানের মধ্যে অতিক্রমকারী আরেকটি মূল চিত্র হলেন ভন নিউমান । তিনি স্মৃতিতে প্রোগ্রাম সংরক্ষণের ভন নিউম্যান আর্কিটেকচার আবিষ্কার করেছিলেন।

এমনকি "প্রোগ্রামিং ভাষা":

  • ইংরেজি কম্পিউটার "কম্পিউটার" বলতে মূলত "ক্যালকুলেটর" এর মতো আরও কিছু বোঝায় যা সংখ্যার উপর গাণিতিক ক্রিয়াকলাপ ব্যবহার করেছিল এবং এর অর্থ আজকের সাধারণ-উদ্দেশ্য প্রোগ্রামিং ধারণায় যথেষ্ট পরিমাণে স্থানান্তরিত হয়েছে। সুতরাং প্রোগ্রামিং ভাষা এবং প্রাথমিক ক্যালকুলেটরগুলির মধ্যে একটি সংযোগ রয়েছে।
  • 19 তম এবং 20 শতকের গোড়ার দিকে তাঁতের তাঁতে ব্যবহৃত পঞ্চ কার্ডগুলি বুননের ধরণগুলির জন্য "প্রোগ্রামিং ভাষা" ছিল। নোট করুন যে পঞ্চ কার্ডগুলি 1960 এর দশকে মেনফ্রেমগুলি প্রোগ্রামিংয়ের জন্য ব্যবহৃত হয়েছিল। এগুলিকে মূলত "গণনা মেশিন" হিসাবে দেখা হত (গণিত ব্যবহার করে!) এত আধুনিক, সাধারণ উদ্দেশ্যে কম্পিউটার নয়।
  • ব্যাবেজ এবং অ্যাডা লাভলেস 1800 এর দশকের মাঝামাঝি সময়ে "গণনাকারী ইঞ্জিন" তে "প্রোগ্রামিং ভাষাগুলির" প্রাথমিক প্রাথমিক ধারণাটি তৈরি করেছিলেন
  • বুলিয়ান বীজগণিতটি মূলত বুলে দ্বারা উদ্ভাবিত খাঁটি গণিতের ধারণা ছিল
  • গাণিতিক গণনার জন্য প্রাচীন (সহস্রাব্দের পুরাতন) অ্যাবাকাসকে আধুনিক কম্পিউটারের অগ্রদূত হিসাবে দেখা হয়। তবে এটি বলা যেতে পারে যে এটির কৌশলগতভাবে পরিচালনার কাজগুলি ছিল এক ধরণের "প্রোগ্রামিং ল্যাঙ্গুয়েজ" (মানুষেরা অনুসরণ করে)

যাইহোক, আধুনিক প্রোগ্রামিং ভাষায় যেমন বিমূর্ততা বৃদ্ধি পেয়েছে এবং ছোট আকার ধারণ করেছে, কয়েক দশক ধরে গণিতের সাথে স্পষ্ট, প্রত্যক্ষ যোগাযোগ কিছুটা হ্রাস পেয়েছে তবে এটি সর্বদা অভ্যন্তরীণ হতে চলেছে এবং কিছু উপায়ে এটি শক্তিশালী হয়েছে। উদাহরণস্বরূপ জাভা যেমন এর কঠোর প্রকারের সাথে গণিতের সংযোগ রয়েছে এবং ১৯৯০ এর দশকের শেষের দিকে মূলধারার কম্পিউটার ভাষা (যেমন সি ++, জাভা, রুবি ইত্যাদি) বহু গাণিতিক উচ্চ-স্তরের অবজেক্টগুলিকে স্পষ্টতই আদিমদের নিকটবর্তী হিসাবে প্রয়োগ করা শুরু করে ভাষা যেমন সেট, গাছ (যেমন বিটিরিস বা হ্যাশম্যাপস) ইত্যাদি

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