شما هنوز به سیستم وارد نشده اید.

#1 2018-08-08 00:47:12

Arcush
Moderator
ثبت شده: 2015-09-15
ارسال ها: 1,410

Cات را قورت بده.

درود.

درسته که هرگونه جنگی بر سر زبان ها به نتیجهٔ ویژه ای نمیرسه و سر انجام به این منتهی میشه که هر زبانی کاربردهای خودش را داره و انتخاب و استفاده از زبان میتونه چند نقطه از یک طیف را مورد هدف قرار بده (از قبیل پروتوتایپ، تجاری بودن، کاربرد، تفاوت سطح، سلیقه و هدف برنامه نویس و ووو). ولی شاید همه یکدل باشیم که اگر قراره تمام زبان های دنیا را از بین ببریم و یکی باقی بمونه ممکنه C همونی باشه که به باقی موندنش رای میدیم. بهرصورت، برمبنای پیشنهاد Ritchie@ گرامی تصمیم گرفتیم که تاپیکی را ایجاد کنیم و در اون تاپیک آموزش های پایه ای تا کاربردیِ C را قرار بدیم و این تاپیک بصورت مباحثه ای پیش بره. احتمالن Ritchie@  روی گیتهاب هم آموزش ها را قرار میده ولی خود آموزش ها را همواره در ارسال پسین آپدیت می کنه. امیدوارم این تاپیک بتونه نقطهٔ عطفی در چرخش جامعهٔ انجمن های لینوکس در کشورمون باشه و همچنین امیدوارم با مشارکت (پرسش، پاسخ، پیشنهاد، انتقاد، آموزش، نکته، تجربه و ووو) دوستان بتونه به انباره ای درخور از آموزش ها و مباحثه های علمی در C تبدیل بشه. بنابراین، در ارسال ها بسیار راحت خواهیم بود و آموزش ها توسط Ritchie@ گرامی در یک ارسالْ هماره پیراسته خواهند شد.

آفلاین

#2 2018-08-08 02:27:58

Ritchie
عضو
ثبت شده: 2018-08-06
ارسال ها: 8

پاسخ: Cات را قورت بده.

سلام.
در تایید سخنان دوست خوبم arcush هدف ما از ایجاد این تاپیک ایجاد آمورشی ماندگار, جمعی و کامله. ما در ازای این کار هیچ پولی دریافت نمیکنیم و فقط با عشق و علاقه خودجوش این تصمیم رو گرفتیم. پس هدفمون سیاه کردن صفحه و کار اجباری نیست. چیزی رو مینویسیم که فهمیده بشه و کاربردی باشه. پس الان طبیعیه اگر بگم یه موضوع شاید چندیدن صفحه حجمش باشه. اما بنظر شخصی من اصلا مهم نیست. شور و اشتیاق به خوندن یک کتاب قشنگ بسیار بیشتر از خوندن یک پاراگراف نامفهومه. ما سعی میکنیم از تمام اونچه که میدونیم و خوندیم و کار کردیم استفاده کنیم تا این تاپیک بصورت یک گنجینه در بیاد. در خلال این آموزش مشارکتی به انواع منابع معتبر مراجعه میکنیم, مطلب رو میخونیم و به زبانی شیوا و رسا بازگو میکنیم. سعی میکنیم بهترین استفاده رو از مستندات کامپایلرهای گنو, مستندات کتابخانه های استاندارد C, و مستندات POSIX داشته باشیم. این تاپیک به امید خدا بسیار بزرگ خواهد شد. چون این تاپیک دارای کامنت هم هست سعی میکنیم یک صفحه هم در Github براش ایجاد کنیم که کسانی که میخوان بصورت سرراست مطلب رو بخونن بتونن بی وقفه جلو برن.

آفلاین

#3 2018-08-08 03:56:36

Ritchie
عضو
ثبت شده: 2018-08-06
ارسال ها: 8

پاسخ: Cات را قورت بده.

