ক্যারেক্টার সেট, টোকেন, কমেন্টস

আমরা পূর্বের পর্বে জেনেছি সি প্রোগ্রামিং এর বিভিন্ন লাইব্রেরি ফাংশন ও কিভাবে IDE সেট-আপ করতে হয়। এই পর্বে আমরা সি প্রোগ্রামিং এর ক্যারেক্টার সেট, টোকেন, কমেন্ট সহ আরো অনেক কিছু জানবো।

ক্যারেক্টার সেট

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

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

সি প্রোগ্রামিং এর নিজস্ব অনেক নিয়মকানুন রয়েছে আর এই নিয়মকানুনগুলোকে যে চিহ্ন বা বর্ণমালা ব্যবহার করে মানা হয়, সেগুলোকেই আমরা সি প্রোগ্রামিং এর ক্যারেক্টার সেট বলি।

সি প্রোগ্রামিং এর মেইন ক্যারেক্টার সেটকে মূলত তিন ভাগে ভাগ করা হয়

  • Alphabets / Letters

  • Digits / Numbers

  • Special Symbols / Special characters

Alphabets / Letters

ইংরেজী ভাষায় ব্যবহৃত সমস্ত অক্ষর সমূহ Letters এর অন্তর্ভুক্ত। অর্থাৎ ছোট হাতের (Lowercase Letters) a থেকে z পর্যন্ত আবার বড় হাতের (Uppercase Letters) A থেকে Z পর্যন্ত যেকোনো অক্ষরকেই Alphabets / Letters (আলফাবেট / লেটার) বলে।

Digits / Numbers

ইংরেজী ভাষায় ব্যবহৃত 0 থেকে 9 অর্থাৎ দশটি (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) ডিজিটই হচ্ছে নাম্বার।

Special Symbols / Special characters

সি প্রোগ্রামিং এর অনেক গুরুত্বপূর্ন জিনিস হচ্ছে Special Symbols বা characters। সি প্রোগ্রামিং এ অনেকগুলা Special characters রয়েছে, যার লিস্ট নিচে দেওয়া হল-

Symbol

Meaning

Symbol

Meaning

+

Addition (যোগ)

-

Subtraction (বিয়োগ)

*

Multiplication (গুণ)

/

Division (ভাগ)

&

Ampersand (অ্যাম্পারসেন্ড)

%

Percent sign (পারসেন্ট)

=

Equal to (সমান)

#

Hash (হ্যাশ)

_

Underscore (আন্ডারস্কোর)

?

Question mark (প্রশ্নবোধক)

^

Caret (ক্যারেট)

!

Exclamation (এক্সক্লামেশন)

'

Single quotation (এফস্টোরফ বা সিঙ্গেল কোটেশন)

"

Double quotation (ডাবল কোটেশন)

~

Tilde (টিলডি)

|

Vertical bar (ভারটিক্যাল বার)

<

Less than (ক্ষুদ্রতর)

>

Greater than (বৃহত্তর)

(

Left parenthesis (লেফট প্যারেনথেসিস)

)

Right parenthesis (রাইট প্যারেনথেসিস)

{

Left curly brace (লেফট কারলি ব্রেছ)

}

Right curly brace (রাইট কারলি ব্রেছ)

[

Left bracket (লেফট ব্রাকেট)

]

Right bracket (রাইট ব্রাকেট)

*

Asterisk (এস্টেরিস্ক)

@

At (এট)

:

Colon (কোলন)

;

Semicolon (সেমিকোলন)

,

Comma (কমা)

.

Dot (ডট)

/

Forward slash (ফরওয়ার্ড স্লাশ)

\

Backward slash (ব্যাকওয়ার্ড স্লাশ)

Escape Sequences (এস্কেপ সিকুয়েন্স)

আমরা যখন সি তে কোড করি, তখন আমাদের কোড যাতে একটা, আরেকটার সাথে মিশে না যায় বা ব্যবহারকারী যাতে সহজেই কোডগুলো বুঝতে পারে সেই জন্য আমরা এস্কেপ সিকুয়েন্স ব্যবহার করি। আমাদের কোডে প্রায় সময় স্পেস দিতে হয়, যাতে প্রোগ্রামের একটা এলিমেন্টের সাথে আরেকটা এলিমেন্ট মিশে না যায়। নিচে সি তে ব্যবহৃত কিছু এস্কেপ সিকুয়েন্স তুলে ধরা হলো-

Symbol

Meaning

\b

Blank space (ব্লাঙ্ক স্পেস)

\t

Horizontal tab (হরাইজন্টাল ট্যাব)

\v

Vertical tab (ভারটিক্যাল ট্যাব)

\r

Carriage return (ক্যারিজ রিটার্ন)

\f

Form feed (ফরম ফিড)

\n

New line (নতুন লাইন)

\a

Beep Alert (বিপ এলার্ট)

\\

Backslash (ব্যাক স্লাশ)

\"

Double quotation mark (ডাবল কোটেশন)

\?

Question mark (কোয়েশ্চন মার্ক)

