আধুনিক প্রোগ্রামিং ভাষার বিকাশের জন্য প্রক্রিয়া ক্যালকুলি এবং পিএল তত্ত্বের ব্যবহার


10

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

উত্তর:


9

আমার উত্তরটি সত্যিই গিলসের একটি ব্যাখ্যা ', যা আমি আমার লেখার আগে পড়িনি। তবে এটি তবুও সহায়ক।

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

  • বিশুদ্ধ গবেষণা।

  • পণ্য নিবদ্ধ গবেষণা এবং বিকাশ।

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

বিচ্ছিন্ন লক্ষ্যের কারণে, প্রোগ্রামিং ল্যাঙ্গুয়েজ তত্ত্বের বিভিন্ন দিকগুলি খাঁটি গবেষণায় এবং পণ্য কেন্দ্রীভূত গবেষণা ও উন্নয়নে প্রাসঙ্গিক, নীচের ছবিটি কোথায় গুরুত্বপূর্ণ তা ইঙ্গিত দিতে পারে।

এখানে চিত্র বর্ণনা লিখুন

কেউ এই মুহুর্তে জিজ্ঞাসা করতে পারেন কেন দুটি মাত্রা এত বেশি আপাতদৃষ্টিতে পৃথক এবং তবুও তারা কীভাবে সম্পর্কযুক্ত।

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

  • প্রোগ্রামিংয়ের একটি নতুন ডোমেন খোলে যার স্থানচ্যুতকরণের কোনও আগমন নেই। প্রাথমিক উদাহরণটি জাভাস্ক্রিপ্টের সহবর্তী উত্থানের সাথে ওয়েব।

  • ভাষার আঠালোতা। এর দ্বারা আমি ভাষার পরিবর্তনের উচ্চ মূল্য বোঝাচ্ছি। তবে কখনও কখনও প্রোগ্রামাররা বিভিন্ন ক্ষেত্রে চলে যায়, তাদের সাথে একটি প্রোগ্রামিং ভাষা নিয়ে যায় এবং নতুন ক্ষেত্রে পুরানো ভাষার সাথে সফল হয়।

  • একটি ভাষা গুরুতর আর্থিক ফায়ারপাওয়ার সহ একটি বড় সংস্থার দ্বারা ঠেলে দেওয়া হয়। এই সমর্থনটি গ্রহণের ঝুঁকি হ্রাস করে, কারণ প্রাথমিক গ্রহণকারীরা নিশ্চিতভাবেই নিশ্চিত হতে পারে যে কয়েক বছরের মধ্যেও ভাষাটি সমর্থনযোগ্য। এর একটি ভাল উদাহরণ হ'ল সি #।

  • একটি ভাষা বাধ্যকারী সরঞ্জাম এবং ইকো-সিস্টেমের সাথে আসতে পারে। এখানেও সি # এবং এটি et নেট এবং ভিজ্যুয়াল স্টুডিও ইকো-সিস্টেমের উদাহরণ হিসাবে উল্লেখ করা যেতে পারে।

  • পুরানো ভাষাগুলি নতুন বৈশিষ্ট্য তুলে ধরে। জাভা মনে আসে, যা প্রতিটি পুনরাবৃত্তিতে ক্রিয়ামূলক প্রোগ্রামিং traditionতিহ্য থেকে আরও ভাল ধারণা অর্জন করে।

  • পরিশেষে, একটি নতুন ভাষার অভ্যন্তরীণ প্রযুক্তিগত সুবিধাগুলি থাকতে পারে, উদাহরণস্বরূপ আরও অভিব্যক্তিপূর্ণ হওয়া, ভাল সিনট্যাক্স থাকতে পারে, টাইপিং সিস্টেমে আরও ত্রুটি ধরা পড়ে ইত্যাদি ইত্যাদি

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

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

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

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

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


1
কি দারুন! এই চিত্রটি তৈরি করতে কত সময় লেগেছে এবং আমি কী ভবিষ্যতে এটি ব্যবহার করতে পারি?
কোডি

1
@ কোডি ওমনিগ্রাফলের সাথে কয়েক সেকেন্ড সময় নিয়েছে এবং এটি নির্দ্বিধায় ব্যবহার করে।
মার্টিন বার্গার

8

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

