কোবোল

কোবোল () একটি তৃতীয় প্রজন্মের প্রোগ্রামিং ভাষা এবং আজও প্রচলিত প্রাচীনতম প্রোগ্রামিং ভাষাগুলির একটি। এটির ইংরেজি নামটি Common Business-Oriented Language-এর সংক্ষিপ্ত রূপ (acronym)। এটি মূলত ব্যবসা, অর্থসংস্থান, এবং কোম্পানি ও সরকারের প্রশাসনিক সিস্টেমসমূহে ব্যবহার করা হয়।

ভাষাটির সাম্প্রতিকতম মানরূপ COBOL 2002-তে বস্তু-সংশ্লিষ্ট প্রোগ্রামিং ও অন্যান্য আধুনিক ফিচার সমর্থন করা হয়েছে।

কোবোল বা কমন বিজনেস ওরিয়েন্টেড ল্যাঙ্গুয়েজ ১৯৫৯ সালে কোডাসিল (CODASYL) দ্বারা ডিজাইন করা হয়েছিল এবং আংশিকভাবে গ্রেস হপার কর্তৃক ডিজাইনকৃত ফ্লো-মেটিক (FLOW-MATIC) প্রোগ্রামিং ভাষার উপর ভিত্তি করে গঠিত। এটি যুক্তরাষ্ট্রের প্রতিরক্ষা বিভাগের একটি উদ্যোগের অংশ হিসেবে তৈরি হয়েছিল, যার উদ্দেশ্য ছিল ডেটা প্রক্রিয়াকরণের জন্য একটি পোর্টেবল প্রোগ্রামিং ভাষা তৈরি করা। কোবোল মূলত একটি সাময়িক সমাধান হিসেবে দেখা হলেও, প্রতিরক্ষা বিভাগ দ্রুত কম্পিউটার নির্মাতাদের এটির সরবরাহ নিশ্চিত করতে চাপ প্রয়োগ করে, যা এর ব্যাপক গ্রহণযোগ্যতার কারণ হয়ে দাঁড়ায়। কোবোল ১৯৬৮ সালে মানকৃত হয় এবং এরপরে পাঁচবার সংশোধিত হয়েছে। এর সম্প্রসারণে স্ট্রাকচারড প্রোগ্রামিং এবং অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং এর সমর্থন যুক্ত করা হয়েছে। বর্তমান মানদণ্ড হল আইএসও/আইইসি (ISO/IEC) 1989:2023।

কোবোল এর স্টেটমেন্টগুলির গদ্য আকারে প্রোস সিনট্যাক্স রয়েছে, যেমন MOVE x TO y, যা আত্ম-প্রামাণিক এবং পাঠযোগ্যতার উপর জোর দেয়ার জন্য ডিজাইন করা হয়েছে। তবে এটি অত্যন্ত দীর্ঘ ও বিস্তারিত এবং এতে ৩০০টিরও বেশি সংরক্ষিত শব্দ ব্যবহার করা হয়েছে, যা অন্যান্য ভাষার সংক্ষিপ্ত এবং গাণিতিকভাবে অনুপ্রাণিত সিনট্যাক্সের তুলনায় ব্যাপক। কোবোল কোড চারটি ডিভিশনে বিভক্ত (আইডেন্টিফিকেশন, এনভায়রনমেন্ট, ডেটা, এবং প্রসিডিউর), যেখানে বিভাগ, অনুচ্ছেদ, এবং বাক্যের কঠোর বিন্যাস বজায় রাখা হয়েছে। বড় স্ট্যান্ডার্ড লাইব্রেরি না থাকা সত্ত্বেও, এর মানদণ্ডে ৪৩টি স্টেটমেন্ট, ৮৭টি ফাংশন এবং মাত্র একটি ক্লাস নির্ধারিত হয়েছে। কোবোল তৈরি হওয়ার সময় একাডেমিক কম্পিউটার বিজ্ঞানীরা সাধারণত ব্যবসায়িক অ্যাপ্লিকেশন নিয়ে আগ্রহী ছিলেন না এবং এর ডিজাইনে তাদের কোনো ভূমিকা ছিল না; এটি কার্যত ব্যবসায়িক ভাষা হিসেবে তৈরি করা হয়েছিল, যেখানে ইনপুট এবং আউটপুটের উপর গুরুত্ব দেয়া হয়েছে এবং শুধুমাত্র সংখ্যা ও টেক্সটের স্ট্রিং টাইপ সমর্থন করে। কোবোল তার বিস্তারিততা, ডিজাইন প্রক্রিয়া এবং স্ট্রাকচারড প্রোগ্রামিংয়ের দুর্বল সমর্থনের জন্য কোবোলের সমালোচনা হয়েছে। এই দুর্বলতাগুলি এককভাবে বোঝার জন্য সহজ হলেও সম্পূর্ণ প্রোগ্রামটি জটিল হয়ে ওঠে। বহু বছর ধরে, কোবোল প্রধানত মেইনফ্রেমে ব্যবসায়িক কার্যক্রমের প্রোগ্রামিং ভাষা হিসেবে ব্যবহৃত হয়েছে, যদিও সাম্প্রতিক বছরগুলোতে অনেক কোবোল অপারেশন ক্লাউড কম্পিউটিং-এ স্থানান্তরিত হয়েছে।

