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