ব্যবহারিক প্রোগ্রামিং ভাষায় কোনও উদ্ভাবন ব্যবহারের যোগ্য হওয়ার জন্য কিছু তত্ত্ব যথেষ্ট স্থিতিশীল হওয়ার সময়ের মধ্যে বিলম্ব হয়, এবং এই উদ্ভাবনটি "মূলধারার" ভাষায় প্রদর্শিত হতে শুরু করে। উদাহরণস্বরূপ, আবর্জনা সংগ্রহের সাথে স্বয়ংক্রিয় মেমরি পরিচালনা 1960 এর দশকের মাঝামাঝি সময়ে শিল্প ব্যবহারের জন্য পরিপক্ক ছিল বলা যেতে পারে তবে 1995 সালে জাভা দিয়ে কেবল মূলধারায় পৌঁছেছিল 1970 1970 এর দশকের শেষভাগে প্যারামেট্রিক পলিমারফিজম ভালভাবে বোঝা গিয়েছিল এবং এটি তৈরি করেছিল 200 এর দশকের মাঝামাঝি জাভাতে একজন গবেষকের ক্যারিয়ারের স্কেলে, 30 বছর দীর্ঘ সময় হয় is

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

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

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

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

"তাদের কি কখনও প্রয়োজন হবে" তা গবেষণার ক্ষেত্রে কখনই উপযুক্ত প্রশ্ন নয়। এর ফলে দীর্ঘমেয়াদী পরিণতি কী হবে তা আগেই অনুমান করা অসম্ভব। আমি আরও এগিয়ে গিয়ে বলব যে এটি একটি নিরাপদ অনুমান যে কোনও গবেষণার একদিন পরিণতি হবে - আমরা ঠিক জানি না যে দিনটি পরের বছর বা পরের সহস্রাব্দে আসবে কিনা।


3

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

আমি জিজ্ঞাসার কারণটি হ'ল কারণ আমি প্রোগ্রামিং ভাষাগুলি বিকাশ করতে পছন্দ করি এবং আসল লক্ষ্যটি হ'ল তাত্ত্বিকতাকে আসলে পিএল তৈরি করতে ব্যবহার করা। আমি যে জিনিসগুলি লিখেছি তার জন্য তত্ত্বের সাথে সত্যিকারের কোনও সম্পর্ক নেই।

এটি একটি চতুর প্রশ্ন! আমি আপনাকে আমার ব্যক্তিগত মতামত জানাব, এবং আমি জোর দিয়ে বলব যে এটি আমার মতামত

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

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

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

ABAB

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

এটি কনক্যুরঞ্জি তত্ত্বের সাথে অনন্য কোনও সমস্যা নয় --- মু-ক্যালকুলাস কল / সিসির মতো ক্রমিক নিয়ন্ত্রক অপারেটরগুলির একটি ভাল প্রুফ-তাত্ত্বিক অ্যাকাউন্ট দেয় তবে স্ট্যাকটিকে স্পষ্ট করে দেওয়ার মূল্যে, যা এটি একটি বিশ্রী প্রোগ্রামিংয়ের ভাষা হিসাবে তৈরি করে।

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


Sense ক্যালকুলাসে কল স্ট্যাকটি পরিচালনা করতে আপনার কোন অর্থে প্রয়োজন ? এটি এর মধ্যে Milner এনকোডিং স্বয়ংক্রিয়ভাবে ঘটে মধ্যে এবং একই সাথে নতুন ভ্যান Bakel / Vigliotti এনকোডিং। ক্রিয়াকলাপগুলি ক্যালকুলাসে সিনট্যাকটিক চিনির পুরোপুরি সূক্ষ্ম রূপ । πλππ
মার্টিন বার্গার

এছাড়াও, ential ক্যালকুলাস কল / সিসির মতো ক্রমিক ক্রিয়াকলাপ অপারেটরগুলির একটি সত্যই বিশ্রী অ্যাকাউন্ট। এই জাতীয় অপারেটরগুলি অনেক সহজে এবং প্রাকৃতিকভাবে i ক্যালুক্লাসে প্রকাশিত হয় , কারণ জাম্পিং স্পষ্টভাবে বার্তা প্রেরণের একটি রূপ। mb ক্যালকুলাসের নামের কোনও প্রাকৃতিক ধারণা নেই যা আপনি লাফিয়ে উঠতে পারেন, সুতরাং আপনাকে এটিকে ফ্যানসিটন অ্যাপ্লিকেশন হিসাবে কোড করতে হবে, বা আপনাকে অতিরিক্ত জিনিস যুক্ত করতে হবে। λμπλ
মার্টিন বার্গার

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

