တဲမ်းပရိုဂရမ် တွမ်ႏ C/ခါးလားနာꩻကထွားစ

Template:Subpage navbar

Tình trạng hoàn thành: học liệu này đã đạt đến mức hoàn thành.

Objective

edit
  • Get an overview of C and its benefits.
  • Learn about the creation of C.
  • Learn the uses of C.
  • Learn and acquire the tools you'll need for this course.
  • Understand the need to complete the assignments.
  • Understand the need to pace yourself.
  • Have fun!


Lesson

edit

အအဲန်ႏ

edit

နာꩻမဉ်ႏတဲမ်းဖိုတောဝ်း ပရိုဂရမ်တဲ့နောဝ်ꩻ၊ မဉ်ႏမဉ်ထွားချာစစနေး C တဲ့နောဝ်ꩻ လိတ်သွောန်ခရာႏ ယိုတဗာႏ အီးထွာနာꩻတာႏသွူ။ C ဘာႏသာႏယို အဖေႏ နီကသေနာႏအီ တဲမ်းပရိုဂရမ် အကဲန်အလုဲင်ꩻ အထျꩻတဗာႏ၊ ဖေႏသေပါ ထာꩻအွို့ꩻ ကုမ်ပျူတာ မာꩻထာꩻမာꩻနုဲင်းမုဲင်ꩻ ခရာႏ။ နာꩻမဉ်ႏသေခါꩻ အီးတဲမ်းဗာႏ ပရိုဂရမ် တုမ်ႏ C နုဲင်းမုဲင်ꩻနောဝ်ꩻ မဉ်ႏမဉ်တဲမ်းကြုဲင်းတေားတုမ်ႏ ဘာႏသာႏ C ခွိုꩻဖုံႏ ဗွိုန်ပီနုဲင်း C++, Java ယင်း C# နောဝ်ꩻ အယိုꩻကွာႏသွူ။ မာꩻသꩻတကျတောဝ်း နာꩻကအီးသွောန်ထူႏ ဘာႏသာႏဖုံႏ တဲမ်းအီပရိုဂရမ်နယ်ꩻလုမ်ꩻ ကာႏတောဝ်း ထာꩻယိုနောဝ်ꩻ အောဝ်ႏဆျွိုင်ꩻပါက ကုမ်ပျူတာ သိပ္ပံဘာႏသာႏ။

The Birth of C ကလွူးထန်ႏ C

edit