ইতিহাস এবং স্পেসিফিকেশন

পটভূমি
১৯৫০-এর দশকের শেষের দিকে, কম্পিউটার ব্যবহারকারী এবং প্রস্তুতকারীরা প্রোগ্রামিংয়ের ক্রমবর্ধমান খরচ নিয়ে উদ্বিগ্ন হতে শুরু করেন। ১৯৫৯ সালের একটি সমীক্ষায় দেখা গেছে যে যেকোনো ডেটা প্রক্রিয়াকরণ প্রতিষ্ঠানে প্রোগ্রামিং খরচ গড়ে ৮,০০,০০০ মার্কিন ডলার, এবং নতুন হার্ডওয়্যারে প্রোগ্রাম চালানোর জন্য এটি অনুবাদ করতে ৬,০০,০০০ মার্কিন ডলার খরচ হত। সেই সময়ে নতুন প্রোগ্রামিং ভাষা ব্যাপকভাবে প্রসার লাভ করছিল, একই সমীক্ষায় এটি প্রস্তাব করা হয়েছিল যে যদি একটি সাধারণ ব্যবসা-ভিত্তিক ভাষা ব্যবহার করা হত, তবে রূপান্তর অনেক সাশ্রয়ী এবং দ্রুত হতো।

৮ এপ্রিল ১৯৫৯ সালে, বারোজ কর্পোরেশনের কম্পিউটার বিজ্ঞানী মেরি কে. হাওয়েস একটি সাধারণ ব্যবসা ভাষা নিয়ে আনুষ্ঠানিক বৈঠক আয়োজনের জন্য একাডেমিয়া, কম্পিউটার ব্যবহারকারী এবং প্রস্তুতকারকদের প্রতিনিধিদের একটি বৈঠক আহ্বান করেন পেনসিলভানিয়া বিশ্ববিদ্যালয়ে। প্রতিনিধিদের মধ্যে ছিলেন গ্রেস হপার (ইংরেজি-সদৃশ ডেটা প্রক্রিয়াকরণ ভাষা ফ্লো-মেটিকের উদ্ভাবক), জিন সামেট এবং সাউল গর্ন।

এপ্রিলের বৈঠকে, দলটি প্রতিরক্ষা বিভাগ (ডিওডি) এর কাছে একটি সাধারণ ব্যবসা ভাষা তৈরির প্রচেষ্টা স্পন্সর করার জন্য অনুরোধ জানায়। প্রতিনিধি দল ডেটা সিস্টেম রিসার্চ স্টাফের পরিচালক চার্লস এ. ফিলিপসকে প্রভাবিত করেন, যিনি মনে করেছিলেন যে তারা ডিওডি-এর সমস্যাগুলো "সম্পূর্ণরূপে বুঝতে" পেরেছেন। DoD তৎকালে ২২৫টি কম্পিউটার পরিচালনা করছিল, ১৭৫টি আরও অর্ডারে ছিল এবং ২০০ মিলিয়নের বেশি ডলার এদের প্রোগ্রাম চালানোর জন্য ব্যয় করেছিল। পোর্টেবল প্রোগ্রাম সময় সাশ্রয় করবে, খরচ কমাবে এবং আধুনিকীকরণ সহজ করবে।

