CALL/360:BASIC
কল/360: বেসিক ছিল সিস্টেম/360 এবং পরবর্তী প্ল্যাটফর্মগুলির জন্য বেসিক প্রোগ্রামিং ভাষার একটি আইবিএম উপভাষা। এটি ডার্টমাউথ বেসিকের 1960-এর দশকের মাঝামাঝি সংস্করণের উপর ভিত্তি করে তৈরি করা হয়েছিল কিন্তু বেশ কয়েকটি এক্সটেনশন যোগ করা হয়েছিল। এর মধ্যে বেশিরভাগই ফাইল পরিচালনার সাথে সম্পর্কিত ছিল, যা সেই সময়ে ডার্টমাউথের অভাব ছিল। এটি কিছু আইবিএম টার্মিনালে পাওয়া গাণিতিক প্রতীকগুলির জন্যও সমর্থন যোগ করেছে, যাতে এটি সরাসরি হিসাবে প্রবেশ করা যায়। অন্যথায় পার্থক্যগুলি সামান্য। ইতিহাস কল/360: বেসিক 1968 সালে ঘোষণা করা হয়েছিল, এপিএল এবং ফোরট্রান এবং ডেটাটেক্সট মার্কআপ ভাষা ভিত্তিক পাঠ্য সম্পাদক সহ সিস্টেমের জন্য আরও বেশ কয়েকটি ভাষার সাথে। এই ব্যবস্থার প্রাথমিক বিজ্ঞাপনে বলা হয়েছিল যে "প্রাতঃরাশের পরে কল/360: বেসিক শেখা শুরু করতে পারেন এবং আপনি দুপুরের খাবারের আগে আমাদের কম্পিউটার শেয়ার করতে পারেন।" কল/360 স্যুটটি আইবিএম-এর তথ্য বিপণন বিভাগের মধ্যে তৈরি করা হয়েছিল। প্রাথমিকভাবে, পণ্যগুলি মালিকানাধীন হিসাবে বিবেচিত হত এবং শুধুমাত্র অনলাইন পরিষেবার মাধ্যমে অ্যাক্সেস করা যেত। গ্রাহকের চাহিদা তাদের অন্যান্য সিস্টেম/360 ব্যবহারকারীদের কাছে এই পণ্যগুলি সরবরাহ করতে বাধ্য করেছিল, যা তারা কোনও সমর্থন ছাড়াই "যেমন আছে" ভিত্তিতে প্রকাশ করেছিল। একই বছরের শেষের দিকে, আইবিএম তার বাকি টাইমশেয়ারিং পরিষেবাগুলির সাথে এই বিভাগটিকে কল/360 অপারেটিং সিস্টেম এবং কল/360: বেসিক সহ সার্ভিস ব্যুরো কর্পোরেশনে (এসবিসি) স্থানান্তর করে। সেই তারিখের পরের ম্যানুয়ালগুলি ভাষাটিকে এসবিসি পণ্য হিসাবে উল্লেখ করে। 1973 সালে, এসবিসি নিজেই একটি দীর্ঘস্থায়ী অ্যান্টি-ট্রাস্ট মামলার অংশ হিসাবে কন্ট্রোল ডেটা কর্পোরেশনে স্থানান্তরিত হয়েছিল। বিবরণ কল/360: বেসিক উন্নত রিক্স গণিত বৈশিষ্ট্যগুলির জন্য সমর্থন সহ ডার্টমাউথ বেসিক দ্য ফোর্থের প্রায় অভিন্ন। এটি প্রাথমিকভাবে ফাইল পরিচালনার সমর্থনে পৃথক। ভাষাটিতে LET, PRINT, END, FOR.NEXT সহ একটি ঐচ্ছিক কমান্ড অন্তর্ভুক্ত ছিল, গোটো, GOSUB.RETURN, IF.THEN, IF.GOTO, DEF, READ, DATA, RESTORE DIM, এবং REM। এই তালিকায়, এটি ফর্মটির গণনাকৃত গোটো যোগ করেছে। মনে রাখবেন যে একটি বিবৃতির মধ্যে শুধুমাত্র একটি লাইন নম্বর অনুসরণ করা যেতে পারে, তারপরে নির্বিচারে বিবৃতি দেওয়ার ধারণাটি পরে উপস্থিত হয়নি। ম্যানুয়ালে সর্বদা একটি কোলন দিয়ে খিলানগুলি দেখানো হয়, বা, তবে এগুলির প্রয়োজন ছিল কিনা তা স্পষ্ট নয়। এবং কমান্ডগুলি একটি মন্তব্য স্ট্রিং দ্বারাও অনুসরণ করা যেতে পারে, যেখানে একটি কোলনের প্রয়োজন ছিল না। একটি লাইন নম্বর অনুসরণ করে প্রসারিত করা হয়েছিল। উল্লেখ করা লাইনটি একটি কোলন এবং তারপরে বিন্যাসের স্ট্রিংয়ের একটি সিরিজ দিয়ে শুরু হয়েছিল। স্ট্রিংয়ের এই সিরিজটি "ইমেজ" নামে পরিচিত ছিল। মুদ্রিত জিনিসগুলি কমা বা অর্ধ-কোলন দ্বারা পৃথক করা যেতে পারে, কমা সহ "মুদ্রণ অঞ্চল" 18-অক্ষর প্রশস্ত। একটি নতুন কমান্ড, একটি বিবৃতি দিয়ে প্রোগ্রামটি বন্ধ করে দেয় এবং তারপর ব্যবহারকারীর লেখা প্রবেশ করার জন্য অপেক্ষা করে, যা উপেক্ষা করা হয়। এন্ড-অফ-লাইন চরিত্রের কারণে প্রোগ্রামটি চলতে থাকে। এটি উৎসের একটি মন্তব্য দ্বারাও অনুসরণ করা যেতে পারে। এটিতে ডার্টমাউথ,, এবং, এবং, এর মতো গণিতের নির্দেশাবলীর একই মৌলিক সেট অন্তর্ভুক্ত ছিল, পাশাপাশি সূচকগুলির জন্য আপ-অ্যারো এবং দুই-অ্যাস্টেরিস্ক ফর্ম যোগ করা হয়েছিল। লজিক্যাল অপারেটরদের মধ্যে,,,, এবং-এর স্ট্যান্ডার্ড সেটের পাশাপাশি বিশেষ অক্ষর সংস্করণ,,, অন্তর্ভুক্ত ছিল। এটিতে ডার্টমাউথ থেকে গাণিতিক ফাংশনের স্ট্যান্ডার্ড সেট অন্তর্ভুক্ত ছিল, যোগ করা,,,,,, বেস-2 লগের জন্য, এবং বেস-10 এর জন্য। এটি ডিগ্রি এবং রেডিয়ানের মধ্যে রূপান্তর করতে এবং তিনটি পূর্ব-সংজ্ঞায়িত অভ্যন্তরীণ ধ্রুবক, এবং, যা প্রকৃত সংখ্যায় টাইপ করার পরিবর্তে ব্যবহার করা যেতে পারে। কল/360-এ স্ট্রিং ভেরিয়েবল অন্তর্ভুক্ত ছিল, যা সম্প্রতি একই ডলার-সাইন নোটেশন ব্যবহার করে ডার্টমাউথে চালু করা হয়েছে। এটি একক বা দ্বৈত উদ্ধৃতি সহ স্ট্রিং ধ্রুবকগুলি সীমাবদ্ধ করার ক্ষমতা যোগ করেছে, পাশাপাশি সেই ধরণের একটি একক অক্ষর অন্তর্ভুক্ত করার জন্য একটি স্ট্রিংয়ের মধ্যে উভয় অক্ষরের দুটি টাইপ করার ক্ষমতা যুক্ত করেছে। উদাহরণস্বরূপ, প্রতিনিধিত্ব করে। স্ট্রিংগুলি অভ্যন্তরীণভাবে 18-অক্ষরের দৈর্ঘ্যে বিভক্ত করা হয়েছিল এবং যে স্ট্রিংগুলি পুরো 18-অক্ষরের রেকর্ড ব্যবহার করে না সেগুলিকে ফাঁকা স্থান দিয়ে প্যাড করা হয়েছিল, যার অর্থ 18 টি স্থান হিসাবে ব্যাখ্যা করা হবে। অ্যারে এবং ম্যাট্রিক্স গণিত ডার্টমাউথের প্রাথমিক সংস্করণগুলির মতো, কল/360: বেসিক এক এবং দ্বিমাত্রিক অ্যারেগুলিকে সমর্থন করে, যার নিম্ন সূচক সর্বদা 1 হয়। এইভাবে ব্যবহার করে সংজ্ঞায়িত একটি অ্যারেতে তিনটি মান থাকে, এ (1) থেকে এ (3)। কল/360 এছাড়াও স্ট্রিং অ্যারে সংজ্ঞায়িত করার ক্ষমতা যোগ করেছে, প্রতিটি এন্ট্রি একটি একক 18-অক্ষরের স্ট্রিং সহ। ডার্টমাউথের বিপরীতে, এটি মনে হয় না যে ভেরিয়েবলগুলি সর্বদা ডিআইএম ছিল; ডার্টমাউথে কেউ এ মাত্রা ছাড়াই উল্লেখ করতে পারে, এই ক্ষেত্রে এটির একটি ডিফল্ট আচরণ ছিল। ম্যানুয়ালটি স্পষ্টভাবে বলে না যে কল/360 এটি করে না, তবে এটি স্টেট ভেরিয়েবলগুলি মাত্রা ছাড়াই ম্যাট্রিক্স ক্রিয়াকলাপে ব্যবহার করা যাবে না। একটি প্রোগ্রামে সর্বাধিক 29টি সংখ্যাসূচক অ্যারে অনুমোদিত ছিল, সমস্ত অ্যারে জুড়ে উপাদানগুলির মোট যোগফল 7167 এর বেশি ছিল না। কল/360: বেসিক-এ ডার্টমাউথের বেশিরভাগ ম্যাট্রিক্স কমান্ড অন্তর্ভুক্ত ছিল, যার মধ্যে একটি একক অপারেশন হিসাবে ম্যাট্রিক্সে মৌলিক গণিত সম্পাদন করার ক্ষমতা অন্তর্ভুক্ত ছিল, যেমন যেখানে এ একটি অ্যারে যেখানে এর সমস্ত উপাদান 10 দ্বারা গুণিত হবে। এর মধ্যে ফাংশন, এবং অন্তর্ভুক্ত ছিল। ডেটা একটি ম্যাট্রিক্সে সহ এবং আউটপুট সহ লোড করা যেতে পারে। এই মূল কমান্ডগুলিতে তারা এবং যোগ করেছে, যা একটি ম্যাট্রিক্সের সমস্ত উপাদানগুলি একটি ফাইলে বা থেকে পড়তে বা লিখতে ব্যবহৃত হত। ফাইল কল/360: বেসিক-এর প্রধান সংযোজন ছিল একটি ব্যবহারযোগ্য ফাইল পরিচালনা ব্যবস্থা। এটি দিয়ে শুরু হয়েছিল যা একটি ফাইল খুলেছিল এবং এটিকে প্রদত্ত ফাইল নম্বরে বরাদ্দ করেছিল, এই ক্ষেত্রে 10, যা একটি অভিব্যক্তি হতে পারে। ফাইল থেকে পড়া বিবৃতির মতো একই সাধারণ পদ্ধতিতে সম্পন্ন করা হয়েছিল। লেখালেখি অন্যথায় একইভাবে পরিচালিত হত। ফাইল পয়েন্টারটি এক বা একাধিক ফাইল নম্বর সহ ফাইলের শুরুতে ফিরিয়ে আনা যেতে পারে। একটি ফাইলের মধ্যে একটি অবস্থান নির্দিষ্ট করার কোনও উপায় ছিল না। এক বা একাধিক ফাইল নম্বরের অনুরূপ তালিকা দিয়ে ফাইল হ্যান্ডলগুলি মুক্ত করা হয়। উদাহরণ নিম্নলিখিত প্রোগ্রামটি ফাইল হ্যান্ডেল 10 হিসাবে ইনপুটের জন্য ফাইলটি খোলে এবং তারপরে একটি লুপে একটি পণ্যের নাম এবং চারটি বিক্রয় মূল্য সম্বলিত তথ্যের লাইন পড়ে। লক্ষ্য করুন যে লুপটি শেষ করা হয়নি, পরিবর্তে, এই প্রোগ্রামটি শেষ হয়ে যায় যখন এটি ডেটা শেষ করে এবং একটি ত্রুটি সৃষ্টি করে। সেই সময়ে লাইন 70-এ কীভাবে নিয়ন্ত্রণ পাঠানো হয় তা ম্যানুয়ালে ব্যাখ্যা করা হয়নি। স্ক্রিনের আউটপুটটি 50 নম্বর লাইনের চিত্র ব্যবহার করে বিন্যাস করা হয়। তথ্যসূত্র উদ্ধৃতি গ্রন্থপঞ্জি আইবিএম সফ্টওয়্যার বেসিক প্রোগ্রামিং ভাষা