আমি বিশ্বাস করি সঠিক উত্তর নেতিবাচক। নিম্নলিখিত প্রশ্নগুলির মধ্যে পার্থক্য করা প্রয়োজন:
- অস্পষ্টতা না থাকা কোনও প্রাকৃতিক ভাষায় এমন কোনও সফ্টওয়্যার স্পেসিফিকেশন লিখতে কি সম্ভব?
- অস্পষ্টতা নেই এমন কোনও প্রাকৃতিক ভাষায় সফ্টওয়্যার লেখা কি সম্ভব?
প্রথম এবং দ্বিতীয় প্রশ্নের মধ্যে পার্থক্যটি জড়িত বিশদের স্তরের বিষয়টি ব্যাখ্যা করে, প্রয়োজনীয় পরিমাণ ব্যাখ্যার পরিমাণ এবং সফ্টওয়্যার বা সফ্টওয়্যার স্পেসিফিকেশন লেখার উদ্দেশ্যে প্রাকৃতিক ভাষায় বাক্য নির্মাণের ক্ষেত্রে আরোপিত বিধি সম্পর্কিত।
দ্বিতীয় প্রশ্নের উত্তরটি সত্যই। বাক্য নির্মান এবং অর্থের জন্য সম্মত নিয়মগুলির সাথে একটি প্রাকৃতিক ভাষার উপযুক্ত সীমাবদ্ধ উপসর্গ দেওয়া, কোড ব্যাকরণগত ইংরেজি বাক্যে লেখা যেতে পারে। উদাহরণস্বরূপ, নিম্নলিখিত ভাষাটি নির্বিঘ্নে অ্যাসাইনমেন্ট বিবৃতি লেখার অনুমতি দেয়:
Variables: x,y,z,...
Constants: 1,2,3,...
Rules: (1) if x is a variable and n a constant, then
"The variable x contains the number n" is a sentence.
(2) if x is a variable and n a constant, then
"Assign the number n to the variable x" is a sentence.
এটি হ'ল, আমরা প্রতিটি পদ্ধতি বর্ণনা করে আনুষ্ঠানিক প্রোগ্রামিং ভাষায় রচিত কোডটি প্রাকৃতিক ভাষায় অনুবাদ করতে পারি । অন্যদিকে, একটি সফ্টওয়্যার স্পেসিফিকেশন প্রায়শই ব্যাখ্যার প্রয়োজন হয়। সুতরাং, কোনও সফ্টওয়্যার স্পেসিফিকেশন দ্ব্যর্থহীনভাবে দেওয়া যেতে পারে কিনা তা নির্দিষ্টকরণের সাথে জড়িত বিস্তারিতের স্তরের উপর নির্ভর করে। যাইহোক, একটি নির্বাচিত ডোমেন দেওয়া হয়েছে যার উপর নির্দিষ্টকরণের সীমা রয়েছে, এই ডোমেনটিতে নির্বাচিত বিশেষ ক্রিয়াকলাপগুলির সাথে, অনুরূপ অনুবাদ প্রক্রিয়া চালানো যেতে পারে। এই ক্ষেত্রে:
Over the domain D supporting operations f,g,h over elements a,b,c in relations
P,R,Q with properties φ,ψ,θ, design a program that does X,Y,Z.
যেখানে বিবৃতি X
, Y
, Z
কেবলমাত্র সেই স্পেসিফিকেশন এর ভূমিকা উল্লেখ আইটেম থাকে এবং একটি উপযুক্ত আনুষ্ঠানিক লিখিত এবং স্বীকৃত একটি প্রাকৃতিক ভাষার উপসেট হয়। অস্পষ্টতাগুলি পরে স্পেসিফিকেশনটি কীভাবে প্রয়োগ করা যায় তা নিয়ে উদ্বেগ প্রকাশ করবে - তবে এটি প্রত্যাশিত হবে।