Ada. Time-tested, safe and secure.

আপনার যদি C/C++ প্রোগ্রামিং নিয়ে ধারণা থেকে থাকে তাহলে আপনি সম্ভবত এতে অভ্যস্ত যে অ্যারে (array), স্ট্রাকট/রেকর্ড (struct/record) এবং অন্যান্য ভেরিয়েবলের প্রতিটি এলিমেন্ট বা উপাদানের একটি ঠিকানা (অ্যাড্রেস) আছে। প্রকৃতপক্ষে C/C++ প্রোগ্রামিংয়ে এমনটাই কাম্য। তবে অ্যাডা প্রোগ্রামিংয়ে এটি সত্য নয়।

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

সুতরাং আপনি যদি কোনো ভেরিয়েবল থেকে অ্যাক্সেস (access) নিতে চান তবে আপনার কম্পাইলারকে বলতে হবে যে ভেরিয়েবলটি মেমরিতে থাকা দরকার এবং একটি রেজিস্টারের ভিতরে নাও থাকতে পারে। এই জন্য কীওয়ার্ড aliased রয়েছে। উপরন্তু এটি ভেরিয়েবলের উল্লেখকারী পয়েন্টারগুলোর অস্তিত্ব সম্পর্কে প্রোগ্রামের পাঠকের কাছে একটি ইঙ্গিত হিসাবে কাজ করে।

ভ্যারিয়েবল/চলকের জন্য

সম্পাদনা
I : aliased Integer := 0;

টাইপ ঘোষণার জন্য

সম্পাদনা

অ্যারের উপাদান বা এলিমেন্টের জন্য

সম্পাদনা

একটি array-কে aliased হিসাবে ঘোষণা করা শুধুমাত্র নিশ্চিত করবে যে সামগ্রিকভাবে অ্যারেটির একটি ঠিকানা তথা অ্যাড্রেস রয়েছে। এটি অ্যারের পৃথক পৃথক উপাদান সম্পর্কে আলাদা করে কিছুই বলে না — যা এমনভাবে প্যাক করা যেতে পারে যাতে একাধিক উপাদানের একই ঠিকানা থাকে। আপনাকে প্রকৃত উপাদানগুলিকেও aliased হিসাবে ঘোষণা করতে হবে। আপনি টাইপ/array সম্পর্কে আরও পড়তে পারেন। এখানে একটি সংক্ষিপ্ত উদাহরণ তুলে ধরা হলো:

 type Day_Of_Month is range 1 .. 31;
 type Day_Has_Appointment is array (Day_Of_Month) of aliased Boolean;

রেকর্ডের উপাদান বা এলিমেন্টের জন্য

সম্পাদনা

অ্যারের মতোই, একটি রেকর্ডকে aliased হিসাবে ঘোষণা করা কেবলমাত্র নিশ্চিত করবে যে পুরো রেকর্ডটির একটি ঠিকানা তথা অ্যাড্রেস রয়েছে। এটি রেকর্ডের পৃথক পৃথক উপাদান সম্পর্কে আলাদা করে কিছুই বলে না। পুনশ্চঃ আপনাকে আসল উপাদানগুলোকেও aliased হিসাবে ঘোষণা করতে হবে। আপনি টাইপ/record সম্পর্কে আরও পড়তে পারেন। এখানে একটি সংক্ষিপ্ত উদাহরণ তুলে ধরা হলো:

type Basic_Record is
   record
      A : aliased Integer;
   end record;

আরও দেখুন

সম্পাদনা

উইকিবই

সম্পাদনা

অ্যাডা রেফারেন্স ম্যানুয়াল

সম্পাদনা

অ্যাডা গুণমান ও শৈলী সহায়িকা

সম্পাদনা


অ্যাডা কীওয়ার্ডস
abort else new return
abs elsif not reverse
abstract (অ্যাডা ৯৫) end null
accept entry select
access exception of separate
aliased (অ্যাডা ৯৫) exit or some (অ্যাডা ২০১২)
all others subtype
and for out synchronized (অ্যাডা ২০০৫)
array function overriding (অ্যাডা ২০০৫)
at tagged (অ্যাডা ৯৫)
generic package task
begin goto parallel (অ্যাডা ২০২২) terminate
body pragma then
if private type
case in procedure
constant interface (অ্যাডা ২০০৫) protected (অ্যাডা ৯৫) until (অ্যাডা ৯৫)
is use
declare raise
delay limited range when
delta loop record while
digits rem with
do mod renames
requeue (অ্যাডা ৯৫) xor