روشنگری
  • برنامه نویسی و زبان برنامه نویسی

  • برنامه و اسکریپت

برنامه نویسی و زبان برنامه نویسی
بسیاری از افراد به محض اینکه میخواهند برنامه نویسی رو شروع کنند، فوراً میرن سراغ یک زبان خاص و مثل اکثر ما در اوایل فکر میکنن که برنامه نویسی با زبان برنامه نویسی یکیه. در حقیقت این دوتا با هم خیلی فرق دارن. مثال ملموسش میتونه این باشه که برنامه نویسی یعنی شناخت مسیر و هدف. فرض کنید شما میخواهید از بندرعباس به سمت تهران حرکت کنید. برنامه نویسی یعنی اینکه بدونی مقصدت کجاست و از چه مسیری بری. برنامه نویسی انتزاعیه. یه منطق خاصه در فکر. شخصی که مسیر بندرعباس-تهران رو بلده با گفتن اسم مقصد میتونه مقصد و مسیر رو مجسم کنه و حتی بگه این مسیر فلان مشکل رو داره و یه مسیر دیگه معرفی کنه. بدون اینکه الزاما همون لحظه حرکت کنه.
تا اینجا به درک ملموسی از برنامه نویسی رسیدیم. حالا زبان برنامه نویسی. برگردیم سر مثال خودمون. زبان برنامه نویسی وسیله ایه برای رسیدن به مقصد. موتور، ماشین، قطار، هواپیما و .... خوشبختانه یا متاسفانه برنامه نویس در نقش راننده ست. نه مسافر، نه طراح ماشین و نه طراح جاده یا مسیر. مسافر نیست پس نمیتونه تو صندلیش بشینه تا به مقد برسه. طراح هم نیست که بدونه این ماشین یا وسیله چگونه ساخته شده و هر ثانیه میل بادامک موتور وسیله نقلیه ش چند دور میچرخه. اون راننده ست. فقط باید کنترل وسیله نقلیه شو بلد باشه. پس برنامه نویس کسی نیست که مثل کاربر نهایی چهارتا کلیک کنه و به مقصد برسه. لزومی هم نداره بدونه که مقدار CAS Latency رمش چقدره یا پردازنده ش چند نانومتریه و...(هرچند بدونه بهتره. همچنان که رانندگی برای یه مکانیک در سفر استرس کمتر و آرامش بیشتری بهمراه داره. اما الزامی نیست). برنامه نویس طراح مسیر(سیستم عامل) هم نیست. اون فقط میتونه مسیر بهتر برای سفرش رو تعیین کنه(کدوم سیستم عامل برای کارش مناسبه).وجود دست انداز و سرعت گیر در مسیر تقصیر کسی نیست که میخواد تو اون جاده برونه. ایشون فقط میتونه عاقلانه فکر کنه و مسیر دیگری رو انتخاب کنه. پس زبان برنامه نویسی یه وسیله ست برای طی مسیر و رسیدن به هدف. هر وسیله کنترل خاص خودش رو داره. موتور سیکلت، خودرو، هواپیما، قطار و کشتی همشون ما رو به مقصد میرسونن. اما هرکدوم روش کنترل خاص خودشونو دارن. اینجاست که زبان برنامه نویسی میاد وسط. با کدوم راحتی؟ با همون برو. وقتی شما مسیر رو بلد نباشید و مقصد رو ندونید با هیچ وسیله ای به مقصد نمیرسید. مسیر و مقصد رو هم بلد باشید اما وسیله نقلیه تون باب میلتون نباشه سفری عذاب آور خواهید داشت که ممکنه در یه جایی منصرف شید و پیاده هم بشید. پس برای برنامه نویس شدن یک درک انتزاعی خوب و یک درک منطقی خوب لازمه. زبان برنامه نویسی سکویی است که مجموعه ای از ابزارهای لازم رو برای پیاده کردن افکار و منطقتون بهتون میده. حالا انتخاب یک زبان مناسب. زبان خوب دوست داشتنی من زبان C است. اینکه چرا من این زبان رو دوست دارم دلایل خودشو داره که سعی میکنم تو پستهای بعدی بگم و حتما معایبشم میگم. اگر بعد از خوندن اون پست فکر کردید که C وسیله خوبی برای رسیدن به مقصدتون نیست، در پیاده شدن یک لحظه هم درنگ نکنید.