চার্লস ফিলিপস স্পন্সর করতে সম্মত হন এবং প্রতিনিধি দলকে এজেন্ডা খসড়া তৈরি করার দায়িত্ব দেন।

কোবোল ৬০

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

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

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

তিন মাসের সময়সীমা নিয়ে সন্দিহান ছিলেন স্বল্পমেয়াদী কমিটির সদস্যরা। সদস্য বেটি হোলবারটন এই তিন মাসের সময়সীমাকে "অত্যন্ত আশাবাদী" বলে বর্ণনা করেন এবং সন্দেহ প্রকাশ করেন যে ভাষাটি সত্যিই একটি সাময়িক সমাধান হবে।

পরিচালন কমিটি ৪ জুন বৈঠকে মিলিত হয় এবং পুরো কার্যক্রমের নামকরণ করে কমিটি অন ডেটা সিস্টেম ল্যাঙ্গুয়েজেস, সংক্ষেপে কোডাসিল, এবং একটি নির্বাহী কমিটি গঠনের সিদ্ধান্ত নেয়।

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

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

গ্রেস হপারকে মাঝে মাঝে "কোবোলের মা" বা "কোবোলের দাদি" বলা হয়, তবে জিন সামেট, কোবোলের অন্যতম প্রধান ডিজাইনার, বলেন যে হপার "কোবোলের মা, স্রষ্টা বা বিকাশকারী ছিলেন না।"

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

১৯৮০ সালে গ্রেস হপার মন্তব্য করেন যে "কোবোল ৬০-এর ৯৫% ফ্লো-মেটিক," এবং কমট্রান-এর প্রভাব "অত্যন্ত ক্ষুদ্র" ছিল। আরও উল্লেখ করেন যে তিনি বলতেন কাজটি ফ্লো-মেটিক এবং কমট্রান উভয়ের দ্বারা প্রভাবিত হয়েছে শুধুমাত্র "অন্যদের খুশি রাখতে এবং তারা যেন আমাদের বাদ না দেয় সেই জন্যে"।

কমট্রান থেকে কোবোলে অন্তর্ভুক্ত বৈশিষ্ট্যগুলোর মধ্যে ছিল সূত্র, পিকচার ক্লজ, একটি উন্নত IF স্টেটমেন্ট যা GO TO ব্যবহার না করেই কাজ করত, এবং একটি উন্নত ফাইল ব্যবস্থাপনা ব্যবস্থা।

কমিটির কাজের কার্যকারিতা নিয়ে অনেক বিতর্ক হয়েছিল। কিছু সদস্য মনে করতেন ভাষাটিতে অনেক বেশি সমঝোতা করা হয়েছে এবং এটি কমিটির দ্বারা নকশাকৃত হওয়ার ফল। অন্যরা মনে করতেন এটি পরীক্ষিত তিনটি ভাষার চেয়ে উন্নত ছিল। কেউ কেউ ভাষাটিকে খুব জটিল মনে করতেন; আবার কেউ কেউ এটিকে অত্যন্ত সহজ বলে মনে করতেন।

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

স্পেসিফিকেশনগুলো ৪ সেপ্টেম্বর নির্বাহী কমিটির কাছে উপস্থাপন করা হয়। এগুলো প্রত্যাশা পূরণে ব্যর্থ হয়: জোসেফ ওয়েগস্টেইন মন্তব্য করেন যে "এতে কিছু অসম্পূর্ণ অংশ রয়েছে এবং কিছু সংযোজন প্রয়োজন," এবং বব বেমার পরবর্তীতে এগুলোকে "মিশ্রণ" বলে উল্লেখ করেন। কমিটিকে ডিসেম্বর পর্যন্ত এটি উন্নত করার সময় দেয়া হয়।

সেপ্টেম্বরের মাঝামাঝি এক বৈঠকে কমিটি নতুন ভাষার নাম নিয়ে আলোচনা করে। প্রস্তাবিত নামগুলোর মধ্যে ছিল "BUSY" (Business System), "INFOSYL" (Information System Language) এবং "COCOSYL" (Common Computer Systems Language)। কারা "COBOL" নামটি প্রস্তাব করেছিলেন তা স্পষ্ট নয়, যদিও বব বেমার পরবর্তীতে দাবি করেন এটি তার প্রস্তাব ছিল।

