Web Developing Channel - WDC

Web Developing Channel - WDC

Share

10/07/2023

How variables store data in memory
(5mins)

Variable တွေဆိုတာ programmer တိုင်းနဲ့ ကင်းမှာ မဟုတ်ပါဘူး။ ဒါမဲ့ အများစုက variable ဆိုတာ‌နဲ့ declaration, initialization, invocation လောက်နဲ့ပဲ သိကြတာ များပါတယ်။ ဒါကြောင့်မို့ ဒီတစ်ခေါက်မှာ variable တစ်လုံးဟာ နောက်ကွယ်မှာ ဘယ်လို အလုပ်လုပ်လဲဆိုတာကို ပြောပြသွားမှာပါ။

ကျွန်တော်တို့ value တစ်ခုကို store လုပ်ချင်တဲ့ အခါမျိုးမှာပဲ ဖြစ်ဖြစ်၊ အဲ့ value ကို ထပ်ခါ ထပ်ခါ သုံးဖို့ လိုအပ်လာတဲ့အခါပဲ ဖြစ်ဖြစ် variable ကို declaration/initialization တွေနဲ့ အသုံးပြုကြပါတယ်။ အဲ့လို အသုံးပြုတဲ့အခါမှာ ဒီ variable တွေထဲမှာ assign လုပ်ထားတဲ့ value က memory ထဲမှာ သွားသိမ်းရပါတယ်။ ပြီးတဲ့အခါ အဲ့ variable ကို ကျွန်တော်တို့ အသုံးပြုတဲ့အခါကျ value ကို memory ထဲကနပြီး သွားပြန်ဆွဲထုတ်ရပါတယ်။ ဒါက အကျဉ်းချုံးပါ။

အကျယ်က ကျွန်တော်တို့ variable တစ်လုံး initialize လိုက်ပြီဆိုရင်။ ဥပမာ -

char word_a = "A";

ဆိုကြပါစို့။ ဒီလိုလုပ်လိုက်ပြီဆိုရင် word ဆိုတဲ့ variable အတွက် memory address တစ်ခုကို ကျွန်တာ်တို့ရဲ့ RAM (Random Access Memory) ထဲမှာ သွားယူလိုက်ပါတယ်။ ဆိုလိုချင်တာက နေရာ တစ်ခု သွားယူလိုက်တာပါ။

ဥပမာ လူတစ်ယောက် နေထိုင်ဖို့အတွက် နေရာလွတ်တစ်ခုမှာ အိမ်ဆောက်လိုက်တဲ့ သဘောပါပဲ။ အိမ်တစ်လုံး ဆောက်လိုက်တဲ့အခါ အဲ့အိမ်မှာ လူနေလို့ ရတဲ့အပြင် အဲ့အိမ်ရဲ့ address တစ်ခုပါ ရလာတာမျိုးပါ။ ဆိုတော့ အဲ့လူကို ခေါ်ချင်ရင် အဲ့လူ နေတဲ့ နေရပ်လိပ်စာကို ထောက်လိုက်တာနဲ့ ခေါ်လို့ရသွားတာမျိုးပါ။

ဒီမှာလဲ ဒီသဘောပါပဲ။ data တစ်ခုကို ကျွန်တော်တို့ ပြန်သုံးချင်တယ်။ ပြန်သုံးဖို့အတွက် ကျွန်တော်တို့ store အရင်လုပ်ဖို့လိုတယ်။ အဲ့လို store လုပ်ဖို့အတွက် ကျွန်တော်တို့ memory (RAM) မှာ သွားသိမ်းရတယ်။ အဲ့လိုသွားသိမ်းတဲ့အခါမှာ အဲ့ဒီ့ data အတွက် memory address တစ်ခု ပြန်ရပါတယ်။ အဲ့ memory address ကို decimal value နဲ့ represented လုပ်ပါတယ်။ တကယ်တော့ သူလဲ binary တွေပါပဲ။ ကျွန်တော်တို့ variable invocation လုပ်တဲ့အခါမှာ memory address ကိုသုံးပြီး memory ထဲကနေ data ကို သွားပြန်ဆွဲထုတ်တာပါ။ ဘယ်ပေါ်ဆွဲထုတ်တာလဲဆိုတာ့ CPU ပေါ်ကို ပေါ့။ ဒီအကြောင်းကို နောက်မှ ကျွန်‌‌တော် သီးသန့် ရေးပါအုံးမယ်။