C ဘာႏသာႏယို ထွာလွောန် တဟာချင်ႏမွေးတောဝ်း။ ဘာႏသာႏယိုတဗာႏ ကအီးအောဝ်ႏလꩻတာႏ အောဝ်ႏလိုႏ အခိန်ႏ၊ လိုꩻအာ၊ တောမ်ႏယင်း ထာꩻမာꩻရဲန်ႏဖုံႏ။ နောဝ်ꩻမꩻ C ကအောဝ်ႏလွောန်လꩻယို အစဲင်းစဲ့တဗာႏနောဝ်ꩻ အောဝ်ႏနုဲင်းမုဲင်ꩻ? ၁၉၆၀ နေင်ႏဖုံႏ အစောဝ်းခါ ထာꩻယူႏ ဖပန်းဖေႏအခိန်ႏ အာႏတလာသန်မွေးဝင်ꩻ။ သော့ꩻဖေႏ ထေဖေႏအာမွေးစွောန်ႏဝင်ꩻ ရွောန်အာႏ၊ လိုꩻအာႏ ကမာꩻ ပရိုဂရမ်ကို။ ပရိုဂရမ် ယိုစားနောဝ်ꩻ လိုအာဖုံႏ အောဝ်ႏတာမီနယ်(terminal) တဗာႏကို ကအီးသွိုပ်လွေꩻ ကုမ်ပျူတာထွူ မာꩻအီငီꩻဝင်ꩻ ကုမ်ပျူတာ ထာꩻရွီးခိုႏ ယဟန်ႏ ဒါးအီ၊ မာꩻငီꩻသွိုလွဝင်ꩻ တလဲင်ႏချင်ႏနေးစားသွူ။ ကုမ်ပျူတာတဖြုံႏယို ထေရဲင်ꩻအာႏ ပီလွေꩻ အဖြုံႏတရျာꩻဒါႏ၊ ဖေႏမာꩻလွေꩻ ခင်ႏလမ်းအာ ပီနုဲင်း တက္ကသိုလ်ႏဖုံႏ ယမ်ကသွိုပ်လꩻဖေႏလွေꩻ ဝွေꩻသီးကျောင်ꩻသားဖုံႏ တောမ်ႏကုမ်ပျူတာ အငိုꩻလို့ဆေ့ꩻစားသွူ။ ဖပန်းဖေႏ အခိန်ႏ ထာꩻမာꩻတုင်းကို ဝင်ꩻကသေအာလွောန်နောဝ်ꩻ ထွာ ထာꩻခြိုင်းလေပ်ထာꩻ(Operating System) ဖပန်းဖေႏအခိန်ႏ ကမဉ်ꩻဒါႏ Multics နောဝ်ꩻဗာႏ တလဲင်ႏတစိꩻစိꩻနေး။ Multics ယို ရိုꩻကီ အမာꩻထွာ အွော့ꩻဝါန်ချာႏထိုꩻ ခေတ်စိုးယယောက်ꩻ တစားစားနောဝ်ꩻလဲ့ ဝွေꩻယိုကယ်ႏ အယပ်ꩻအခုဲင်ႏ ပျဿနာႏ အောဝ်းအာတန်။ ဝွေꩻကုဒ်နောဝ်ꩻ အာတဲ့အာ၊ ရုင်ႏရေင်တဲ့ ရုင်ႏရေင်၊ ကအီးလွိုမ်းဟောဝ်ခြာ ထာꩻခြွိုင်းလေပ်ထာꩻတာႏ အယိုꩻတောဝ်း။ ၁၉၇၀ ဗာႏနေင်ႏဖုံႏ အစောဝ်းဖဲ့ꩻခါကို လိုꩻအာ ကအောဝ်ႏမာꩻထာꩻမာꩻ ဘဲလ်း ဖꩻဓာတ်ခန်ꩻကိုသားဖုံႏ ဟွိုန်သꩻကုဲင် Multics တွော့ꩻ အွောန်ႏစွꩻထိုꩻထွူ ရော့ꩻသꩻဝင်ꩻ မာꩻချာတေား ဝွေꩻသီးစူခြောင်ꩻချာဒျာႏ ထာꩻခြွိုင်းလေပ်ထာꩻ တန်နောဝ်ꩻသွူ။ ယိုလဲင်ႏခါ ထာꩻခြွိုင်းလေပ်ထာꩻနောဝ်ꩻဗာႏနောဝ်ꩻ ဟဲ့ꩻ Unix သွူ။ နောဝ်ꩻဗာႏတဲ့ တဲမ်းခါꩻတောမ်ႏ အဲတ်သဲမ်ဘလီ ဘာႏသာႏတဲမ်းပရိုဂရမ်၊ assembly ယို ခုမ်စမ်ႏခုဲင်ႏတဲင် မော့ꩻလွေꩻဗာႏ ပျဿနာႏ ယဟန်ႏ။ ကအီးကြူခွဲးလꩻ ပျဿနာႏ အယပ်ꩻအခုဲင်ႏ နောဝ်ꩻဗာႏတာႏ ကရထွာဒါႏ ဘာႏသာႏတဲမ်းပရိုဂရမ်နောဝ်ꩻ အောဝ်ႏ ဝင်ꩻကဟဲ့ꩻမဉ်ꩻ B တဗာႏ၊ ကွဲးတွော့ꩻ နောဝ်ꩻကယ်ႏကယ်ႏ ပျဿနာႏ အယပ်ꩻအခုဲင်ႏ ယဟန်ႏအောဝ်ႏနေနေ။ Dennis Ritchie မာꩻဖေႏ ကတသာခြာ၊ ကယမ်ခြာထဲင်းက B ထာꩻရွဲꩻ၊ ဖေႏမဉ်ꩻ C ။ C ယို ယမ်အာထဲင်းက B သွူ။ C ယမ်ငါႏနောဝ်ꩻမꩻ ထာꩻမာꩻထွာအီဒါႏတွော့ꩻ Unix နောဝ်ꩻ တဲမ်းတသာချာတေားတွမ်ႏ C ကဉ်းအာအာသွူ။ ထာꩻယို အွောန်ဖေႏ Unix သွိုပ်ဒါႏလွေꩻယိုꩻယိုအီ ကုမ်ပျူတာ ပီတောဝ်းဝင်ꩻဖုံႏ။ မညမမွိုင်နောဝ်ꩻလဲင်ႏ C ယို မာꩻအီပါဝင်ꩻ ထာꩻမာꩻလောင်းလင်ကိုတဲင် ထွာလွေꩻစွောန်ႏ ဘာႏသာႏကယွိုင်ႏဗဉ်ႏလꩻထာꩻ အာဗာႏဖုံႏကို တဗာႏ တလဲင်ႏတစိꩻစိꩻသွူ။

