আমি সম্প্রতি ইক্টো নামের একটি কাঠামো পেয়েছি ।
এই কাঠামোটিতে, "প্লাজম" নামে একটি মৌলিক উপাদান যা ইক্টো ডাইরেক্টেড অ্যাসাইক্লিক গ্রাফ I
আমি ভাবছি যে এই প্রক্রিয়াটির সুবিধা কী, এবং অন্যান্য কোন পরিস্থিতিতে আমরা ডিজের ধারণাটি কাজে লাগাতে পারি?
আমি সম্প্রতি ইক্টো নামের একটি কাঠামো পেয়েছি ।
এই কাঠামোটিতে, "প্লাজম" নামে একটি মৌলিক উপাদান যা ইক্টো ডাইরেক্টেড অ্যাসাইক্লিক গ্রাফ I
আমি ভাবছি যে এই প্রক্রিয়াটির সুবিধা কী, এবং অন্যান্য কোন পরিস্থিতিতে আমরা ডিজের ধারণাটি কাজে লাগাতে পারি?
উত্তর:
চমৎকার প্রশ্ন।
সম্পাদনা:
সুসংস্থান:
উত্তরটি হ'ল প্রোগ্রামিংয়ের সাথে এর তেমন কিছু করার নেই। সমস্যা সমাধানের সাথে এটি করতে হবে।
সংযুক্ত-তালিকা যেমন সমস্যার নির্দিষ্ট শ্রেণীর জন্য ডেটা স্ট্রাকচার ব্যবহৃত হয় তেমনি নির্দিষ্ট সম্পর্ককে উপস্থাপনের জন্য গ্রাফগুলি দরকারী। লিঙ্কযুক্ত তালিকাগুলি, গাছগুলি, গ্রাফগুলি এবং অন্যান্য বিমূর্ত কাঠামোগুলি কেবল প্রোগ্রামিংয়ের সাথে একটি সংযোগ রাখে যাতে আপনি এগুলি কোডে প্রয়োগ করতে পারেন। এগুলি বিমূর্ততার উচ্চ স্তরে বিদ্যমান। এটি প্রোগ্রামিং সম্পর্কে নয়, এটি সমস্যার সমাধানে ডেটা স্ট্রাকচার প্রয়োগ সম্পর্কে।
এখনও যদি আপনি প্রোগ্রামিংয়ের সাথে কিছু সম্পর্ক চান তবে নীচের বিষয়গুলি বিবেচনা করুন:
অন্যান্য ব্যক্তিরা ডেটাতে ডিএজি প্রয়োগ করেছেন, তবে আমি মনে করি এটি কোডের ক্ষেত্রে কমপক্ষে প্রযোজ্য (যদি এর বেশি না থাকে) is মাহবুবুর আর আমান এটির উল্লেখ করেছেন, তাই সত্যই এটি তার নিজের উত্তরটিতে একটি সম্পূর্ণ উত্তরের চেয়ে আরও বেশি সংযোজন।
এটি আমার কাছে যে কোনও অপরিহার্য কম্পিউটার প্রোগ্রামের তুলনায় ঘটে যা অসীম লুপগুলি মুক্ত হয় (ধন্যবাদ @ অ্যান্ড্রেসএফ।) এটি একটি নির্দেশিত অ্যাসাইক্লিক গ্রাফ (ডিএজি)। মানে কোড কার্যকর করার সম্ভাব্য পাথ নির্দেশিত (প্রথমে এটি, তারপরে), এবং এসাইক্লিক (অসীম লুপ গঠন করে না)। এগুলি একটি গ্রাফ কারণ কোনও উল্লেখযোগ্য কোডের পথটি তালিকা বা গাছের মতো খুব কমই সহজ।
আমি এক্সএসএলটিতে সম্ভবত 4 বছর ধরে কাজ করেছি। আমি কেন এটি একটি সাধারণ সাধারণ উদ্দেশ্য প্রোগ্রামিং ভাষা না তা বোঝানোর চেষ্টা করার জন্য ভয়ানক সময় কাটিয়েছি, তবে ডিএজি এর কারণ। বিশেষত, এক্সএসএলটি একটি ডেটা চালিত ভাষা। আপনি ফাংশনগুলি সংজ্ঞায়িত করেন (হ্যাঁ, কার্যকরী-প্রোগ্রামিং অর্থে) তবে আপনি প্রয়োজনীয়ভাবে আপনার কোড থেকে এই ফাংশনগুলি কল করবেন না। পরিবর্তে, এক্সএসএলটি একটি ইনপুট এক্সএমএল নথির নোডের মাধ্যমে নির্বাচন এবং পুনরাবৃত্তির সংমিশ্রণ সেট করে। এটি ইনপুট ডেটার কাঠামো নির্ধারণ করতে দেয় যে কোন ফাংশন ডাকা হয় এবং কোন ক্রমে।
আপনার প্রোগ্রামটি এমন কোনও ডেটা শর্তের মুখোমুখি না হওয়া পর্যন্ত এটি খুব আকর্ষণীয় এবং খুব দুর্দান্ত ছিল যেটি আপনি সকাল 2:30 টায় পরীক্ষা করেন নি এবং আপনাকে জেগে এটি ঠিক করতে হয়েছিল। আপনি যখন ডেটাটিকে ডিএজি সংজ্ঞায়িত করতে দেন, তখন ড্যাগের সংজ্ঞাটি সমস্ত সম্ভাব্য ইনপুট শর্তে পরিণত হয় - যা কোনও তুচ্ছ ব্যবসায়িক অ্যাপ্লিকেশনটির জন্য অগণ্য beyond তারা অকল্পনীয়।
প্রথমে আমি ভেবেছিলাম যে ফাংশনাল প্রোগ্রামিং কোনও ডিএজি নাও হতে পারে কারণ কখনও কখনও মৃত্যুদণ্ড কার্যকর করার আদেশটি পরিষ্কার হয় না বা এমনকি প্রোগ্রামার দ্বারা চিন্তাও করে না। তবে একটি কার্যকরী প্রোগ্রাম নির্ভরতা নির্ধারণ করে। প্রকৃতপক্ষে, কার্যকরী প্রোগ্রামিংয়ের ঘোষিত প্রকৃতিটি নির্বাহের আদেশ নির্দিষ্ট না করে কেবল নির্ভরতা (a ^ 2 = b ^ 2 + c ^ 2) হিসাবে সংজ্ঞায়িত হিসাবে বিবেচনা করা যেতে পারে ('বি' বা 'সি' প্রথমে স্কোয়ার করা যায় কিনা তা বিবেচ্য নয়) , যতক্ষণ না তারা উভয় একসাথে যুক্ত হওয়ার আগে স্কোয়ার হয়)।
তবে কার্যকরী প্রোগ্রামিংয়ে বিশদ পর্যায়ে ক্রিয়াকলাপের ক্রমটি সম্পর্কে ইচ্ছাকৃতভাবে অস্পষ্ট হতে পারে, তবে নির্ভরতা সম্পর্কে এটি অত্যন্ত স্পষ্ট। এগুলি এমন বৈশিষ্ট্য যা এটিকে একত্রে সামঞ্জস্য করার পক্ষে এতটা অনুকূল করে তোলে। যাই হোক না কেন, কোডের মাধ্যমে পাথের গ্রাফটি এখনও রয়েছে, এবং সেই গ্রাফটি এখনও পরিচালিত হয় (নির্ভরশীল কার্যগুলির আগে নির্ভরতা মূল্যায়ন করতে হবে), তাই আমি মনে করি ডিএজিও সেখানে প্রযোজ্য।
দুর্দান্ত প্রশ্ন - পোস্ট করার জন্য ধন্যবাদ!
while (true) { print("hi"); }
? হতে পারে আপনি নন-টার্মিনেটিং প্রোগ্রামগুলি বাদ দিতে চান?
বর্তমানে প্রোগ্রামিংয়ে ডএজি আন্ডাররেটেড। Icallyতিহাসিকভাবে বিকাশ সম্পর্কিত অনেকগুলি জিনিস গাছ এবং শ্রেণিবিন্যাস দিয়ে তৈরি করা হয়েছিল কারণ কোনও বাক্সে কোনও কিছু সরিয়ে নেওয়া আমাদের মস্তিষ্কের পক্ষে জটিল জিনিসগুলি পরিচালনা করা সহজ করে তোলে। তবে আপনি যদি ইভেন্টগুলিতে লক্ষ্য করেন এবং সেগুলি কীভাবে অন্যান্য ইভেন্ট এবং রাষ্ট্রগুলির উপর নির্ভর করে তবে আপনি ডিএজি পাবেন কারণ আমাদের জীবনে এবং প্রোগ্রামের যে কোনও কিছু অতীতে যা কিছু নির্ভর করতে পারে তবে ভবিষ্যতে নয়, তাই আপনি পুরোপুরি "অ্যাসাইক্লিক" পাবেন সম্পর্কগুলি ডিএজি ধারণার জন্য প্রযোজ্য। যদিও এটি বিকাশে খুব কমই স্পষ্টভাবে ব্যবহৃত হয়েছে, এটি মনে রাখলে বিষয়গুলি আরও ভালভাবে বুঝতে সাহায্য করবে
আমি ভাবছি এক্সটোর প্লাজমের সুবিধা কী ...
সীমাবদ্ধতার সাথে ক্রিয়াকলাপের কাজগুলির সংগ্রহকে মডেল করার জন্য ড্যাগ ব্যবহার করা যেতে পারে যে অন্যদের আগে কিছু নির্দিষ্ট কাজ অবশ্যই করা উচিত। Ecto হ'ল একটি প্রক্রিয়াকরণ কাঠামো এবং এটি প্রক্রিয়াকরণ গ্রাফগুলিকে মডেল করতে DAG ব্যবহার করে যাতে গ্রাফগুলি সিঙ্ক্রোনাস এক্সিকিউশনকে আদেশ দেয়। রক্তমস্ত মধ্যে Ecto DAG এবং নির্ধারণকারী এটিতে পরিচালনা করে।
অন্যান্য কোন পরিস্থিতিতে আমরা ডিজের ধারণাটি কাজে লাগাতে পারি?
প্রকৃত বিশ্বের উদাহরণ হিসাবে, আমাদের সফ্টওয়্যারটি কোনও আইডিইর মতো, যেখানে শেষ ব্যবহারকারী কোনও চিত্রের (মেশিন দৃষ্টি পরিদর্শন) সঞ্চালনের জন্য কয়েকটি ক্রিয়াকলাপ সংজ্ঞায়িত করতে পারে। এই পরিদর্শনগুলিতে অন্যান্য পরিদর্শনের উপর নির্ভরতা থাকতে পারে বা তাদের উপর নির্ভর করে পরিদর্শন থাকতে পারে। যেহেতু এগুলি শেষ ব্যবহারকারী দ্বারা কনফিগার করা যায়, তাই আমরা নকশা সময়ে সমান্তরাল প্রক্রিয়াকরণের জন্য অনুকূলিতকরণ করতে পারি না। ডিএজি হিসাবে এই পরিদর্শনগুলি এবং নির্ভরতাগুলি উপস্থাপন করে, আমরা রান সময়ে সর্বোচ্চ পারফরম্যান্সের জন্য সামগ্রিক পরিদর্শনের সমান্তরালতাকে অনুকূলিত করতে পারি।
অন্য একটি উত্তর যুক্ত করা যেমন সিস্টেম তৈরির জন্য কোনও রেফারেন্স দেখা যায় নি make
যা বিল্ডিংয়ের নির্ভরতা জানতে ডিএজি ব্যবহার করে।
আরও বিশদ এখানে
make