অক্টোবর মাসে, মধ্যম-সীমা কমিটি FACT ভাষার স্পেসিফিকেশন, যা রয় নাট তৈরি করেছিলেন, এর কপি পায়। এর বৈশিষ্ট্যগুলো কমিটিকে এতটাই মুগ্ধ করেছিল যে তারা কোবোলের ভিত্তি হিসেবে এটি গ্রহণের প্রস্তাব পাস করে।

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

শীঘ্রই স্পষ্ট হয়ে ওঠে যে কমিটি খুব বড়, ফলে দ্রুত অগ্রগতি করা সম্ভব হচ্ছিল না। হতাশ হাওয়ার্ড ব্রমবার্গ ১৫ ডলারে একটি কবরফলক কিনে "COBOL" খোদাই করেন এবং তার অসন্তোষ প্রকাশ করতে এটি চার্লস ফিলিপসের কাছে পাঠান।

একটি উপকমিটি গঠন করা হয়েছিল বিদ্যমান ভাষাগুলো বিশ্লেষণ করার জন্য, যা ছয়জন সদস্য নিয়ে গঠিত হয়েছিল:

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

স্পেসিফিকেশনগুলো ৮ জানুয়ারি ১৯৬০-এ নির্বাহী কমিটির অনুমোদন পায় এবং এটি সরকারি মুদ্রণ অফিসে পাঠানো হয়, যা "COBOL 60" নামে মুদ্রিত হয়। ভাষাটির ঘোষিত উদ্দেশ্য ছিল দক্ষ, পোর্টেবল প্রোগ্রাম সহজে লেখা, নতুন সিস্টেমে স্বল্প খরচে ও কম পরিশ্রমে স্থানান্তরিত করা এবং নবীন প্রোগ্রামারদের জন্য উপযোগী করা।

পরবর্তীতে কোডাসিল নির্বাহী কমিটি কোবোল মেইনটেন্যান্স কমিটি তৈরি করে, যা ব্যবহারকারী এবং বিক্রেতাদের প্রশ্নের উত্তর দেয় এবং স্পেসিফিকেশনগুলিকে উন্নত ও সম্প্রসারিত করার দায়িত্ব পালন করে।

১৯৬০ সালের মধ্যে কোবোল কম্পাইলার তৈরির পরিকল্পনা করা প্রস্তুতকারকদের তালিকা বৃদ্ধি পায়। সেপ্টেম্বরের মধ্যে, পাঁচটি নতুন প্রস্তুতকারক কোডাসিলের সাথে যুক্ত হয় (বেনডিক্স, কন্ট্রোল ডেটা কর্পোরেশন, জেনারেল ইলেকট্রিক (GE), ন্যাশনাল ক্যাশ রেজিস্টার এবং ফিলকো), এবং অংশগ্রহণকারী সকল প্রস্তুতকারী কোবোল কম্পাইলার ঘোষণা করে। GE এবং IBM তাদের নিজ নিজ ভাষা GECOM এবং কমট্রান-এর মধ্যে কোবোলকে সংহত করার পরিকল্পনা করে। এর বিপরীতে, ইন্টারন্যাশনাল কম্পিউটারস অ্যান্ড ট্যাবুলেটরস তাদের ভাষা কোডেলকে কোবোল দ্বারা প্রতিস্থাপনের পরিকল্পনা করে।

এদিকে, আরসিএ এবং স্পেরি র্যান্ড কোবোল কম্পাইলার তৈরি করার কাজে নিয়োজিত ছিল। প্রথম কোবোল প্রোগ্রাম ১৭ আগস্ট আরসিএ ৫০১ কম্পিউটারে চালানো হয়। ৬ ও ৭ ডিসেম্বর, একই কোবোল প্রোগ্রাম (যদিও কিছু ছোটখাটো পরিবর্তনসহ) একটি আরসিএ কম্পিউটার এবং একটি রেমিংটন-র্যান্ড ইউনিভ্যাক কম্পিউটারে চালানো হয়, যা সামঞ্জস্যতা অর্জনের সম্ভাবনা প্রমাণ করে।