ဆိုတော့ ဒီအထိ‌တော့ ရပြီ။ variable တစ်လုံး initialization လုပ်လိုက်တာနဲ့ အဲ့ variable ရဲ့ initial value ကို memory address နဲ့ RAM ထဲသွားသိမ်းတယ်။ သိမ်းတဲ့ နေရာမှာလဲ size limit ရှိတယ်။ အဲ့တာကျ သူ့ရှေ့က data type ကို ပြန်ကြည့်ရတယ်။ ကျွန်တော်တို့ 8GB RAM တစ်ချောင်း စိုက်ထားတယ် ဆိုပါစို့။ byte အနေနဲ့ဆို 8 x 10⁹ ရှိတယ်။ အဲ့တော့ ခုနက အပေါ်မှာ ကြေညာထားတဲ့ variable "word_a" ရဲ့ data type က char။ char ရဲ့ memory size limit က 1byte (8bits) ပဲရှိပါတယ်။ အဲ့တော့ ခုနက variable အတွက်ဆို 8GB RAM ထဲက‌နေ သူဟာ memory size 1byte ပဲသွားယူ ပါလိမ့်မယ်။ အဲ့မှာမှ နောက်ထပ် char data type နဲ့ variable တစ်လုံး initialize ထပ်လုပ်ရင် နောက်ထပ် 1byte ထပ်ယူမယ်။

အဲ့တော့ ယူပြီး ဘယ်လိုသိမ်းတာလဲဆိုတဲ့ မေးခွန်းရှိပါတယ်။ ခုနက char data type variable word_a ရဲ့ initial value က "A"။ အဲ့တော့ သူ့ကို ASCII-8 အရ binary ပြောင်းရင် 01000001 ရပါတယ်။ အဲ့တော့ memory address က 1000 ထားပါတော့။ အဲ့ကျ language မှာတော့

char word_a = "A"

ဆိုပြီး ဖြစ်နေပေမဲ့ memory ထဲမှာတာ့

1000 = 01000001

ဆိုတဲ့ ပုံစံမျိုးနဲ့ သွားသိမ်းပါတယ်။ အဲ့တော့ နောက်ထပ် char data type variable တစ်လုံး initialize လုပ်တဲ့အခါ သူ့ရဲ့ memory address က 1 တိုးသွားပါတယ်။ ဘာလို့ဆို ရှေ့က char ရဲ့ memory size က 1byte ရှိတာကြောင့်ပါ။

Language
char word_a = "A";
char word_b = "B";

Memory
1000

01/01/2023

Announcement📢
==============
အားလုံးပဲ မင်္ဂလာပါ။ ပြီးတော့ WDC Audience အားလုံးပဲ Happy New Year ပါလို့ နှုတ်ခွန်းဆက်လိုက်ပါတယ်။

WDC ရဲ့ activity တွေ freeze ဖြစ်ခဲ့တာ တော်တော်ကြာပါတယ်။ freeze ဖြစ်ခဲ့တာလဲ ကျွန်တော် ဒီ page နဲ့ ဒီ page ရဲ့ follower တွေကို ဂရုမစိုက်လို့ မဟုတ်ပါဘူး။ အမြဲတမ်းစိတ်ထဲရှိပါတယ်။ ဒါပေမဲ့ ပြဿနာက ကျွန်တော်က ဘယ်လိုမှ မအားလပ်တာပါ။ အချိန်တော်တော်များများက Schedule ပြည့်နေတာ များပါတယ်။ အဲ့လို schedule တွေ ပြည့်နေလို့လဲ social network ကနေ break ယူခဲ့တဲ့ အချိန်တွေရှိသလို လက်ရှိလဲ break ယူနေတာပါ။ WDC ရဲ့ admin ကျွန်တော် ဘယ်သူ ဆိုတာ မသိ‌သေးတဲ့သူတွေ ရှိသလို သိတဲ့သူတွေ ရှိတဲ့ အတွက်လဲ ကျွန်တော်၀မ်းသာပါတယ်။ WDC ရဲ့ activity တွေ freeze ဖြစ်နေတဲ့အချိန်မှာ page မှာရှိတဲ့ content အဟောင်းလေးတွေကို ပြန်ဖတ်ပြီး အသစ်တွေကို စောင့်နေပေးပါလို့လဲ မေတ္တာ ရပ်ခံချင်ပါတယ်။ ဒီ post က ပြီးခဲ့တဲ့နှစ်မှာ ကျွန်တော်လုပ်ခဲ့တဲ့ WDC အတွက် plan တွေနဲ့ လာမဲ့နှစ်မှာ လုပ်ဖြစ်မဲ့ plan အကြောင်းကို ပြောပြသွားမှာပါ။