Ken Thompson (left) with Dennis Ritchie (right, the inventor of the C programming language).

C's Uses

edit

C ယို မာꩻအီအာ ပညာႏတာႏဖဲ့ꩻ၊ ပရိုဂရမ် ရဲန်ꩻတဲမ်းလိတ် ပီနုဲင်း text editor ဖုံႏ၊ ဂိမ်းနုဲင်း Quake III ဖုဲႏ၊ တွက်ဗျာႏထာꩻ ဗွိုန်နုဲင်း ထုမ်ႏရွောန်အေႏကထင်ႏဖုံႏ၊ ဗူႏထာꩻဗွိုန်ဝင်ꩻဖုံႏ၊ မာꩻအီ ထွားပီꩻ ဒေတာတန်ဗွိုင်းဖုံႏသွူ။ C ပရိုဂရမ်ဖုံႏယို မာꩻအီဝင်ꩻ အဉ်စဉ်နီယာ မာꩻအီထာꩻမာꩻဖဲ့ꩻဖုံႏ ပီနုဲင်း အွောန်ႏသျထာꩻတငေါꩻ curve ဖုံႏ၊ အဉ်တီဂရေးဆဉ်း တွမ်ႏ ဂိမ်းတန်ပြွူႏတာႏဖုံႏ၊ ယင်းအလောင်းအလင် အာစွိုးတန်ဖုံႏ။ C ယို မာꩻအီခါꩻလဲန်းဝင်ꩻ ထာꩻမာꩻရုင်ႏရေင်တန်မွေးကို၊ ဥပမာ- ထာꩻလုဲင်ꩻ လေပ်ထာꩻခြွိုင်း ပီနုဲင်း GNU/Linux, Unix ဖုံႏ။ Microsoft/Windows တွမ်ႏယင်း Unices ဖဲ့ꩻရာ (SunOS, FreeBSD, et al) ဖုံႏယို တဲမ်းခါꩻတွမ်ႏ C တခေါဝ်သွူ။

နာꩻကအီးလိုႏဒါႏ ထာꩻခြွိုင်းဖုံႏ

edit

