وانەی پێشەکی: زمانی پرۆگرامسازی چیە؟

0
بابەت بڵاوبکەوە......
Share on FacebookEmail this to someoneShare on Google+Pin on PinterestTweet about this on TwitterShare on LinkedInShare on RedditShare on TumblrDigg this

 

وانەی پێشەکی

زمانی پرۆگرامسازی چیە؟

پێشەکیەک بۆ کۆرسی چاڤا سەرەتا پێویستە بزانین کە ئایا زمانی پرۆگرامسازی چیە؟ وە سەرەتاکەی لە کوێوە پەیدابووە؟ وە بۆچی پێویستمان بە زمانێکی پرۆگرامسازی هەیە بۆ ئەوەی پرۆگرامێک دروستکەین! لەم وانەیەدا تەواوی پرسیارە وەڵام نەدراوەکان جوابدەدرێنەوە کە دەربارەی زمانی پرۆگرامسازی کۆمپیوتەر هەتبووە!

 

 

زمانی پرۆگرامسازی چیە؟

مرۆڤەکان لە ڕێگەی زمانەوە پەیوەندی بە یەکدیەوە دەکەن و لەیەک دەگەن بەمەش دەوترێ زمانی سروشتی ‘Natural Language’، بەڵام ئەم جۆرە لە زمان ئامێرە تەکنەلۆجیەکان بە گشتی و کۆمپیتەر بەتایبەتی ناتوانێت لێی تێبگات بۆیە پێوسیتە بە شێوازێکی تر ئەم پەیوەندیە دروست بکەین کە ئەویش بریتیە لە زمانی پرۆگرامسازی، زمانێکە بەکاردێت بۆ بەستنی پەیوەندی لە نێوان کۆمپیوتەر و مرۆڤدا بە جۆرێک مرۆڤەکان بتوانن ئەوەی دەیانەوە لە کۆمپیوتەرەکەی بگەیەنن هەتاکوو ئەویش بتوانێت ئەو کارە ئەنجام بدات کە مرۆڤەکان دەیانەوێت بە زمانێک کە -تاڕادەیەک- نزیک بێت لە زمانی مرۆڤەوە.

 

 

مێژووی زمانی پرۆگرامسازی

لەگەڵ دروستبوونی کۆمپیوتەردا لە ساڵی ١٩٤٠ ــەکان زمانی پرۆگرامسازی دروست بوو کە بریتیە لە جۆرە زمانێکی ئاڵۆز کە پێی دەوترا زمانی ماکینەیی ‘Machine Language’ ئەم جۆرە لە زمانی پرۆگرامسازی پێکهاتووە تەنها لە -سفر و یەک- وە لەڕێگەی ئەو دوو ژمارەیەوە کۆمپیوتەرەکە کۆنترۆڵ دەکرا، پاش چەند ساڵێک کۆمپیوتەرزانەکان هەستان بە دانانی زمانێکی ئاسانتر بۆ کەم کردنەوەی ئەم ئاڵۆزیە کە ناوی زمانی پەرتکراو -Assembly Language- ئەویش بە سیمبول کردنی فەرمانەکانە بۆ نمونە لەکاتی کۆکردنەوەی دوو ژمارەدا لە پێشدا فەرمانی -Add- دەنوسیت پاشان دوو ژامرەکە یاخود ئەو دوو خانەی بیرگەیە کۆ بکەیتەوە کە دەتەوێت، هەرچەندە تا ڕادەیەک ئەمە پێشکەوتوو تر بوو لەچاو زمانی مەکیینەیدا وەلێ هێشتا هەر ئاڵۆزبوو بۆ نوسینی پرۆگرامێکی گەورە لەلایەن پرۆگرامسازەکانەوە، بۆیە جۆرە زمانێکی تر پەیدا بوو کە ناوی لێنرا زمانی ئاست بەرزی پرۆگرامسازی (High Level Language), لێرەشەوە زمانی پرۆگرامسازی پێشکەوتنێکی هێجگار گەورەی بە خۆیەوە بینی وەک پەیدابوونی زمانی تەنخواز (Object Oriented Programming)!

 

 