2022
ပြီးခဲ့တဲ့ နှစ်မှာ ကျွန်တော့် page activities တွေကို ပုံစံတစ်မျိုးနဲ့ ပြင်ဆင်ပြီး ကျွန်တော် ဒီ WDC page ကို ပြန် run ခဲ့ပါတယ်။ Free Service တွေ Training Course တွေ စီစဉ်ပြီး page activity ကို version မြှင့်ခဲ့ပါတယ်။ အဲ့လို မြှင့်ခဲ့တဲ့ အတွက်ကြောင့်လဲ မူလ version 1 လောက်က follower 1k မပြည့်တဲ့ နေရာကနေ like & follower 6k - 7k အထိ တိုးတက်လာခဲ့ပါတယ်။ ကျွန်တော့် page ကို like & follow လုပ်ပေးကြတဲ့ သူတစ်ယောက်ချင်းစီတိုင်းကိုလဲ ကျေးဇူးတင်ပါတယ်လို့ ပြောချင်ပါတယ်။

2023
လာမဲ့ နှစ်မှာ ကျွန်တော်လုပ်မဲ့ activity တွေကို ပြောပြချင်ပါတယ်။ blog content တွေ အချိန်အားရင် အားသလို ဆက်ရေးသွားမှာပါ။ ပြီးတော့ JavaScript + JQuery Free Video Course ကို YouTube မှာ တင်ဖို့ ရှိပါတယ်။ အဲ့အတွက်လဲ Course Outline တွေ ပြင်ဆင်နေပါတယ်။

ပြီးတော့ ကြေညာစရာ တစ်ခုရှိပါတယ်။ ကျွန်တော့်ရဲ့ Service တွေထဲက တစ်ခုဖြစ်တဲ့ Training Course ဟာ (Batch - 2) ဟာ ဒီနေ့ ‌ညနေ ၄ နာရီမှာ အားလုံး ပြီးသွားပါတယ်။ Batch - 1 နဲ့ Batch - 2 ဖွင့်ခဲ့သလို တစ် batch စီတိုင်းအတွက် လူဦးရေ ၄/၅ ယောက်သာ လက်ခံပြီး Training ပေးခဲ့ပါတယ်။ အဲ့အတွက် batch အသစ် ဖွင့်တိုင်း လူပြည့်သွားလို့ နောက် batch အတွက် ကြိုတင်စာရင်းပေးရသူတွေလဲ ရှိခဲ့ပါတယ်။ အဲ့အတွက်လဲ ကျေးဇူးအများကြီး တင်ပါတယ်။

လက်ရှိ Training Course (Batch - 2) ပြီးသွားပြီ ဖြစ်တဲ့အတွက် လာမဲ့ Batch - 3 ကို စောင့်မျှော် နေတဲ့ သူတွေ ရှိပါတယ်။ ပုံမှန်ဆိုရင် Dec လလယ်လောက်မှာ batch-2 ပြီးရမှာ ဖြစ်ပေမဲ့ အကြောင်းကြောင်းကြောင့် Dec လကုန်မှ အပြီးသတ်နိုင်ခဲ့ပါတယ်။ ကြေညာစရာက လာမဲ့ Training Course (Batch - 3) ကို ကျွန်တော် postpone လုပ်မှာပါ။ ဘယ်တော့လောက်အထိ လုပ်မလဲဆိုတာ ကျွန်တော်လဲ မသေချာသေးပါဘူး။ တကယ်လို့ပြန်ဖွင့်ဖြစ်ခဲ့တယ်ဆိုရင် ကျွန်တော် ဒီ Page ကနေပဲ ကြေညာပေးသွားမှာပါ။ Postpone လုပ်ရတဲ့ အကြောင်းရင်းက Schedule ပြည့်နေတဲ့ ကျွန်တော့်အတွက် အနားယူဖို့ လိုအပ်လို့ပါ။ ပြီးတော့ ကျွန်တော့်အတွက် အာရုံစိုက်စရာ အရေးကြီး ကိစ္စတွေ ရှိလာလို့ပါ။ အဲ့အတွက် Batch- 3 အတွက် ကြိုတင် အပ်နှံထားသူများကို Batch - 3 မဖွင့်ဖြစ်သေးပဲ အချိန်အကန့်အသက်မရှိ Postpone လုပ်ထားကြောင်း ဒီနေရာကနေပဲ တောင်းပန်ချင်တာပါ။ Batch - 3 ပြန်ဖွင့်တော့မယ်ဆိုရင် ကျွန်တော် ဒီ page ကနေပဲ တစ်လကြိုတင်ကြေညာပါ့မယ်။ Training Course ရပ်နားလိုက်ရတဲ့အတွက် ဒီ post ကနေတဆင့် အားလုံးကို တောင်းပန်ပါတယ်။