সি প্রোগ্রামিং এর এস্কেপ সিকুয়েন্স নিয়ে বিস্তারিত জানতে উইকির এই পেইজটি দেখতে পারেন।

Tokens (টোকেনস)

প্রতিটি সি প্রোগ্রাম অনেকগুলো ইন্সট্রাকশনের সমন্বয়ে গঠিত। এবং প্রতিটি ইন্সট্রাকশন কিছু পৃথক ইউনিটের সংকলন। সি প্রোগ্রামের প্রতিটি ক্ষুদ্রতম পৃথক ইউনিটকে টোকেন বলা হয়। অর্থাৎ অনেকগুলো টোকেনের সমন্বয়ে সি প্রোগ্রাম গঠিত হয়। সি প্রোগ্রামে অনেক ধরনের টোকেন থাকতে পারে যেমন-

  • Keywords

  • Identifiers

  • Operators

  • Special Symbols

  • Constants

  • Strings

  • Data values

Comments (কমেন্টস)

আমরা যখন source code লিখি তখন আমাদের বুঝার স্বার্থে বা অন্য কারো বুঝার স্বার্থে যে সহজ নোট তৈরি করা হয় তাকেই comments বলে। অর্থাৎ কমেন্টস হচ্ছে সাহায্যকারী টেক্সট। ধরুন আপনি একটি প্রোগ্রাম লিখলেন, যার কোড আপনি সহজেই বুঝতে পারছেন কিন্তু অন্য কারো যিনি কোডিং জানেন না বা বুঝেন না তাকে সেই কোডটি সহজেই বুঝিয়ে দেওয়ার জন্য প্রোগ্রামাররা তাদের সোর্স কোডের সাথে এক ধরনের মেসেজ যোগ করেন, যাতে কোডের প্রতি লাইনের ব্যাখ্যা বা বিশ্লেষণ সম্পর্কিত তথ্য থাকে।

সি প্রোগ্রামিং এ দুই ধরনের কমেন্ট রয়েছে-

  • Single Line Comment

  • Multiple Line Comment

Single Line Comment

সিঙ্গেল লাইন কমেন্ট মূলত একটি লাইনে মেসেজ বা কমেন্ট দেওয়ার জন্য ব্যবহার করা হয়। এটি দুটি স্ল্যাশ // চিহ্ন দিয়ে শুরু হয়। স্ল্যাশ চিহ্নের পর আপনি যাই কিছু লিখেন না কেন, তা কমেন্ট আকারে থাকবে অর্থাৎ আপনার IDE এর কম্পাইলার এই লাইনটিকে ইগনোর করবে।

Syntax

// comment goes to here

Example

// This is Sajib from TechSajib.Com

নিচে Single Line Comment সহ একটি সি প্রোগ্রাম দিয়েছি এবং কেমন করে কমেন্ট লিখতে হয় তাও দেখিয়েছি।

#include <stdio.h>
int main()
{
// this line is for printing my website URL
printf("www.techsajib.com");
return 0;
}

এখন আপনি যদি এই কোডটি রান করেন, তাহলে কম্পাইলার কখনই // this line is for printing my website URL এই লিখাটি প্রিন্ট করবে না।

Multiple Line Comment

সি প্রোগ্রামিং সহ প্রায় সব ধরনের প্রোগ্রামিং এ অনেক সময় দুই বা ততোধিক কমেন্ট এর প্রয়োজন হয়। এই ক্ষেত্রে মাল্টিপল লাইন কমেন্ট ব্যবহার করা হয়। এটি স্ল্যাশ স্টার /* চিহ্ন দিয়ে শুরু হয় এবং শেষ হয় স্টার স্ল্যাশ */ চিহ্ন দিয়ে।

Syntax

/* comment goes here */

OR

/*
* comment goes here
*/

Example

/* Welcome to the C programming,
Welcome to TechSajib.Com Site */
/*
* Welcome to the C programming,
* Welcome to TechSajib.Com Site
*/

নিচে Multiple Line Comment সহ একটি সি প্রোগ্রাম দিয়েছি এবং কেমন করে কমেন্ট লিখতে হয় তাও দেখিয়েছি।

#include <stdio.h>
int main()
{
/*
* First step for Author Name
* Second step for Website Name
* third step for Language Name
*/
printf(" Name: MD Sazibur Rahman Sajib \n Web Name: www.techsajib.com\n Language Name: C Programming\n");
return 0;
}

এই প্রোগ্রামটি রান করলে /* */ এর ভিতরে যা লিখা হয়েছে তা কম্পাইলার ইগনোর করে শুধু মাত্র printf() ফাংশনের ভিতরে যা আছে তা প্রিন্ট করবে। আর printf() ফাংশনের ভিতরে মাঝে মাঝে \n ব্যবহার করা হয়েছে, যার মানে নতুন একটি ট্যাব নেওয়ার জন্য ইন্সট্রাকশন দেওয়া হয়েছে।

Tags: এস্কেপ সিকুয়েন্স, কমেন্টস, ক্যারেক্টার সেট, টোকেন