রানটাইম বনাম কমপাইল সময়


370

রান-টাইম এবং সংকলন-সময়ের মধ্যে পার্থক্য কী?


আমি একটি খুব ছোট কিন্তু পরিষ্কার উদাহরণ দিয়েছি .... এটি বিশাল বিবরণ দিয়ে ভয় দেখায় না। এর পরে সমস্ত উত্তর দিয়ে যেতে পারে। তারা দুর্দান্ত ...
সংকর ব্যানার্জি

উত্তর:


479

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

  1. প্রোগ্রামটি কোন আক্রমণকারীকে সন্তুষ্ট করে?
  2. এই পর্যায়ে কী ভুল হতে পারে?
  3. যদি পর্বটি সফল হয় তবে পোস্টকন্ডিশনগুলি কী কী (আমরা কী জানি)?
  4. ইনপুট এবং আউটপুট কি, যদি কোন?

সংকলন সময়

  1. প্রোগ্রামটির কোনও আক্রমণকারীকে সন্তুষ্ট করার দরকার নেই। আসলে, এটি মোটেও একটি সুগঠিত প্রোগ্রাম হওয়ার দরকার নেই। আপনি এই এইচটিএমএলকে সংকলককে খাওয়াতে এবং বারফটি দেখতে পারেন ...
  2. সংকলনের সময় কী ভুল হতে পারে:
    • সিনট্যাক্স ত্রুটি
    • টাইপচেকিং ত্রুটি
    • (কদাচিৎ) সংকলক ক্রাশ
  3. সংকলক সফল হলে, আমরা কী জানি?
    • প্রোগ্রামটি ভালভাবে গঠিত হয়েছিল --- যে কোনও ভাষায় একটি অর্থবহ প্রোগ্রাম।
    • প্রোগ্রামটি চালানো শুরু করা সম্ভব। (প্রোগ্রামটি তাত্ক্ষণিকভাবে ব্যর্থ হতে পারে তবে কমপক্ষে আমরা চেষ্টা করতে পারি))
  4. ইনপুট এবং আউটপুট কি?
    • ইনপুটটি ছিল প্রোগ্রামটি সংকলিত, এবং কোনও শিরোনাম ফাইল, ইন্টারফেস, লাইব্রেরি, বা অন্যান্য ভুডো যা সংকলিত হওয়ার জন্য এটি আমদানি করা দরকার ।
    • আউটপুট হ'ল আশা করা যায় অ্যাসেম্বলি কোড বা পুনঃস্থাপনযোগ্য অবজেক্ট কোড বা এমনকি একটি সম্পাদনযোগ্য প্রোগ্রাম। বা যদি কিছু ভুল হয়ে যায় তবে আউটপুট হ'ল ত্রুটি বার্তাগুলির একটি গোছা।

রান সময়

  1. আমরা প্রোগ্রামের আক্রমণকারীদের সম্পর্কে কিছুই জানিনা --- প্রোগ্রামার যা কিছু রেখেছিল তারা সেগুলি Run রানটাইম আক্রমণকারীরা খুব কমই কেবল সংকলক দ্বারা প্রয়োগ করা হয়; এটি প্রোগ্রামার থেকে সাহায্য প্রয়োজন।
  2. রান টাইম ত্রুটিগুলি যা ভুল হতে পারে তা হ'ল :

    • শূন্য দ্বারা বিভাগ
    • একটি নাল পয়েন্টার নির্ধারণ করা
    • স্মৃতি ফুরিয়েছে

    এছাড়াও প্রোগ্রামের দ্বারা সনাক্ত হওয়া ত্রুটি থাকতে পারে:

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

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

4
ভাল লাগল, যদি আমার বক্তৃতার সময় কেউ যদি আমাকে এ সম্পর্কে জিজ্ঞাসা করে তবে আমি আপনার অ্যাঞ্জারটি ব্যবহার করব :-)
ই-সন্তুষ্ট

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

7
এমনকি আপনি যদি কিছুক্ষণ প্রোগ্রাম করেছেন তবে এটি পাওয়া এখনও সহজ নয় ... এটি কেবল নবাগত মানুষ নয়। ওপি দ্বারা ভাল প্রশ্ন।
PositiveGuy