زمانی مەکینەیی چیە؟

زمانی مەکینەیی یاخود -کۆدی مەکینەیی- (Machine Language) بریتیە لەو زمانەی کە کۆمپیوتەرەکە لێتێدەگات و زمانی دایکیی کۆمپیوتەرە، کاتێک کە پرۆگرامێک بەم زمانە دەنوسرێت ڕاستەوخۆ دەچێتە یەکەی چارەسەری ناوەندیەوە (Central Processing Unit) لەوێشە بەپێی ئەو ژمارەیەی کە بۆینێردراوە هەڵدەستێت بە ئەنجامدانی ئەو کردارەی کە ئەو ژمارەیەی هەیە کە لە پرۆگرامەکەدا هەیە، چۆنیەتی نووسین بەم زمانە بریتیە لە تەنها نوسین بە ژمارە کە بریتیە لە سێ پارچە پارچەیەکیان هەڵگری ژمارەی کردارەکەیە کە داوا لا یەکەی ناوەندی دەکات کە بۆی ئەنجام بدات وە پارچەکەی تر بریتیە لە دراوی یەکەم کە بریتیە لەو ژمارەیە یان ئەو ناونیشانەی بیرخەرە کە لەگەڵ کۆتا پارچەدا کردارەکەی کە پێدراوە بەسەریاندا ئەنجام ئەدرێت و لە ناونیشانی پارچەی دووهەم-دا خەزنە دەکرێت (یاخود ڕەنگە لە یەکەی بیرخەری Accumulator دا خەزنە بکرێت).

وێنەی یەکەم: پرۆگرامێکی سادە بە زمانی ماکینەیی.

 

زمانی پەرتکراو چیە؟

زمانی پەرتکراو (Assembly Language) بریتیە لە زمانێکی پێشکەوتوو تر لە زمانی ماکینەیی  و هەروەها کەمێک ساناتریشە، ئەمێش بریتیە لە کۆمەڵە وشەیەک کە هەریەکەو فەرمانێکی تایبەتی خۆی هەیە لەڕێگەی ئەم وشانەوە دەتوانیت ئەو فەرمانانەی کە دەتەوێت بەم زمانە ئاگاداری کۆمپیوتەرەکە بکەیتەوە! لەگەڵ پەیدابوونی ئەم زمانە دەرگای فێربوونی زمانی پرۆگرامسازی زیاتر بەرفراوانتربوو بەوەی کە ساناتر دەتوانیت پەیوەندی لەگەڵ کۆمپیوتەرەکەتدا ببەستیت و تێ بگەیەنیت کە چیت دەوێت، وە پاش دروستکردنی پرۆگرام بەم زمانە کۆمپیوتەرەکە ڕاستەوخۆ زمانەکە وەردەگێڕێتە سەر زمانی مەکینەیی هەتاوەکو کۆمپیوتەرەکە بتوانێت لێی تێبگات، ئەم زمانە هەتاکوو ئێستا بەکاردێت بۆ پرۆگرامکردنی ئامێرە تەکنەلۆجیەکان بەتایبەتی مایکرۆ-کترۆلەر و فرۆکە و جێت-ە جەنگیەکان.

 

کۆدی یەکەم: پرۆگرامی سادە بە زمانی پەرتکراو

 

 

زمانی ئاستبەرز چیە؟

زمانی ئاستبەرزی پرۆگرامسازی (High Level Language) بریتیە لە جۆرە زمانێکی نوێ و داهێنراو کە توانستی پرۆگرامسازەکان بۆ دروستکردنی پرۆگرامی بەهێز و گەورە زیاتر کردووە ئەمەش بەوەی شێوازی پرۆگرامسازی زۆر سانا کردووە بە جۆرێک شێوازی داڕشتنی پرۆگرامەکە زۆر نزیکە لە زمانی مرۆڤەوە، یەکەم زمانی ئاست بەرز کە پەیدابوو بریتی بوو لە ‘FORTRAN’ پاشان لە ساڵەکانی ١٩٥٠ بۆ ١٩٦٠ ـەکان زمانێکی نوێ داهێنرا لەلایەن کۆمپیوتەرزانی ئەمریکی بەتوانا دێنیز ڕێتچی (Dennis Ritchie) کە بریتی بوو لە زمانی پرۆگرامسازی ‘C’ کە هاوکات داهێنەری سیستەمی بەگەڕخەری یونێک ‘UNIX’ـە، وە زمانی-سی بووە هۆی پەرەپێدانێکی گرنگ لەبواری پرۆگرامسازی-دا وە هەروەها بە باوکی زمانەکانی جاڤا و c++ و C# دادەنرێت!

