প্যারাডাইম | মাল্টি প্যারাডিজম প্রোগ্রামিং ভাষা, ইম্পারেটিভ প্রোগ্রামিং, প্রসিডিউরাল প্রোগ্রামিং, স্ট্রাকচারড প্রোগ্রামিং। |
---|---|
নকশাকার | লিও গিউর্টস, ল্যাম্বার্ট মার্টিন্স এবং স্টিভ পেম্বারটন। |
বিকাশকারী | সেন্ট্রাম উইসকুন্ড এন্ড ইনফরমেটিকা (সিডব্লিউআই)। |
স্থিতিশীল সংস্করণ | ১.০৫.০২
|
টাইপিং পদ্ধতি | স্ট্রং টাইপড প্রোগ্রামিং ভাষা, টাইপ পলিমরফিজম। |
ওয়েবসাইট | homepages |
যার দ্বারা প্রভাবিত | |
এসইটিএল (SETL) এবং এলগল ৬৮(ALGOL 68) [১] | |
যাকে প্রভাবিত করেছে | |
পাইথন। |
এবিসি (ইংরেজি: ABC) একটি জেনারেল পারপাস প্রোগ্রামিং ভাষা। নেদারল্যান্ডস্থ সিডব্লিউআই (CWI) এর তিন প্রোগ্রামিং ভাষা বিশেষজ্ঞ, লিও গিউর্টস, ল্যাম্বার্ট মার্টিন্স এবং স্টিভ পেম্বারটন, এই ভাষাটির উন্নয়ন করেন। প্রোগ্রামিং ভাষার সাথে সাথে প্রোগ্রামারদের জন্য একটি এবিসি আইডিই বা ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্টেরও উন্নয়ন করা হয় তখন। এবিসি প্রোগ্রামিং ভাষাটিকে বেসিক (BASIC), প্যাস্ক্যাল (Pascal) ও এডব্লিউকে (AWK)-এর বিকল্প হিসেবে ব্যবহার করার জন্য উন্নয়ন করা হয়েছিল। এবিসি একটি হাই লেভেল প্রোগ্রামিং ভাষা। এই ভাষাটি সিস্টেমস প্রোগ্রামিংয়ের জন্য নয়, মূলত: শিক্ষাদান বা প্রটোটাইপিংয়ের জন্য উন্নয়ন করা হয়েছিল।
এবিসি প্রোগ্রামিং ভাষাটির ৫টি মৌলিক ডাটা টাইপ রয়েছে। পাইথন, পিএইচপি ইত্যাদি হাই লেভেল প্রোগ্রামিং ভাষার মত এবিসিতেও ভেরিয়েবল বা চলক ঘোষণা করার প্রয়োজন হয় না। টপ-ডাউন প্রোগ্রামিং পদ্ধতির প্রতি পূর্ণ সমর্থন পাওয়া যায় এবিসিতে। এই প্রোগ্রামিং ভাষায় আরবিট্রারি প্রিসিশন এরিথমেটিক, অসীম আকৃতির লিস্ট ও স্ট্রিং ইত্যাদি সুবিধাদি ছাড়াও নবীন প্রোগ্রামারদের জন্য অনেক সহজবোধ্য সুবিধা পাওয়ায় যায়। এবিসি প্রোগ্রামিং ভাষার উন্নয়নকারীরা দাবী করেন কোন বিশেষ কাজের জন্য এই প্রোগ্রামিং ভাষায় লিখিত প্রোগ্রাম একই কাজের জন্য লিখিত প্যাস্কেল বা সি প্রোগ্রামের চাইতেও অনেক সংক্ষিপ্ত আকারের হয়ে থাকে। তারা আরও দাবী করেন; প্রোগ্রামিংয়ে পূর্ব জ্ঞান সম্পন্ন যে কারো পক্ষে মাত্র ১ ঘণ্টায় এবিসি প্রোগ্রামিং ভাষাটি শেখা সম্ভব। এবিসিতে লিখিত প্রোগ্রাম সি বা প্যাস্কেলে লিখিত প্রোগ্রামের চাইতেও অনেক বেশি পঠনযোগ্য।
এবিসি মূলত একটি মনোলিথিক প্রোগ্রামিং ভাষা। এ জাতীয় ভাষা মডিউলার প্রোগ্রামিং ভাষার বিপরীত। মডিউলার প্রোগ্রামিং পদ্ধতিতে সাধারণত একটি বৃহৎ প্রোগ্রামকে ছোট ছোট মডিউলে বিভক্ত করা যায় ও পরবর্তীকালে সেই সব মডিউলগুলোকে একত্রে সন্নিবেশিত করে সম্পূর্ণ প্রোগ্রাম প্রস্তুত করা যায়। অপর দিকে মনোলিথিক ভাষায় প্রোগ্রামকে এরকম ছোট ছোট অংশে বিভক্ত করে কাজ করা সম্ভব নয়। ফলে ছোট আকৃতির প্রোগ্রামের জন্য মনোলিথিক ভাষাগুলো উপযোগী হলেও বৃহৎ ও বহুমুখী প্রোগ্রাম/সফটওয়্যার তৈরিতে এ জাতীয় ভাষাগুলো সম্পূর্ণ ব্যর্থ বা অকার্যকর। এবিসি প্রোগ্রামিং ভাষাটির আরেকটি বড় দুর্বলতা হল এই ভাষাটিতে গ্রাফিক্যাল ইউজার ইন্টারফেস বা গুই তৈরি করার কোন সুবিধা নেই। এবিসি সরাসরি ফাইল সিস্টেম ও অপারেটিং সিস্টেম ব্যবহার করতে পারে না।
পাইথন প্রোগ্রামিং ভাষার জনক গুইডো ভ্যান রস্যিউম আশির দশকে এবিসি প্রোগ্রামিং ভাষায় কাজ করেন। এর ফলাফল স্বরূপ পরবর্তী সময়ে তার উন্নয়নকৃত পাইথন প্রোগ্রামিং ভাষাটির উপর এবিসির প্রচুর প্রভাব দেখতে পাওয়া যায়।[২][৩] বিশেষ করে পাইথন ও এবিসির সিনট্যাক্সের মধ্যে প্রভূত মিল খুঁজে পাওয়া যায়।
এবিসি উন্নয়নকারীরা এই প্রোগ্রামিং ভাষার সাথে সাথে এর প্রোগ্রামারদের সুবিধার্থে একটি ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট বা আইডিইর উন্নয়ন করেছেন যা সিনট্যাক্স-ডাইরেক্টেড সম্পাদনা, পরামর্শ, একধিক ওয়ার্কস্পেস ব্যবহারের সুবিধা, স্ট্যাটিক ভেরিয়েবল সুবিধা ইত্যাদি প্রদান করে থাকে। বর্তমানে এবিসি ইন্টারপ্রেটার/কম্পাইলার এর ১.০৫.০২ সংস্করণ প্রচলিত রয়েছে। এবিসি ভাষাটি ইউনিক্স (UNIX), ডস (DOS), আটারি এবং অ্যাপল ম্যাকিন্টোশ অপারেটিং সিস্টেম চালিত কম্পিউটারে ব্যবহার করা যায়।
নিচে এবিসি প্রোগ্রামের একটি উদাহরণ দেয়া হল:
PUT {} IN collection FOR line IN document: FOR word IN split line: IF word not.in collection: INSERT word IN collection RETURN collection
|1=
উপেক্ষা করা হয়েছে (সাহায্য); অজানা প্যারামিটার |month=
উপেক্ষা করা হয়েছে (সাহায্য)