11
"প্রোগ্রামটি কোনও আক্রমণকারীকে সন্তুষ্ট করার দরকার নেই In বাস্তবে এটি কোনও সুগঠিত প্রোগ্রাম হওয়ার দরকার নেই You আপনি এই এইচটিএমএলটি সংকলককে খাওয়াতে পারেন এবং এটি বারফ দেখতে পারেন ..." আপনি কী বলছেন তা আমার কোনও ধারণা নেই এখানে. আপনি এই সমস্ত প্রযুক্তিগত আবর্জনা জঞ্জাল না করে, সহজ শর্তে এটি ব্যাখ্যা করতে পারেন?
PositiveGuy

175

আমি এটিকে ত্রুটিগুলির সাথে বিবেচনা করি এবং কখন তারা ধরা পড়তে পারে।

সংকলন সময়:

string my_value = Console.ReadLine();
int i = my_value;

একটি স্ট্রিং মান টাইপ int এর একটি ভেরিয়েবল বরাদ্দ করা যায় না, সুতরাং সংকলকটি সংকলনের সময় এই কোডটিতে একটি সমস্যা রয়েছে তা নিশ্চিতভাবেই জানে

রান সময়:

string my_value = Console.ReadLine();
int i = int.Parse(my_value);

এখানে ফলাফলটি রিডলাইন () দ্বারা কী স্ট্রিং ফিরিয়েছিল তার উপর নির্ভর করে। কিছু মান একটি ইন্টিতে পার্স করা যায়, অন্যেরা তা করতে পারে না। এটি কেবল রান টাইমে নির্ধারণ করা যেতে পারে


59
এখন এটি আমরা সকলেই বুঝতে পারি। এখানে কোনও সাধারণ জঞ্জাল প্রযুক্তি সংক্রান্ত শব্দ নেই। খুশী হলাম।
PositiveGuy

আইফোন অ্যাপের জন্য: বিকাশকারী দ্বারা প্রথমবার কোডটি কোনও .appএক্সটেনশনে সংকলন করার সময় কি সংকলন করা হয়েছিল ? বা এটি প্রতিবার চালু হওয়ার পরে কি অ্যাপটি শুরু হয়?
মধু

1
@ মধু এটি প্রথমবার বিকাশকারী দ্বারা একটি। অ্যাপ
মায়থাম-ɯɐɥʇʎɐɯ

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

72

সংকলন -সময়: আপনি, বিকাশকারী, আপনার কোডটি সংকলন করছেন এমন সময়কাল।

রান-টাইম: সেই সময়কাল যা কোনও ব্যবহারকারী আপনার সফ্টওয়্যারটির অংশটি চালাচ্ছে।

আপনার কোনও পরিষ্কার সংজ্ঞা দরকার?


12
@ বিবিএস: একটি ব্যাখ্যামূলক বা বাইট-কম্পাইল-পরে-চালিত-ইন-এক-ধাপের ভাষা ব্যবহার করে ওপি-র প্রোগ্রামিংয়ের খুব সহজ ভূমিকা থাকতে পারে যাতে এই পার্থক্যের প্রয়োজন হয় না। প্রশ্ন নিষ্প্রভ, কিন্তু বোবা না
dmckee --- প্রাক্তন-মডারেটর বিড়ালছানা

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

আমার ছোট্ট একটা প্রশ্ন আছে। যখন কেউ বলে যে একটি সাধারণ রানটাইম ত্রুটি শূন্য দ্বারা বিভক্ত হয় তবে আপনার যদি ভেরিয়েবল থাকে তবে তা বলতে দিন int x = 3/0তবে আপনি এই ভেরিয়েবলটি দিয়ে কিছুই করেন না। আমরা এটি বা কিছু মুদ্রণ করতে পারি না। এটি কি এখনও রানটাইম ত্রুটি হিসাবে বিবেচিত হবে?
রববেন

আইফোন অ্যাপের জন্য: বিকাশকারী দ্বারা প্রথমবারের কোডটি একটি অ্যাপ্লিকেশন প্রেরণে সংকলন করার সময় কি প্রথম বার সংকলন করা হয়? বা এটি প্রতিবার চালু হওয়ার পরে কি অ্যাপটি শুরু হয়? যদি এটির সংকলন সময় যার জন্য বিকাশকারীর কোডটি সংকলিত হচ্ছে, তবে কেন আমি এটি সম্পর্কে যত্ন করব? আমি বোঝাতে চাইছি এটি ব্যবহারকারীর অভিজ্ঞতাকে প্রভাবিত করবে না? এটি বিকাশকারীদের সময়কে মেরে ফেলবে – কেবলমাত্র!
মধু