Compiler တဗာႏယို ထွာ ပရိုဂရမ် ထူႏဆုမ်ႏကုဒ် လိတ်ခြွီထွူ ကြုဲင်းလွေꩻဖေႏ ဖုဲန်လေပ်ချာငါအီဒါႏ တဗာႏသွူ။ ကအီးသွောန်ထူႏ C တာႏ နာꩻအီးအောဝ်ႏလိုႏ ကုမ်ပျူတာတဖြုံႏတွမ်ႏ C compiler ကအောဝ်ႏသော့ꩻဒါႏ Operating System ထာꩻလုဲင်ꩻ လေပ်ထာꩻခြွိုင်းသွူ။ မဉ်ႏဒေါ့ꩻယိုꩻယိုꩻနောဝ်ꩻ ထာꩻယို ကုဲင်းထွာဒါႏ ပလဲတ်ဖောန်း အွေောန်ႏရဲးခါꩻတဲင် ဝွေꩻသီးယို မာꩻအီဒါႏလဲ့ꩻတွမ်ႏ ရဲင်ꩻအာႏဖဲ့ꩻ ကုဲင်းဗွိုန်ပီတောဝ်းဝင်ꩻအောဝ်ႏ။ ထာꩻရွဲꩻ အွောန်ႏတရဲန်ႏဝင်ꩻ C compiler နောဝ်ꩻ မော့ꩻလွေꩻယိုကို။ Compiler တဗာႏတဗာႏယို အဟောဝ်အကုဲင် ပီတောဝ်းဝင်ꩻအောဝ်ႏဒါႏ၊ ဥပမာႏ- compiler ဖုံႏ ယဟန်ႏနောဝ်ꩻ ရအီးလို့ဗာႏနေးရွောန်၊ မဉ်ႏတမွေးတောဝ်းလဲ့ နာꩻရ လိုႏထုမ်ႏမော့ꩻမော့ꩻလွေꩻ လꩻဗဲင်းနေးစားသွူ။ ဝင်ꩻကသေငါꩻအာလွိုသွတ်ꩻ compiler နောဝ်ꩻ ထွာ GCC (GNU Compiler Collection)၊ ထာꩻယိုနောဝ်ꩻ အွောန်ႏစျွိုင် သော့ꩻခါꩻဖေႏပါလွေꩻ GNU/Linux ကို ကဉ်းအာအာ။ မဉ်ႏတသော့ꩻဖေႏခါꩻတောဝ်းနောဝ်ꩻ မာꩻတွမ်ႏ ကရော့ꩻဒါႏ နာꩻထာꩻခြွိုင်းတာႏ ပဲက်ကေ့ဇျ် မဲန်နေဇျာတွော့ꩻ စျွိုင်သော့ꩻဖေႏ install ဖေႏလꩻ။ IDE (Integrated Development Environment) တဗာႏယို ကေားတဲမ်းပရိုဂရမ် ဒီဗီလောပ်ပါ Developer တဖြာꩻအတာႏ ထွာ ထာꩻခြွိုင်းခြိုꩻဖုံႏ အထျꩻထျꩻ တဲမ်းအီပရိုဂရမ် သော့ဝဲး ထာꩻလောမ် (Package) တဗာႏသွူ။ အီးအောဝ်ႏလိုႏမာꩻအီလို့လို့ မွေးတောဝ်းရိုꩻလဲ့ တဲမ်းပရိုဂရမ်ယမ်သား ကဉ်းအာအာတာႏ ထွာ ဒေါ့ꩻအငိုꩻ တတောမ်ႏတောဝ်းဒါႏ ထာꩻခြွီဖုံႏသွူ။ မဉ်ႏဒေါန်းထူႏထွူ စျွိုင်လွေꩻ install သော့ꩻဖေႏ compiler တောဝ်းလဲ့ IDE နောဝ်ꩻ နာꩻအီးလိုႏထွေတနꩻနꩻလွောန်ꩻ ကအီးရဲန်ꩻဗာႏ ဝင်ꩻကတဲမ်းနယ်ခါꩻ compiler တောဝ်းလဲ့ IDE နုဲင်းမုဲင်ꩻစား၊ မာꩻအီဗာႏ နုဲင်းမုဲင်ꩻစားခရာႏသွူ။ မဉ်ႏထွာဒျာႏ ဝင်ꩻဒေါ့ꩻနယ်ခါꩻစဲင်းတောဝ်း တဗာႏနောဝ်ꩻ လိုႏအွောန်ႏသꩻဗွို့ꩻဗွို့ꩻ မာꩻဗာႏ။ Windows IDE ကဉ်းအာအာနောဝ်ꩻ မာꩻစူꩻခါꩻ GCC compiler သွူ။