وێنەی دووهەم: دروستکەری زمانی پرۆگرامسازی سی، ناسراو بە دێنیز رێتچی.

 

 

زمانی ئاستبەرزی تەنخواز چیە؟

زمانی ئاستبەرزی تەنخواز (Object Oriented-Programming) بریتیە زمانێکی پرۆگرامسازی کەکار لەسەر چەمکی ‘تەن’ (Object) دەکات بەجۆرێک پرۆگرامەکە پێک هاتووە لە چەند یەکەیەکی دابەش کراو کە پێیان دەوترێ ‘Class’ لە ناو ئەم کلاس-انەدا دوو بەشی سەرەکی هەیە کە بریتیە لە گۆڕاوەکان (Variable) کە وەک بیرگەیەکی کاتی وایە زانیاریەکانی تێدا هەڵدەگیرێت کە هەر جۆرە زانیاریەکی جیاواز لە جۆرێکی جیاوازی گۆڕدا کۆ دەکرێتەوە (بۆ نموونە ژمارەی تەواو لە جۆرێک گۆڕاودا هەڵدەگریت کە تایبەتە بە ژمارەی تەواو، یاخود ڕستە لە جۆرێک لە گۆڕاوی جیاوازدا هەڵدەگریت کە تایبەتە بە ڕستە بەڵام هەموویان لە ژێر چەمکی ‘تەن’دا تەماشا دەکرێن)، وە هەروەها بەشەکەی تر کە بەرپرسە لە کارکردن و بەجێهێنانی فەرمان کە پێی دەوترێ (Method) یاخود (Function)، ئەم جۆرە لە زمانی پرۆگرامسازی بە سێ تایبەتمەندی لەزمانەکانی تر جیادەکرێنەوە کە بریتین لە: ١- Encapsulation، ٢- Inheritance، ٣- Polymorphism. (لەداهاتوودا زیاتر شیکردنەوە لەسەری دەدەین). ئەوزمانانەی کە کار بەم تایبەتمەندیانە دەکەن (واتە زمانێکی ئاستبەرزی تەنخوازن) بریتین لە (Java، C++، C#, Objective-C … هتد).

کۆدی دووهەم: پرۆگرامێکی سادە بە زمانی جاڤا کە ڕستەیەک بۆ بەکارهێنەرەکە پیشان دەدات.

 

 

جیاوازی نێوان ئەو سێ جۆرە لە زمانی پرۆگرامسازی چیە؟

جیاوازی سەرەکی بریتیە لەوەی هەر یەکە لە زمانەکان لە ئاستێکی تایبەت بە خۆیاندا کاردەکەن بەواتایەکی تر هەر زمانە و جۆرێک تایبەتمەندی خۆی هەیەو هەر یەکەیان بۆ ئاستێکی دیاریکراوی کۆمپیوتەر دانراوە کە بتوانێت تێیبگات، مەبەستەکە لێرەدا لەوەیە ئەگەر بتەوێت کار لەگەڵ بەشی هەرە خوارەوەی کۆمپیوتەر بکەیت کە لە بەشی ڕەقاڵەکاندا (Hardware) بتەوێت فەرمانێک لە یەکەی چارەسەری ناوەندی بەجێ بهێنیت پێویستە ئەو پرۆگرامەی کە دەینوسیت بە زمانی ماکینەی بێت یاخود بە زمانی پەرتکراو بینوسیت چونکە ئەو بەشەی کۆمپیوتەر لە زمانی ئاستبەرز تێناگات بۆیە پێویستە بەو زمانە فەرمانی پێبکەیت کە ئەو تێیدەگات! ڕەنگە پرسیارێک بێتە مێشکت ئەویش ئەوەیە ئەی کەوایە کە پرۆگرامێک دەنوسین بە زمانێکی ئاستبەرز چۆن کۆمپیوتەرەکە لێمان تێدەگات؟ وەڵامی ئەم پرسیارەش لە بڕگەکەی خوارەوەدا دراوەتەوە.

 

 

وەرگێڕی زمان چیە؟

وەرگێڕی زمانی پرۆگرامسازی (Compiler) بریتیە لە پرۆگرامێک یاخود کۆمەڵە پرۆگرامێک هەڵذەستێت بە وەرگێڕاندنی ئەو پرۆگرامەی کە تۆ دروست کردووە لە زمانێکی ئاست بەرزەوە بۆ زمانێکی ئاست نزم هەتاوەکو بەشی ڕەقاڵەی کۆمپیوتەرەکە تێبگات کە چ فەرمانێکت بۆ بەجێ بهێنێت، نمونەیەک بهێنەرە پێش چاوی خۆت کاتێک قسە لەگەڵ کەسێکی بیانیدا دەکەیت و هیچی تێناگەیت و ئەویش هیچ لە تۆ ناگات بێگومان پێویستە بە ئامڕازێکی ڕێگە خۆشکەر هەیە بۆ ئەوەی بتوانیت هەم تۆ لەو بگەیت هەم بە پێچەوانەشەوە ئەو لە تۆ بگات بۆیە کەسێک بانگ دەکەیت کە ناوی کۆمپایلەرە-Compiler دەستنوسێکی دەدەیتێ کە بەزمانی خۆت نوسراوە پاشان ئەو کۆمپایلەرە تەماشای دەستنوسەکە دەکات ئەگەر هەڵەیەکی تێدابێت ئەوا ئاگادارت دەکاتەوە کە هەتا ئەو هەڵەیەی هەتە چاکی نەکەیت ئەو وەری نەگێڕێ، پاشان ئەوەی کە بێهەڵە دەستنوسەکەد پێدا ئەو هەڵدەستێت بۆ دەخاتە سەر زمانەکەی تر و دەینێرێت بۆ کەسە بیانیەکە، ئەمەش کاری سەرەکی وەگێڕی زمانی پرۆگرامسازیە!

هەر پرۆگرامێک کە دەینوسیت ئەو دەیکاتە سەر زمانی پەرتکراو و لەوێشەوە دەبێتە زمانی ماکینەیی و کۆمپیوتەرەکەت تێدەگات و ئەو فەرمانەو بۆ دەکات کە خۆت دەتەوێت!

وێنەی سێهەم: چۆنیەتی وەرگێڕاندنی پرۆگرامەکانی کە بە زمانی ئاستبەرز دروستکراون.

 

 

لە کۆتایدا!

ئەمە بریتیە لە سەرەتای دەسپێکردنی کێشەکان بە فێربوونی زمانی پڕۆگرامسازی، فێربوونی پرۆگرامسازی پڕە لە کێشەی قوڵ و زۆر کە پێویستە کەسەکە خۆی بۆ ئامادە بکات هەتاوەکو بێکێشە بەرەنگاریان ببێتەوە بەڵام لەگەڵ ئەوەشدا دەتوانێت زۆر چێژ لەو کێشانە ببینیت و بتوانیت زیاتر توانا فیکریەکانت بەرەوپێش بخەیت! ئەوە بزانە کە ئێستا پێداویستیەکانی ژیان و ژیانی رۆژانەمان زیاتر بەرەوە تەکنەلۆژی بوون هەنگاو دەنێت بۆیە زانینی ئەم جۆرە لە کار داهاتوویەکی زۆر باشت بۆ فەراهەم دەکات لە سەرتاسەری جیهاندا!

من سامرەند حاجی بە درێژاری ئەم کۆرسە لەگەڵتاندا دەبین بۆ فێربوونی زمانی جاڤا. لەگەڵ هەبوونی هەر کێشەیەک یاخود پرسیارێک دوودڵ مەبە بپرسە!

 

لێدوانێک بنووسە