অন্তর্বর্তী উপস্থাপনাগুলি সম্মতি সম্পর্কে যুক্তিযুক্ত হিসাবে ব্যবহার করা যেতে পারে?


12

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

  • কোনও বর্ণের শর্ত নেই তা নিশ্চিত করে
  • কোডটি একযোগে চালিত হবে তা নিশ্চিত করে কোডের শব্দার্থিক অর্থকে প্রভাবিত করে এমন পার্শ্ব প্রতিক্রিয়া থাকবে না

  • থ্রেড স্পিনিং থেকে ওভারহেড কোডে সমান্তরালতার ডিগ্রি প্রদত্ত সার্থক কিনা তা নির্ধারণ করা

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

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


আপনি যদি আপনার কোডটি কার্যকরী উপায়ে লিখেন তবে আপনাকে রেসের পরিস্থিতি বা পার্শ্ব-প্রতিক্রিয়া সম্পর্কে চিন্তা করতে হবে না।
রবার্ট হার্ভে

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

4
কাগজ যে ইন্টেল সমসাময়িক সংগ্রহগুলি (CNC) জন্য পরিপ্রেক্ষিত হিসেবে কাজ করে তালিকা যেমন প্রযোজক কনজিউমার আটটি মৌলিক সমবর্তী নিদর্শন। পরিবর্তে এই যুগপত নিদর্শনগুলি অপরিবর্তনীয়তা এবং পার্শ্ব-প্রতিক্রিয়া মুক্ত হিসাবে বিভিন্ন সংখ্যার বৈশিষ্ট্যের উপর নির্ভর করে। (যদি কেউ এখানে কাগজটি উত্তর হিসাবে পোস্ট করে সংক্ষিপ্ত বিবরণ দিতে পারে তবে আমি প্রশংসা করব।)
রওয়ং

একটি তাত্ত্বিক সরঞ্জামকে বলা হয় "ডায়নামিক সিঙ্গল অ্যাসাইনমেন্ট (ডিএসএ)", এসএসএর শীর্ষে নির্মিত।
রওয়ং

@ রওং: আপনি কি একটি সুস্পষ্ট রেফারেন্স সরবরাহ করতে পারেন?
ইরা

উত্তর:


5

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

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

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

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

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