برنامه و اسکریپت
یه چیزی که هممون میدونیم ولی شرح تفاوتش برامون گاهی سخته. چون گاهی اسکریپت رو با سورس برنامه اشتباه میگیریم. اسکریپت به مجموعه دستورالعمل هایی میگن که برای اجرا شدن باید در برنامه دیگری ترجمه و اجرا بشن. مثال خوبش جاوا اسکریپته. دستورات جاوا اسکریپت در دل کدهای html قرار میگیرن و مرورگر اجراشون میکنه. توانایی اجرا رو از خودشون ندارن. اما برنامه ها اینگونه نیستن. برنامه ها یکبار کامپایل شدن و توانایی اجرا شدن ذاتی دارن. تفاوت بعدیشون اینه که برنامه ها به زبان ماشین ترجمه شدن اونم یکبار برای همیشه. اما اسکریپتها هربار باید ترجمه بشن. زبان ماشین زبان صفر و یکه. پردازنده زبان اون برنامه رو میفهمه و سریع اجراش میکنه چون دیگه لازم نیست ترجمه بشه و بعد به پردازنده داده بشه. تفاوت دیگرشون اینه که شما میتونید اسکریپت رو با ادیتورهای متنی مثل gedit یا notepad باز کنید و ببینید و ویرایش کنید. اما یک برنامه رو نمیتونید با ادیتور متنی باز کنید و ازش چیز قابل فهمی استباط کنید و ویرایش کنید. تفاوت دیگرشون اینه که در برنامه ها، در زمان نوشتن سورس کد، شما برای اجرا برنامه و اجزای داخلش مقدار حافظه تعیین میکنید. مثلا میگید برای اعداد صحیح ۳۲ بیت جا میخواد برنامه م. زیرا برنامه ای که اجرا میشه در رم یا حافظه اصلی مستقر میشه تا بعد از پردازش شدن، و باید براش مشخص کرده باشید که سیستم عامل چقد فضا بده به این برنامه تون. اما اسکریپتها تخصیص حافظه ندارن. بلکه برنامه ای که اجراشون میکنه به سیستم عامل میگه که چقدر فضا میخواد. سخن آخر اینکه هردوشون خوبن و نمیتونن جای همدیگه رو پر کنن. یه جاهایی اسکریپت چنان کاربردی داره که معقول نیست ازش چشم پوشید. یه جاهایی فقط اسکریپت به کار میاد. پس به چشم یه چیز بیکار نگاش نکنید. C زبان برنامه نویسیه. یعنی بعد از نوشتن سورس کد و کامپایل کردن ( در مورد کامپایل در قسمتهای آینده مفصل توضیح میدم) برنامه اجرایی ساخته میشه به زبان دودویی یا Binary. این برنامه از همین الان قابلیت اجرا رو داره.

آخرین ویرایش توسط Ritchie (2018-08-08 06:44:18)

آفلاین

#4 دیروز 09:24:46

Ritchie
عضو
ثبت شده: 2018-08-06
ارسال ها: 8

پاسخ: Cات را قورت بده.

دوستان ببخشید این مدت یه کم کار داشتم نتونستم سریع ادامه مبحث قبل رو برم. چند روز پیش اومدم کلی نوشتم بعد هنگام ارسال لاگ آوت شدم و هرچی رشته بودم در یک آن پنبه شد. امروز به کمک خدا ادامه شو میریم.

آفلاین

پانوشت انجمن

پشتیبانی توسط تیم آرچ لینوکس ایران و نیرو گرفته با FluxBB