কোবোল রেফারেন্স ম্যানুয়ালগুলোতে ছাপানো পরামর্শক বার্তাটি ব্যবহারকৃত ভাষাগুলোর আপেক্ষিক প্রভাব এখনও নির্দেশ করে:

কোবোল-৬১ থেকে কোবোল-৬৫

কোবোল ৬০-এ বেশ কিছু লজিক্যাল বা যুক্তি সংক্রান্ত ত্রুটি পাওয়া যায়, যা জেনারেল ইলেকট্রিকের চার্লস কাটজকে সতর্ক করেন যে এটি স্পষ্টভাবে ব্যাখ্যা করা সম্ভব নয়। অনিচ্ছুক শর্ট-টার্ম কমিটি একটি সম্পূর্ণ পরিস্কারকরণ করে, এবং ১৯৬৩ সালের মার্চ নাগাদ রিপোর্ট করা হয় যে কোবোলের সিনট্যাক্স, যদিও এর মধ্যে কিছু সাংকেতিক অস্পষ্টতা রয়ে গেছে, তা এখন আলগলের মতো সংজ্ঞায়িত করা সম্ভব।

কোবোল এমন একটি ভাষা যার জন্য কম্পাইলার লেখা বেশ কঠিন, কারণ এতে বিস্তৃত সিনট্যাক্স এবং সিনট্যাকটিক কনস্ট্রাক্টগুলোর মধ্যে অনেক ঐচ্ছিক উপাদান রয়েছে। পাশাপাশি, এতে বহু সম্ভাব্য ডেটা উপস্থাপন, অন্তর্নিহিত টাইপ রূপান্তর, এবং I/O অপারেশনের জন্য প্রয়োজনীয় সেট-আপগুলির জন্য দক্ষ কোড উৎপন্ন করার প্রয়োজন হয়। প্রাথমিক কোবোল কম্পাইলারগুলো প্রাথমিক এবং ধীরগতি সম্পন্ন ছিল। ১৯৬২ সালে মার্কিন নেভির একটি মূল্যায়নে দেখা যায় যে কম্পাইলেশন গতি প্রতি মিনিটে ৩–১১ স্টেটমেন্ট। ১৯৬৪ সালের মধ্য নাগাদ এটি প্রতি মিনিটে ১১–১০০০ স্টেটমেন্টে উন্নীত হয়। আরও পর্যবেক্ষণ করা হয় যে মেমোরি বৃদ্ধির ফলে গতি ব্যাপকভাবে বাড়তে পারে এবং কম্পাইলেশনের খরচ ব্যাপকভাবে পরিবর্তিত হয়: প্রতি স্টেটমেন্টের খরচ ছিল $০.২৩ থেকে $১৮.৯১ পর্যন্ত।

১৯৬২ সালের শেষের দিকে, আইবিএম ঘোষণা করে যে কোবোল তাদের প্রধান উন্নয়ন ভাষা হবে এবং কমট্রানের উন্নয়ন বন্ধ করা হবে।

প্রকাশনার পর পাঁচ বছরের মধ্যে কোবোল স্পেসিফিকেশন তিনবার সংশোধিত হয়েছিল। কোবোল ৬০-কে ১৯৬১ সালে কোবোল-৬১ দ্বারা প্রতিস্থাপন করা হয়। এরপর ১৯৬৩ সালে কোবোল-৬১ এক্সটেন্ডেড স্পেসিফিকেশন প্রবর্তিত হয়, যা সোর্ট এবং রিপোর্ট রাইটার সুবিধাগুলি অন্তর্ভুক্ত করে। যুক্ত হওয়া এই সুবিধাগুলি হানিওয়েলের দ্বারা ১৯৫৯ সালের শেষের দিকে শর্ট-রেঞ্জ কমিটিকে পাঠানো একটি চিঠিতে চিহ্নিত ত্রুটিগুলির সংশোধন করে। কোবোল সংস্করণ ১৯৬৫ স্পেসিফিকেশনগুলোতে আরও স্পষ্টতা আনে এবং মাস স্টোরেজ ফাইল এবং টেবিল পরিচালনার সুবিধাগুলি অন্তর্ভুক্ত করে।

কোবোল-৬৮