সব যে বলেন, অবশ্যই এক না কাঁচা প্রোগ্রাম করতে চায় কাঁচা বেশি কোনো -calculus -calculus। উভয় আনুষ্ঠানিকতা হ'ল সরলীকরণ যা আমাদের অন্যের বাদে গণনার কয়েকটি বৈশিষ্ট্যে মনোনিবেশ করতে সক্ষম করে। πλ
মার্টিন বার্গার

@ মার্টিনবার্গার: আমি আপনাকে উত্তর দেওয়ার জন্য রাজি করানোর আশা করছিলাম! আমি বলতে চাইছি আপনি যদি কাঁচা প্রোগ্রাম করতে চান , এবং ফাংশনগুলি ব্যবহার করতে চান, তবে আপনি মিলার অনুবাদের চিত্রটিতে এমন পদগুলি লেখার কাজটি শেষ করবেন, এবং আপনাকে "স্ট্যাকটি পরিচালনা করতে" হবে এই অর্থে যে আপনি মূলত ধারাবাহিকতা এবং সুস্পষ্ট বিকল্পগুলি পরিচালনা করছেন। (একদিকে যেমন ভ্যান বেকেল / বিজলিওটি কাগজ সম্পর্কে জানতাম না - ধন্যবাদ!)π
নীল কৃষ্ণস্বামী

1

আপনি বলছেন যে " সত্যিকারের শেষ লক্ষ্যটি হবে পিএল তৈরির জন্য তত্ত্বটি ব্যবহার করা।" সুতরাং, আপনি সম্ভবত স্বীকার করেছেন যে অন্যান্য লক্ষ্যও রয়েছে?

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

পাই-ক্যালকুলাস সম্পর্কে আপনার প্রশ্নে, আমি মনে করি পাই ডিজাইলে অ্যাপ্লিকেশনগুলি খুঁজে পাওয়ার জন্য পাই-ক্যালকুলাস এখনও কিছুটা নতুন। পী-ক্যালকুলাস উইকিপিডিয়ার পৃষ্ঠা পী-ক্যালকুলাস ব্যবহার ভাষা ডিজাইন যেমন উল্লেখ BPML এবং Occam-Pi আছে। তবে আপনি এর পূর্বসূরি সিসিএস এবং সিএসপি-র মতো অন্যান্য প্রক্রিয়া ক্যালকুলি, ক্যালকুলাস এবং অন্যান্যগুলিতে যোগদান করতে পারেন যা অনেকগুলি প্রোগ্রামিং ভাষার নকশায় ব্যবহৃত হয়েছে। সানজিওরজি এবং ওয়াকার বইয়ের "অবজেক্টস এবং পাই-ক্যালকুলাস" বিভাগটিও দেখতে পাবেন পাই-ক্যালকুলাসটি বিদ্যমান প্রোগ্রামিং ভাষার সাথে কীভাবে সম্পর্কিত।


0

আমি বন্যে প্রক্রিয়া ক্যালকুলির ব্যবহারিক প্রয়োগগুলি অনুসন্ধান করতে চাই :) (তত্ত্বটি সম্পর্কে পড়া ছাড়াও)।

  1. ক্লোজার অ্যাসিঙ্ক চ্যানেলগুলি সিএসপির উপর ভিত্তি করে: http://clojure.com/blog/2013/06/28/clojure-core-async-channels.html
  2. গোলাংয়ের সিএসপির উপর ভিত্তি করে চ্যানেল রয়েছে (আমার মনে হয় ক্লোজারের জন্য এটি অনুপ্রাণিত সমৃদ্ধ হিকি): http://www.informit.com/articles/printerfriendly/1768317
  3. এমন এক লোক আছে যিনি স্কেল (সাবস্ক্রিপ্ট) -এর জন্য এসিপি ভিত্তিক প্রসারণ করেছিলেন তবে আমার কাছে লিঙ্কটি পোস্ট করার মতো খ্যাতি নেই ...

প্রভৃতি

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