1
@ রব্বেন আমি ধরে নিয়েছি যে এই সময়ের পরেও আপনি আপনার উত্তর পেয়ে গেছেন, তবে আমি অন্যের জবাব দেব yes আপনি এটি ব্যবহার না করা সত্ত্বেও এটি রানটাইম ত্রুটি হবে
فربدقع

22

( সম্পাদনা করুন : নিম্নলিখিতটি সি # এবং অনুরূপ, প্রবলভাবে টাইপ করা প্রোগ্রামিং ভাষার ক্ষেত্রে প্রযোজ্য this এটি আপনাকে সহায়তা করে কিনা আমি নিশ্চিত নই)।

উদাহরণস্বরূপ, আপনি কোনও প্রোগ্রাম চালানোর আগে নিম্নলিখিত সংকলনটি সংকলক ( সংকলনের সময় ) দ্বারা সনাক্ত করা হবে এবং সংকলনের ত্রুটির ফলস্বরূপ:

int i = "string"; --> error at compile-time

অন্যদিকে, নিম্নলিখিতগুলির মতো একটি ত্রুটি সংকলক দ্বারা সনাক্ত করা যায় না। আপনি রান-টাইমে একটি ত্রুটি / ব্যতিক্রম পাবেন (যখন প্রোগ্রামটি চালিত হবে)।

Hashtable ht = new Hashtable();
ht.Add("key", "string");
// the compiler does not know what is stored in the hashtable
// under the key "key"
int i = (int)ht["key"];  // --> exception at run-time

ব্যতিক্রম। হ্যাশটেবল এক ছিল তবে আমি খুঁজে পেলাম সবচেয়ে বড় পদক্ষেপটি। নেট 1.1 থেকে .NET 2.0, টাইপ করা ডেটাসেটে টাইপ করা (এবং এখন লিনক) going আমাকে খুব দু: খিত করে দেওয়ার জন্য ব্যবহৃত একটি ছদ্মবেশী ডেটাবেস দিয়ে একটি ভাঙ্গা ফর্মটি সমস্যা সমাধানের চেষ্টা করছে!
স্প্যানস

19

সূত্রের কোডটি স্টাফ-ঘটনামুলকভাবে [স্ক্রিন | ডিস্ক | নেটওয়ার্ক] তে দুটি পদ্ধতিতে ঘটতে পারে; তাদের সংকলন এবং ব্যাখ্যা বলুন।

একটি কম্পাইল করা প্রোগ্রাম (উদাহরণ সি এবং ফোরট্রান হয়):

  1. উত্স কোডটি অন্য প্রোগ্রামে খাওয়ানো হয় (সাধারণত একটি সংকলক বলা হয় - গো চিত্র), যা একটি এক্সিকিউটেবল প্রোগ্রাম (বা একটি ত্রুটি) উত্পাদন করে।
  2. এক্সিকিউটেবল চালিত হয় (এটিতে ডাবল ক্লিক করে বা কমান্ড লাইনে এর নাম টাইপ করে)

প্রথম ধাপে ঘটে যাওয়া জিনিসগুলি "সংকলনের সময়" ঘটানোর কথা বলা হয়, দ্বিতীয় ধাপে ঘটে যাওয়া জিনিসগুলি "রান টাইম" এ ঘটে বলে জানা যায়।

একটি ব্যাখ্যা করা প্রোগ্রামে (উদাহরণস্বরূপ মাইক্রোসফ্ট বেসিক (ডসগুলিতে) এবং পাইথন (আমার মনে হয়)):

  1. উত্স কোডটি অন্য প্রোগ্রামে খাওয়ানো হয় (সাধারণত দোভাষী বলা হয়) এটি সরাসরি "চালায়"। এখানে দোভাষী আপনার প্রোগ্রাম এবং অপারেটিং সিস্টেমের (বা সত্যিকারের সহজ কম্পিউটারগুলির মধ্যে হার্ডওয়্যার) মধ্যে একটি মধ্যবর্তী স্তর হিসাবে কাজ করে।

এই ক্ষেত্রে সংকলন সময় এবং রান সময়ের মধ্যে পার্থক্য পিন ডাউন করা বরং কঠিন, এবং প্রোগ্রামার বা ব্যবহারকারীর সাথে অনেক কম প্রাসঙ্গিক।

জাভা হল এক ধরণের হাইব্রিড, যেখানে কোডটি বাইটকোডে সংকলিত হয়, যা তখন ভার্চুয়াল মেশিনে চলে যা সাধারণত বাইকোডের জন্য দোভাষী হয়।

একটি মধ্যবর্তী কেসও রয়েছে যাতে প্রোগ্রামটি বাইকোডে সংকলিত হয়ে সঙ্গে সঙ্গে চালানো হয় (অ্যাজক বা পার্লের মতো)।


11

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

যেমন।

অবিচ্ছিন্ন ভাঁজ:

আমি যদি লিখি:

int i = 2;
i += MY_CONSTANT;

সংকলক সংকলনের সময় এই ক্যালুলেশন সম্পাদন করতে পারে কারণ এটি 2 টি কী এবং এমওয়াই_সন্ট্যান্ট কী তা জানে। যেমন এটি প্রতিটি একক সম্পাদন গণনা করা থেকে নিজেকে বাঁচায়।


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

10

হুঁ, ঠিক আছে, রানটাইম এমন কোনও কিছু বর্ণনা করতে ব্যবহৃত হয় যা কোনও প্রোগ্রাম চলাকালীন ঘটে থাকে।

কমপাইল সময়টি এমন কোনও কিছু বর্ণনা করতে ব্যবহৃত হয় যা কোনও প্রোগ্রাম তৈরি হওয়ার সময় ঘটে (সাধারণত, একটি সংকলক দ্বারা)।


8

সংকলন সময়:

সংকলনের সময় যেগুলি করা হয় ফলাফলগুলি প্রায়শই চালিত হয় তখন প্রায় কোনও খরচ হয় না তবে আপনি যখন প্রোগ্রামটি তৈরি করেন তখন প্রচুর ব্যয় হতে পারে।

রান টাইম:

কম-বেশি সঠিক বিপরীতে। আপনি তৈরি করার সময় অল্প ব্যয়, প্রোগ্রামটি চালানোর সময় আরও বেশি ব্যয়।

অপর প্রান্ত থেকে; সংকলনের সময় যদি কিছু করা হয় তবে এটি কেবল আপনার মেশিনে চলে এবং যদি কিছু রান-টাইম হয় তবে এটি আপনার ব্যবহারকারীদের মেশিনে চলে।

প্রাসঙ্গিকতা

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


8

পূর্ববর্তী অনুরূপ প্রশ্নের উত্তর অনুসরণ করে রান-টাইম ত্রুটি এবং সংকলক ত্রুটির মধ্যে পার্থক্য কী?

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

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

সমস্ত প্রোগ্রামিং ত্রুটি সম্পর্কে এখানে আরও পড়ুন


7

অন্যান্য উত্তরের অ্যাড-অন হিসাবে, আমি এটি কোনও সাধারণ ব্যক্তিকে কীভাবে ব্যাখ্যা করব:

আপনার উত্স কোডটি একটি জাহাজের ব্লুপ্রিন্টের মতো। এটি জাহাজটি কীভাবে তৈরি করা উচিত তা নির্ধারণ করে।

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

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


5

উদাহরণস্বরূপ: একটি দৃ strongly়ভাবে টাইপ করা ভাষায়, টাইপটি সংকলনের সময় বা রানটাইম সময়ে পরীক্ষা করা যেতে পারে। সংকলনের সময় এর অর্থ হ'ল, প্রকারগুলি সুসংগত না হলে সংকলকটি অভিযোগ করে। রানটাইমের মানে হল, আপনি আপনার প্রোগ্রামটি ঠিক সূক্ষ্ম কিন্তু রানটাইমে সংকলন করতে পারেন, এটি একটি ব্যতিক্রম ছোঁড়ে।


4

কেবলমাত্র শব্দের মধ্যে পার্থক্য b / w সংকলন সময় ও রান সময়।

সংকলনের সময়: বিকাশকারী প্রোগ্রামটি জাভা ফর্ম্যাটে লেখেন এবং বাইটকোডে রূপান্তর করেন যা একটি শ্রেণি ফাইল, এই সংকলনের সময় যে কোনও ত্রুটি ঘটলে তা সংকলনের সময় ত্রুটি হিসাবে সংজ্ঞায়িত করা যায়।

রান সময়: উত্পন্ন। ক্লাস ফাইলটি অতিরিক্ত ক্রিয়াকলাপের জন্য অ্যাপ্লিকেশন দ্বারা ব্যবহৃত হয় এবং যুক্তিটি ভুল হয়ে যায় এবং একটি ত্রুটি ছুড়ে দেয় যা রান টাইম ত্রুটি is


4

সংকলনের বিষয়ে 'জাভা প্রোগ্রামিংয়ের পরিচিতি' র লেখক ড্যানিয়েল লিয়াংয়ের একটি উদ্ধৃতি এখানে দেওয়া হয়েছে:

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

...তিনি আরো বলেছেন...

"একটি সংকলক পুরো উত্স কোডটিকে একটি মেশিন-কোড ফাইলে অনুবাদ করে এবং মেশিন-কোড ফাইলটি পরে কার্যকর করা হয়"

যখন আমরা উচ্চ-স্তরের / মানব-পঠনযোগ্য কোডে পাঞ্চ করি এটি প্রথমে, অকেজো! এটি আপনার ক্ষুদ্র সামান্য সিপিইউতে অবশ্যই 'বৈদ্যুতিন ঘটনার ক্রম' অনুবাদ করা উচিত! এর দিকে প্রথম পদক্ষেপটি সংকলন।

সোজা কথায়: একটি সংকলন-সময় ত্রুটি এই পর্যায়ে ঘটে যখন রান-টাইম ত্রুটি পরে ঘটে occurs

মনে রাখবেন: কেবল কোনও প্রোগ্রাম ত্রুটি ছাড়াই সংকলিত হওয়ার অর্থ এই নয় যে এটি ত্রুটি ছাড়াই চলবে।

একটি জীবন-চক্রের প্রস্তুত, চলমান বা অপেক্ষমান অংশে একটি রান-টাইম ত্রুটি ঘটবে যখন জীবনচক্রের 'নতুন' পর্যায়ে একটি সংকলন-সময় ত্রুটি ঘটবে।

একটি সংকলন-সময় ত্রুটির উদাহরণ:

একটি সিনট্যাক্স ত্রুটি - আপনার কোডটি যদি দ্ব্যর্থহীন হয় তবে কীভাবে আপনার মেশিন স্তরের নির্দেশিকায় সংকলন করা যেতে পারে ?? আপনার কোডটির ভাষার সিনট্যাকটিকাল নিয়মে 100% অনুসরন করা দরকার অন্যথায় এটি ওয়ার্কিং মেশিন কোডে সংকলন করা যায় না

রান-টাইম ত্রুটির উদাহরণ:

স্মৃতিশক্তি ফুরিয়েছে - উদাহরণস্বরূপ একটি পুনরাবৃত্ত ফাংশনে একটি কল একটি নির্দিষ্ট ডিগ্রির ভেরিয়েবলের ফলে স্ট্যাক ওভারফ্লোতে ডেকে আনতে পারে! কম্পাইলার দ্বারা এটি কীভাবে অনুমান করা যায় !? এটা হতে পারে না.

এবং এটি একটি সংকলন-সময় ত্রুটি এবং একটি রান-টাইম ত্রুটির মধ্যে পার্থক্য


2

রান টাইম মানে আপনি প্রোগ্রামটি চালানোর সময় কিছু ঘটে।

সংকলনের সময় মানে যখন আপনি প্রোগ্রামটি সংকলন করেন তখন কিছু ঘটে।


2

সংকলন সময়:

সংকলনের সময় যেগুলি করা হয় ফলাফলগুলি প্রায়শই চালিত হয় তখন প্রায় কোনও খরচ হয় না তবে আপনি যখন প্রোগ্রামটি তৈরি করেন তখন প্রচুর ব্যয় হতে পারে। রান টাইম:

কম-বেশি সঠিক বিপরীতে। আপনি তৈরি করার সময় অল্প ব্যয়, প্রোগ্রামটি চালানোর সময় আরও বেশি ব্যয়।

অপর প্রান্ত থেকে; সংকলনের সময় যদি কিছু করা হয় তবে এটি কেবল আপনার মেশিনে চলে এবং যদি কিছু রান-টাইম হয় তবে এটি আপনার ব্যবহারকারীদের মেশিনে চলে।


2

সংকলনের সময়: উত্স কোডটিকে একটি মেশিন কোডে রূপান্তর করতে সময় নেওয়া হয় যাতে এটি নির্বাহযোগ্য হয়ে যায় তাকে সংকলন সময় বলে।

রান সময়: যখন কোনও অ্যাপ্লিকেশন চলমান থাকে, তখন তাকে রানটাইম বলা হয়।

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


2

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


1

"রান-টাইম এবং সংকলন-সময়ের মধ্যে পার্থক্য?" এই প্রশ্নের উত্তরের একটি বর্ধন এখানে? - রান-টাইম এবং সংকলন-সময়ের সাথে সম্পর্কিত ওভারহেডে পার্থক্য ?

পণ্যের রান-টাইম পারফরম্যান্স দ্রুত ফলাফল সরবরাহ করে এর গুণমানকে অবদান রাখে। পণ্যের সংকলন-সময় পারফরম্যান্স সম্পাদনা-সংকলন-ডিবাগ চক্রকে সংক্ষিপ্ত করে এর সময়োপযোগীতে অবদান রাখে। যাইহোক, রান-টাইম পারফরম্যান্স এবং সংকলন-সময় পারফরম্যান্স উভয়ই সময়োপযোগী মান অর্জনের জন্য গৌণ কারণ। সুতরাং, সামগ্রিক পণ্যের গুণমান এবং সময়োপযোগীতার উন্নতি দ্বারা ন্যায়সঙ্গত হলেই রান-টাইম এবং সংকলন-সময়ের পারফরম্যান্সের উন্নতিগুলি বিবেচনা করা উচিত।

এখানে আরও পড়ার দুর্দান্ত উত্স :


1

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

একটি সংজ্ঞায়িত বুলিয়ান এক্স মেমরি নেয় যা এটি তখন সংকলিত প্রোগ্রামে থাকে এবং পরিবর্তন করা যায় না। প্রোগ্রামটি যখন চালায় তখন x টির জন্য ঠিক কত মেমরি বরাদ্দ করতে হবে তা জানে।

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

এটি কীভাবে ডায়নামিকভাবে পরিচালিত হয় তা তখন ভাষা, সংকলক, ওএস, আপনার কোড ইত্যাদির উপর নির্ভর করে would

এই নোটটিতে তবে এটি নির্ভর করে আপনি যে সময়টিতে রান টাইম বনাম সংকলন সময় ব্যবহার করছেন তার উপর।


1

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

জোসেফ কুলন্দাই।


1

রান-টাইম এবং কম্পাইল সময়ের মধ্যে প্রধান পার্থক্য হ'ল:

  1. যদি আপনার কোডটিতে কোনও সিনট্যাক্স ত্রুটি থাকে এবং চেক টাইপ করে থাকে তবে এটি সংকলন সময় ত্রুটি ছুড়ে দেয়, যেখানে রান-টাইম রয়েছে: কোডটি কার্যকর করার পরে এটি পরীক্ষা করে। উদাহরণ স্বরূপ:

int a = 1 int b = a/0;

এখানে প্রথম লাইনের শেষে একটি অর্ধ-কোলন নেই ---> অপারেশন করার সময় প্রোগ্রামটি সম্পাদন করার পরে সংকলন করার সময় ত্রুটি, ফলাফল অসীম ---> রানটাইম ত্রুটি।

  1. সংকলনের সময়টি আপনার কোড দ্বারা সরবরাহিত কার্যকারিতার আউটপুট অনুসন্ধান করে না, যেখানে রানটাইম করে।

1

এখানে একটি খুব সহজ উত্তর:

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

একটি সংকলিত প্রোগ্রামটি একটি ব্যবহারকারী দ্বারা খোলা এবং চালানো যেতে পারে। যখন কোনও অ্যাপ্লিকেশন চলমান থাকে তখন এটিকে রানটাইম বলে।

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

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

উল্লেখ


0

আইএমএইচও আপনাকে রানটাইম বনাম কমপাইল সময়ের মধ্যে পার্থক্য সম্পর্কে ধারণা করতে অনেকগুলি লিঙ্ক, সংস্থান পড়তে হবে কারণ এটি একটি খুব জটিল বিষয়। আমি প্রস্তাবিত এই ছবি / লিঙ্কগুলির কয়েকটি নীচে আমার আছে।

উপরে যা বলা হয় তা বাদ দিয়ে আমি মাঝে মাঝে এটি যুক্ত করতে চাই যে 1000 শব্দের মূল্যবান ছবি:

  1. এই দুটির ক্রম: প্রথমে সংকলন সময় এবং তারপরে আপনি চালিত একটি সংকলিত প্রোগ্রামটি কোনও ব্যবহারকারী দ্বারা খোলা এবং চালানো যেতে পারে। যখন কোনও অ্যাপ্লিকেশন চলমান থাকে তখন এটিকে রানটাইম বলা হয়: সংকলন সময় এবং তারপরে রানটাইম 1 সংকলন সময় এবং তারপরে রানটাইম 1;

সিএলআর_ডায়াগ সংকলন সময় এবং তারপরে রানটাইম 2  সিএলআর_ডায়াগ সংকলন সময় এবং তারপরে রানটাইম 2

 from Wiki  

https://en.wikedia.org/wiki/Run_time https://en.wikedia.org/wiki/Run_time_(program_lifecycle_p चरण)

রান টাইম, রান-টাইম, বা রানটাইম উল্লেখ করতে পারে:

কম্পিউটিং

রান সময় (প্রোগ্রাম লাইফসাইकल পর্ব) , একটি সময়কালে একটি কম্পিউটার প্রোগ্রাম চালিত হয়

রানটাইম লাইব্রেরি , প্রোগ্রামিং ভাষায় নির্মিত ফাংশনগুলি বাস্তবায়নের জন্য ডিজাইন করা একটি প্রোগ্রাম লাইব্রেরি

রানটাইম সিস্টেম , কম্পিউটার প্রোগ্রামগুলির কার্য সম্পাদনের জন্য ডিজাইন করা সফ্টওয়্যার

সফটওয়্যার এক্সিকিউশন, রান সময় পর্যায়ে একের পর এক নির্দেশনা সম্পাদনের প্রক্রিয়া

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

এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন সংকলকগুলির তালিকা https://en.wikedia.org/wiki/List_of_compilersএখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন

  • গুগলে অনুসন্ধান করুন এবং রানটাইম ত্রুটিগুলি বনাম কম্পাইল ত্রুটির সাথে তুলনা করুন:

রানটাইম ত্রুটি

ত্রুটি সংকলন ;

  1. আমার মতে এটি একটি খুব গুরুত্বপূর্ণ বিষয় জানতে: 3.1 লাইফ সাইকল কম্পাইল বনাম বিল্ড মধ্যে পার্থক্য এবং Build https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

3.2 এই 3 টির মধ্যে পার্থক্য: বনাম বনাম বনাম রানটাইম সংকলন করুন

https://www.quora.com/What-is-the-differences-between-build-run-and-compile ফার্নান্দো প্যাডোয়ান, ভাষার বিকাশের জন্য কিছুটা কৌতূহল বিকাশকারী একটি বিকাশকারী উত্তর দিয়েছেন 23 ফেব্রুয়ারি আমি সম্পর্কের পিছনে যাচ্ছি অন্যান্য উত্তরে:

চলমান কিছু বাইনারি এক্সিকিউটেবল (বা একটি স্ক্রিপ্ট, অনুবাদ করা ভাষাগুলির জন্য) হতে চলেছে, ভাল ... কম্পিউটারে একটি নতুন প্রক্রিয়া হিসাবে কার্যকর করা হয়েছে; সংকলন হ'ল কিছু উচ্চ স্তরের ভাষায় (মেশিনের কোডের সাথে তুলনা করে উচ্চতর) একটি প্রোগ্রাম পার্স করার প্রক্রিয়া, এটি সিনট্যাক্স, শব্দার্থবিজ্ঞান, লাইব্রেরি সংযোগকারী পরীক্ষা করা, সম্ভবত কিছু অপ্টিমাইজেশন করা, তারপরে আউটপুট হিসাবে বাইনারি এক্সিকিউটেবল প্রোগ্রাম তৈরি করা। এই নির্বাহযোগ্যটি মেশিন কোড, বা কোনও ধরণের বাইট কোড আকারে হতে পারে - এটি হ'ল নির্দেশ যা কোনও ধরণের ভার্চুয়াল মেশিনকে লক্ষ্য করে; বিল্ডিংয়ের মধ্যে সাধারণত পরীক্ষা করা এবং নির্ভরতা সরবরাহ করা, কোড পরিদর্শন করা, কোডটিকে বাইনারিতে সংকলন করা, স্বয়ংক্রিয় পরীক্ষা চালানো এবং ফলস্বরূপ বাইনারি [ies] এবং অন্যান্য সম্পদ (চিত্র, কনফিগারেশন ফাইল, গ্রন্থাগার, ইত্যাদি) মোতায়েনযোগ্য ফাইলের নির্দিষ্ট বিন্যাসে প্যাকেজিং অন্তর্ভুক্ত থাকে। মনে রাখবেন যে বেশিরভাগ প্রক্রিয়াগুলি alচ্ছিক এবং কিছু আপনার জন্য নির্মিত প্ল্যাটফর্মের উপর নির্ভর করে। উদাহরণস্বরূপ, টমক্যাটের জন্য একটি জাভা অ্যাপ্লিকেশন প্যাকেজিং একটি .war ফাইল আউটপুট দেবে। সি ++ কোডের বাইরে একটি উইন 32 এক্সিকিউটেবল তৈরি করা কেবলমাত্র .exe প্রোগ্রাম আউটপুট করতে পারে বা এটি এমএসআই ইনস্টলারের মধ্যেও প্যাকেজ করতে পারে।


0

এই উদাহরণটি দেখুন:

public class Test {

    public static void main(String[] args) {
        int[] x=new int[-5];//compile time no error
        System.out.println(x.length);
    }}

উপরের কোডটি সফলভাবে সংকলিত হয়েছে, কোনও সিনট্যাক্স ত্রুটি নেই, এটি পুরোপুরি বৈধ। তবে রান সময়ে, এটি নিম্নলিখিত ত্রুটি ছুড়ে ফেলে।

Exception in thread "main" java.lang.NegativeArraySizeException
    at Test.main(Test.java:5)

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


0

সার্বজনীন বর্গ রানটাইমভিউস কম্পাইলটাইম {

public static void main(String[] args) {

    //test(new D()); COMPILETIME ERROR
    /**
     * Compiler knows that B is not an instance of A
     */
    test(new B());
}

/**
 * compiler has no hint whether the actual type is A, B or C
 * C c = (C)a; will be checked during runtime
 * @param a
 */
public static void test(A a) {
    C c = (C)a;//RUNTIME ERROR
}

}

class A{

}

class B extends A{

}

class C extends A{

}

class D{

}


0

আপনি আসল কোডটি পড়ে কোড সংকলন কাঠামো বুঝতে পারবেন। রান-টাইম স্ট্রাকচার পরিষ্কার হয় না যদি না আপনি ব্যবহৃত প্যাটার্নটি বুঝতে না পারেন।


-1

এটি এসও এর পক্ষে ভাল প্রশ্ন নয় (এটি কোনও নির্দিষ্ট প্রোগ্রামিং প্রশ্ন নয়) তবে এটি সাধারণভাবে কোনও খারাপ প্রশ্ন নয়।

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

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

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

দুর্ভাগ্যক্রমে, আমি এ সম্পর্কে কোনও ভাল রেফারেন্স জানি না। সিএলটিএল 2 এটি সম্পর্কে কিছুটা কথা বলে তবে এটি সম্পর্কে শেখার পক্ষে এটি দুর্দান্ত নয়।


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

1
আপনি যদি কোনও প্রশ্নের মান দেখতে না পান তবে এটিই আপনার সমস্যা। যদি এটি সাধারণ হয় তবে এর কারণ রয়েছে। আপনি সাধারণ প্রশ্ন পছন্দ করেন না বলেই এর অর্থ এই নয় যে বিশ্ব আপনাকে যেটি দরকারী বলে ঘিরে। এটি জিজ্ঞাসা করার বিষয়ে তার একটি নির্দিষ্ট উদ্দেশ্য রয়েছে এবং উভয়কেই আরও ভালভাবে বুঝতে এবং সংজ্ঞায়িত করার জন্য তিনি বিভিন্ন উত্তর পেতে চান। এটা নাও?
PositiveGuy
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.