အခိန်ႏ ကထွိုင်ႏည၊ C တဲ့ ဝင်ꩻမာꩻအီအာသဲင်ꩻ၊ အောဝ်ႏ K&R C (အရိုꩻဝင်ꩻ Ken Thomson တွမ်ႏ Dennis Ritchie ကမာꩻစစရီးဒါႏ C အထျꩻထျꩻ) ဖ ဖြယ်ꩻထန်းလွေꩻ ထာꩻထော့သေꩻ ထာꩻခြိုႏအစားစားသွူ။ ကစူꩻအာဝင်ꩻ အရီးရီးဖုံႏယို ထွာ ANSI C (aka C89, C90, ISO C) နောဝ်ꩻသွူ။ ထာꩻယိုနောဝ်ꩻ အမေရိကန်ခမ်းသား ထာꩻအွောန်ႏထော့ ဌာန (American National Standard Institute) ၊ အဒွေါင်ႏနေး ANSI အစွိုꩻ ဖေႏသေꩻခါꩻ ၁၉၈၉ ဗာႏနေင်ႏကိုခါ။ ထွိုင်ႏတွိုႏ ၁၉၉၀ ဗာႏနေင်ႏကို အခမ်းခမ်းအထီထီတာႏ ထာꩻအွောန်ႏထော့ ထာꩻခြိုႏအစွိုꩻ ISO (International Organization of Standards) စူꩻလွေꩻဖေႏ ANSI ထာꩻဖေႏသေ။ ကတသာခြာဒါႏ ထာꩻအွောန်ႏထော့နောဝ်ꩻ ထွာ C11 တွမ်ႏ C17 ထာꩻအွောန်ႏထော့ဖုံႏ၊ ဝင်ꩻစူꩻဖေႏခါꩻ 2011 တွမ်ႏ 2018 (ရဲန်ꩻသေꩻ 2017 ကို) ဗာႏနေင်ႏကိုသွူ။ C ပရိုဂရမ် ကဉ်းအာအာနောဝ်ꩻ ထွေလွောန်ꩻနေးတဲမ်းခါꩻ ANSI C ထာꩻအွောန်ႏထော့သွူ။ ကအီးမာꩻအီစ C တာႏ ယိုခါလဲင်ႏ နာꩻထျꩻ ထာꩻခြွိုင်းအောဝ်ႏဗွေလဲန်း။

အဲတ်သုဲန်းမဲန့်ဖုံႏယို နာꩻတာႏ အဟောဝ်

edit

ယမ်သေ နာꩻသေနာႏ သွောန်ခန်ꩻလိတ်နဲ့၊ သေနာႏနောဝ်းနဲ့တား သွောန်ခရာႏယိုဗာႏ ဖေႏခါꩻပါ ငေါဝ်းရီတွမ်ႏ မာꩻလွောန်ꩻယွဲးအီတာႏ အာတန်။ တခန်ꩻစီႏ အသွတ်ꩻကို ကဟဲ့ꩻဒါႏ အဲတ်သုဲန်းမဲန့် ကဏ္ဍအောဝ်ႏပါ။ နာꩻမာꩻလွောန်ꩻတောဝ်း နောဝ်ꩻစားယောဝ်း လꩻဒျာႏရိုꩻလဲ့ ဝင်ꩻကုဲင်းဖေႏမာꩻခူခူဒျာႏ ကဖေႏခါꩻ အဲတ်သုဲန်းမဲန့်ဖုံႏရာသွူ။

မွန်းပျောႏသွော့

edit

အဆုဲင်ꩻသွတ်ꩻတာႏ ကမဉ်ဒေါ့ꩻဖေႏပါနောဝ်ꩻ တဲမ်းပရိုဂရမ်ယို ပျောႏခရာႏတန်ဒျာႏသွူ။ ကအီးသွောန်ထူႏတာႏ၊ ကအီးသေငါꩻငါထဲင်းတာႏ နာꩻမဉ်ႏရီရောင်သေ၊ မဉ်ႏဆုဲင်းသေနောဝ်ꩻ ထာꩻယိုကယ်ႏ ပျောႏသꩻဗာႏတန်နေနေ။ နာꩻမဉ်ႏမာꩻအီလိတ် သွောန်ထူႏခရာႏ ယိုဗာႏနောဝ်ꩻ ပညာႏအောဝ်ႏသားငေါဝ်း ယဟန်ႏ ထွာႏငါလွေꩻဖေႏ၊ မာꩻဒါႏမွိုင်ဖေႏအီနာꩻ။ မဉ်ႏထွားမာꩻ မွိုင်လွောန်ꩻငါႏ၊ တောဝ်းလဲ့ မဉ်ႏထွားယွိုးလွောန်ꩻငါႏနောဝ်ꩻ ကအီးဒါႏခူလꩻ သွောန်ထူႏခရာႏ လိတ်ယိုဗာႏတာႏ သꩻဆန္ဒ ကုဲင်းတကျ(တချ) ဒါႏသွူ။



Assignments

edit
  • Name a benefit gained when learning C?
  • Give a short summary on the creation of C.
  • Why was C famous irrespective of availability of other languages?
  • Where is C used? What applications use C?
  • Did you install a C compiler? If so, what's its name? Do you know how to use it?
  • Did you faithfully complete this assignment?
  • Give your suggestions that C is useful in today's world or not?