অ্যাডা প্রোগ্রামিং/কীওয়ার্ডস/aliased
বিবরণ
[সম্পাদনা]আপনার যদি C/C++ প্রোগ্রামিং নিয়ে ধারণা থেকে থাকে তাহলে আপনি সম্ভবত এতে অভ্যস্ত যে অ্যারে (array), স্ট্রাকট/রেকর্ড (struct/record) এবং অন্যান্য ভেরিয়েবলের প্রতিটি এলিমেন্ট বা উপাদানের একটি ঠিকানা (অ্যাড্রেস) আছে। প্রকৃতপক্ষে C/C++ প্রোগ্রামিংয়ে এমনটাই কাম্য। তবে অ্যাডা প্রোগ্রামিংয়ে এটি সত্য নয়।
অ্যাডা একটি স্ব-অপ্টিমাইজিং ভাষা - উদাহরণস্বরূপ অ্যাডাতে C ভাষার মতো কোনও রেজিস্টার (register) কীওয়ার্ড নেই। অ্যাডা কম্পাইলার স্বয়ংক্রিয়ভাবে স্টোরেজের জন্য একটি রেজিস্টার ব্যবহার করবে। ঘটনাক্রমে, বেশিরভাগ C/C++ কম্পাইলারই আজকাল রেজিস্টারকে উপেক্ষা করে এবং নিজেরাই রেজিস্টার নির্ধারণ করে, ঠিক যেমনটি করে থাকে অ্যাডা।
সুতরাং আপনি যদি কোনো ভেরিয়েবল থেকে অ্যাক্সেস (access) নিতে চান তবে আপনার কম্পাইলারকে বলতে হবে যে ভেরিয়েবলটি মেমরিতে থাকা দরকার এবং একটি রেজিস্টারের ভিতরে নাও থাকতে পারে। এই জন্য কীওয়ার্ড aliased রয়েছে। উপরন্তু এটি ভেরিয়েবলের উল্লেখকারী পয়েন্টারগুলোর অস্তিত্ব সম্পর্কে প্রোগ্রামের পাঠকের কাছে একটি ইঙ্গিত হিসাবে কাজ করে।
ভ্যারিয়েবল/চলকের জন্য
[সম্পাদনা]I : aliased Integer := 0;
টাইপ ঘোষণার জন্য
[সম্পাদনা]অ্যারের উপাদান বা এলিমেন্টের জন্য
[সম্পাদনা]একটি array-কে aliased হিসাবে ঘোষণা করা শুধুমাত্র নিশ্চিত করবে যে সামগ্রিকভাবে অ্যারেটির একটি ঠিকানা তথা অ্যাড্রেস রয়েছে। এটি অ্যারের পৃথক পৃথক উপাদান সম্পর্কে আলাদা করে কিছুই বলে না — যা এমনভাবে প্যাক করা যেতে পারে যাতে একাধিক উপাদানের একই ঠিকানা থাকে। আপনাকে প্রকৃত উপাদানগুলিকেও aliased হিসাবে ঘোষণা করতে হবে। আপনি টাইপ/array সম্পর্কে আরও পড়তে পারেন। এখানে একটি সংক্ষিপ্ত উদাহরণ তুলে ধরা হলো:
typeDay_Of_Monthisrange1 .. 31;typeDay_Has_Appointmentisarray(Day_Of_Month)ofaliasedBoolean;
রেকর্ডের উপাদান বা এলিমেন্টের জন্য
[সম্পাদনা]অ্যারের মতোই, একটি রেকর্ডকে aliased হিসাবে ঘোষণা করা কেবলমাত্র নিশ্চিত করবে যে পুরো রেকর্ডটির একটি ঠিকানা তথা অ্যাড্রেস রয়েছে। এটি রেকর্ডের পৃথক পৃথক উপাদান সম্পর্কে আলাদা করে কিছুই বলে না। পুনশ্চঃ আপনাকে আসল উপাদানগুলোকেও aliased হিসাবে ঘোষণা করতে হবে। আপনি টাইপ/record সম্পর্কে আরও পড়তে পারেন। এখানে একটি সংক্ষিপ্ত উদাহরণ তুলে ধরা হলো:
typeBasic_RecordisrecordA :aliasedInteger;endrecord;
আরও দেখুন
[সম্পাদনা]উইকিবই
[সম্পাদনা]অ্যাডা রেফারেন্স ম্যানুয়াল
[সম্পাদনা]- 2.9 সংরক্ষিত শব্দ (টীকাযুক্ত)
- পরিশিষ্ট P (তথ্যমূলক) সিনট্যাক্স সারাংশ (টীকাযুক্ত)
- 3.10 access টাইপ (টীকাযুক্ত)
অ্যাডা গুণমান ও শৈলী সহায়িকা
[সম্পাদনা]
| অ্যাডা কীওয়ার্ডস | ||||
|---|---|---|---|---|
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
|
|||