কোবোলের বিভিন্ন সংস্করণের মধ্যে অসামঞ্জস্যতা কাটিয়ে ওঠার জন্য কোবোলকে মানকরণের প্রচেষ্টা শুরু হয়। ১৯৬২ সালের শেষের দিকে, উভয় ISO এবং মার্কিন যুক্তরাষ্ট্র স্ট্যান্ডার্ডস ইনস্টিটিউট (বর্তমানে ANSI) স্ট্যান্ডার্ড তৈরির জন্য গ্রুপ গঠন করে। ANSI ১৯৬৮ সালের আগস্টে "USA Standard COBOL X3.23" তৈরি করে, যা পরবর্তী সংস্করণের জন্য ভিত্তি হয়ে ওঠে। এই সংস্করণটি আমেরিকান ন্যাশনাল স্ট্যান্ডার্ড (ANS) কোবোল নামে পরিচিত ছিল এবং ১৯৭২ সালে ISO দ্বারা গ্রহণ করা হয়।

কোবোল-৭৪

১৯৭০ সালের মধ্যে কোবোল বিশ্বব্যাপী সর্বাধিক ব্যবহৃত প্রোগ্রামিং ভাষা হয়ে ওঠে।

ANSI কমিটির স্বাধীনভাবে, কোডাসিল প্রোগ্রামিং ল্যাঙ্গুয়েজ কমিটি ভাষাটি উন্নত করার কাজ করছিল। তারা ১৯৬৮, ১৯৬৯, ১৯৭০ এবং ১৯৭৩ সালে নতুন সংস্করণ বর্ণনা করে, যাতে আন্তঃপ্রোগ্রাম যোগাযোগ, ডিবাগিং, এবং ফাইল মার্জিং সুবিধা, সেইসাথে উন্নত স্ট্রিং পরিচালনা এবং লাইব্রেরি অন্তর্ভুক্তি বৈশিষ্ট্যসহ পরিবর্তন অন্তর্ভুক্ত ছিল।

যদিও কোডাসিল ANSI কমিটি থেকে স্বাধীন ছিল, "CODASYL Journal of Development" ব্যবহার করা হয় ANSI দ্বারা জনপ্রিয় বৈশিষ্ট্যগুলো চিহ্নিত করার জন্য। প্রোগ্রামিং ল্যাঙ্গুয়েজ কমিটি ECMA এবং জাপানি কোবোল স্ট্যান্ডার্ড কমিটির সাথেও যোগাযোগ রাখত।

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

১৯৭৪ সালে ANSI একটি সংশোধিত ANS কোবোল সংস্করণ প্রকাশ করে, যাতে নতুন বৈশিষ্ট্য যেমন ফাইল অর্গানাইজেশন, DELETE স্টেটমেন্ট এবং মেমরি সেগমেন্টেশন মডিউল অন্তর্ভুক্ত ছিল। বাদ দেয়া বৈশিষ্ট্যের মধ্যে ছিল NOTE স্টেটমেন্ট, EXAMINE স্টেটমেন্ট (যা INSPECT দ্বারা প্রতিস্থাপিত হয়েছিল), এবং ইমপ্লিমেন্টার-ডিফাইন্ড র্যান্ডম অ্যাকসেস মডিউল (যা নতুন সিকুয়েনশিয়াল এবং রিলেটিভ I/O মডিউল দ্বারা প্রতিস্থাপিত হয়েছিল)। এতে ৪৪টি পরিবর্তন অন্তর্ভুক্ত ছিল, যা পূর্ববর্তী স্টেটমেন্টগুলিকে নতুন মানদণ্ডের সাথে অসামঞ্জস্যপূর্ণ করে তোলে। রিপোর্ট রাইটারকে কোবোল থেকে সরিয়ে ফেলার কথা ছিল কিন্তু স্ট্যান্ডার্ড প্রকাশের আগে তা পুনর্বহাল করা হয়। পরবর্তীতে ISO ১৯৭৮ সালে আপডেট করা স্ট্যান্ডার্ডটি গ্রহণ করে।

তথ্যসূত্র

প্রোগ্রামিং ভাষা
ক্লাস-ভিত্তিক প্রোগ্রামিং ভাষা
ক্রস-প্ল্যাটফর্ম সফটওয়্যার
বস্তু-সংশ্লিষ্ট প্রোগ্রামিং ভাষা
পদ্ধতিমূলক প্রোগ্রামিং ভাষা