Blog Content တွေနဲ့ Free Tutorial တွေကတော့ ဆက်လာမှာ ဖြစ်တဲ့အတွက် Page ကို like & follow ပြုလုပ်ထားနိုင်ပါတယ် ဆိုတဲ့အကြောင်း ဒီနေရာကနေ အသိပေးချင်ပါတယ်။

အားလုံးပဲ နှစ်သစ်မှာ ပျော်ရွှင်ကြပါစေ။ 🙏♥️


Photo Credit

18/08/2022

Data Structure Link Collection
=========================
ရေးပြီးသွားပြီ ဖြစ်တဲ့ Data Structure Blog Series လေးပါ။ ဖတ်ရလွယ်အောင် Link Collection လေး လုပ်ပေးထားတာပါ။

ပထမဦးဆုံးပြောချင်တာကတော့ ဒီ Blog Series ဟာ Data Structure အကြောင်းကို Perfect ဖြစ်အောင် ရှင်းပြထားတာ မဟုတ်ဘူးဆိုတာ အရင် အသိပေးပါ‌ရစေ။ ဒီ blog series ဟာ Data Structure ရဲ့ အပေါ်ယံ အနှစ်သာရလောက်ကို Beginner တွေ ဖတ်ရ လေ့လာရ လွယ်ကူအောင် ရေးပေးထားတာပါ။ ဒါကြောင့်မို့ Basic Data Structure Blog Series လို့ ခေါ်လဲ မမှားပါဘူး။

ဒီ Blog Series ကိုဖတ်လို့ Data Structure ကို သဘောလောက် နားလည်ပြီဆိုရုံနဲ့ မလုံလောက်သေးပါဘူး။ Deep Learning လုပ်ရမှာတွေ အများကြီးရှိသေးသလို Programming Language တွေကို Data Structure နဲ့ ဘယ်လို approach လုပ်ပြီး ဘယ်လို applied လုပ်ရမယ်ဆိုတဲ့ အပိုင်းကိုလဲ ကျွန်တော် ထိမ်ချန်ထားပါသေးတယ်။ အချိန်ရခဲ့ရင်လဲ အဲဒီ့အပိုင်းတွေကို ကျွန်တော် ရှင်းပြပါအုံးမယ်။

Part - 1: Introduction
https://www.facebook.com/109899280618967/posts/516311843311040/

Part - 2: Basic Data Structure
https://www.facebook.com/109899280618967/posts/517304389878452/

Part - 3: Structure & Abstract Data type
https://www.facebook.com/109899280618967/posts/518533863088838/

Problem-oriented data structure
Part - 4: List
https://www.facebook.com/109899280618967/posts/520410022901222/

Part - 5: Stack & Queue
https://www.facebook.com/109899280618967/posts/522532432688981/

Part - 6: Tree Structure (1)
https://www.facebook.com/109899280618967/posts/535806754694882/

Part - 7: Tree Structure (2)
https://www.facebook.com/109899280618967/posts/535809184694639/

Part - 8: Tree Structure (3)
https://www.facebook.com/109899280618967/posts/535815261360698/

Part - 9: Hash
https://www.facebook.com/109899280618967/posts/583431376599086/

Web Developing Channel - WDC


photo credit - google

Want your business to be the top-listed Computer & Electronics Service in Yangon?
Click here to claim your Sponsored Listing.

Culinary Team

Attire

Address

Yangon
Yangon
11041