لیست برنامه. فهرست بندی - آنچه در کلمات ساده است: تجزیه و تحلیل کامل مفهوم. دوره های آموزشی ، گزارش عملکردهای دوره کارشناسی

لیست برنامه "demol.c" در شکل نشان داده شده است. 6.7 برنامه نویس نام برنامه را ارائه می دهد. پسوند ".c" مورد نیاز است. متن در ویرایشگر "دفترچه یادداشت 2 برنامه نویس" (مخفف PN2) تایپ می شود که به جای پوسته گرافیکی در بسته WinAVR گنجانده شده است. همچنین ایجاد پروژه ، تصحیح خطا ، تدوین برنامه و حتی برنامه نویسی MK را انجام می دهد.

برنج. 6.7 لیست برنامه "demol.c".

برنج. 6.8 ظاهر برنامه PN2.

ویرایشگر PN2 یک پروژه مستقل با وب سایت خاص خود است. منوی اصلی PN2 در شکل نشان داده شده است. 6.8

روش.

1.3 فایل "WlnAVR-20100110-install.exe" (29 مگابایت) را که روی CD-ROM پیوست قرار دارد ، برای اجرا اجرا کنید. در صورت لزوم می توان این فایل را به صورت رایگان از اینترنت بارگیری کرد. WlnAVR را به صورت پیش فرض در پوشه C: \ WinAVR-20100110 \ نصب کنید.

2. ویرایشگر PN2 را باز کنید: "Start - Programs - WinAVR -20100110 - Programmers Notepad". شماره گذاری خط را فعال کنید: "ابزارها - گزینه ها - عمومی - پیش فرض -<поставить «галочку» возле «Show Line Numbers»>- خوب".

3. یک فایل C جدید در ویرایشگر PN2 ایجاد کنید: "File - New - C / C ++". مطابق شکل ، متن برنامه را از صفحه کلید وارد کنید. 6.7 و آن را روی هارد دیسک ذخیره کنید: "File - Save As ... -<ввести путь и имя файла, например, для однозначности C:\1001\demol.c>- خوب".

از این پس ، اسکرین شات ها (اسکرین شات ها) تنها در مهمترین نقاط عمل برای صرفه جویی در فضا نشان داده می شوند. بقیه تصاویر در حالت گام به گام در آموزش های ویدئویی در سی دی پیوست قابل مشاهده است.

توضیحات فهرست بندی

خط 1 با نظرات شروع می شود ، که توسط دو خط مورب جلو به سمت چپ محدود می شوند. همه متن ها پس از علائم "//" می توانند درباره هر چیزی ، به هر زبانی ، با هر گونه آزادی و اختصار باشند. این اطلاعات دلخواه است که برنامه نویس برای خود ، محبوب خود می نویسد تا در یکی دو ماه به خاطر بسپارد که در واقع در مورد چه چیزی بحث شده است. معمولاً نام کوتاه برنامه و تألیف نشان داده می شود.

خط 2 نیز حاوی نظراتی است ، اما ماهیت فنی دارد. در اینجا یک نمودار مدار برای اتصال نشانگر HL1 و دکمه SB1 به خطوط خاصی از پورت های MK آمده است. نام سیگنال ها مطابق با طرح از dashit در MHKpocxeMyATmega48A است (شکل 6.9).

برنج. 6.9 طرح سیگنال MKATmega48A.

عمل توصیف متنی طرح های ساده در "سربرگ" برنامه در جامعه برنامه نویسانی که در طراحی و اجرای طرح های گرافیکی تنبل هستند ، رایج است و معتقدند "به هر حال همه چیز روشن است".

خط 3 پارامترهای "makefile" را مشخص می کند. برای مرجع ، عملکرد عادی کامپایلر AVR-GCC با دو فایل مورد نیاز امکان پذیر است. مورد اول فایل فهرست با پسوند ".c" ، دوم فایل راهنمای سیستم "makefile" بدون پسوند است. "Makefile" توسط ابزار "MFile" (شکل 6.10 ، توسط JoergWunsch ، آلمان) ایجاد شده در WinAVR ایجاد شده است.

برنج. 6.10 ظاهر برنامه MFile.

روش.

1. ابزار "MFile" را برای اجرا اجرا کنید: "Start - Programs - WinAVR -2010010 - MFile".

2. فیلدهای الگو را به شرح زیر پر کنید (شکل 6.11):

در مورد "Makefile - نام فایل اصلی ... - فایل اصلی" نام پروژه در حال توسعه "demol" را وارد کرده و روی OK کلیک کنید.

در مورد "Makefile - نوع MCU - ATmega" MK "atmega48a" را انتخاب کنید ؛

در مورد "Makefile - سطح بهینه سازی" سطح بهینه سازی "2" را تنظیم کنید. سایر امکانات: "0" - بدون بهینه سازی ، "s" - حداقل طول کدها ، رقم "1" ... "3" سه روش مختلف بهینه سازی هستند و عدد "3" به معنی بهترین گزینه نیست ، همه چیز بستگی به برنامه C خاص دارد ...

لازم نیست بقیه بندهای قالب "makefile" را تصحیح کنید ، بگذارید آنها به عنوان پیش فرض باقی بمانند.

برنج. 6.11 پر کردن فیلدها در برنامه MFile.

برای هر پروژه جدید و نوع جدید MK ، باید "makefile" خود را بسازید ، در حالی که نام پروژه و نوع MK تغییر می کند.

خط 4 شامل نظراتی است که اعداد هگزادسیمال بایت های Low ، High و Ext پیکربندی را مشخص می کند. این ارزشها بعداً هنگام برنامه ریزی فیوزهای MK مورد نیاز خواهد بود.

С «ктг5 از نظر اطلاعات خالی است. بصورت تصویری متن نظر را از بقیه برنامه جدا می کند. به جای یکی ، می توانید دو خط خالی وارد کنید ، که مهم نیست. نکته اصلی بهبود دید است. این بر طول کدهای سیستم عامل MK تأثیر نمی گذارد.

طراحی خارجی فهرست توسط خود برنامه نویس ، بر اساس ایده های خود در مورد زیبایی تصویر و راحتی ارائه اطلاعات ، اختراع شده است. اغلب ، به سبک سرصفحه ، فهرست سطرها و نظرات ، می توان نویسنده برنامه را شناسایی کرد یا پرتره روانشناختی او را نوشت. یادداشت های جالب در این مورد در تک نگاری توسط آلن گلوب ارائه شده است.

خط 6 توسط پیش پردازنده کامپایلر ارائه می شود. این یک عبارت C یا یک نظر نیست. نام پیچیده است ، اما معنی آن ساده است. پیش پردازنده (پیش پردازنده) برنامه را برای خطوطی که با کاراکتر "#" شروع می شود جستجو می کند. علاوه بر این ، بسته به کلمه کلیدی ، یک عمل خاص را انجام می دهد ، به عنوان مثال ، "تعریف" - مقادیر را به ثابت ها اختصاص می دهد ، "در صورت تعریف" - وضعیت را بررسی می کند ، "inC1ude" - یک کتابخانه از توابع و غیره را متصل می کند.

برای اولین آشنایی ، کافی است بدانید که کتابخانه توابع مجموعه ای از پرونده ها است که متون روشهای استاندارد یا مکرر در آنها قرار می گیرد. در این مورد ، دستورالعمل "# inC1ude" (ترجمه شده از انگلیسی. "Include") کتابخانه سیستم "avr / io.h" را فعال می کند که وظیفه عملکرد پورت های ورودی / خروجی را بر عهده دارد. این کتابخانه در کامپایلرهای مختلف نام متفاوتی دارد ، اما ماهیت یکسان است ، بدون آن نمی توانید هیچ خط پورت MK را کنترل کنید. بنابراین ، اتصال کتابخانه ورودی / خروجی برای همه برنامه های میکروکنترلر C اجباری است.

خط 7 نیز توسط پیش پردازنده کامپایلر پردازش می شود ، اما کلمه کلیدی "تعریف" را دارد. بنابراین ، ثابت INI را اعلام می کند و مقدار ثابتی 255 به آن اختصاص می دهد. نظرات نشان دهنده تبدیل 255 به هگزادسیمال 0xFF و دودویی 0bl 1111111 است. تفاوت بین آنها در حروف "x" و "b" پس از رقم اجباری "0" نهفته است. تناسب اعداد در سیستم های مختلف در جدول آمده است. 6.3

جدول 6.3. تبدیل اعداد از شانزده به دودویی و بالعکس

اگر ثابت INI در جایی از "بدنه" برنامه قرار داشته باشد ، کامپایلر بدون تردید مقدار عددی مشخص شده در خط 7 را به جای آن جایگزین می کند ، یعنی 255. این برای برنامه نویسان هنگام اصلاح لیست های بزرگ هنگامی که ثابت ها در سراسر متن پراکنده هستند بسیار مناسب است. علاوه بر این ، نام یک ثابت می تواند بار معنایی را حمل کند و به عنوان یک سرنخ کلامی عمل کند. به طور خاص ، INI مخفف کلمه انگلیسی "initialization" است که به معنی مقدار اولیه است.

اهمیت قرار دادن ثابت در "سربرگ" برنامه در سادگی جستجوی آن و سرعت ایجاد تغییرات است. به عنوان مثال ، با اصلاح یکبار عدد "255" ، می توانید مطمئن باشید که در همه جای متن به طور خودکار (و بدون خطا!) از طریق ثابت lNI وارد می شود.

برنامه نویس بر اساس عقل سلیم و ترجیحات انسانی نام ثابت را می آورد. طبق یک سنت قدیمی ، نام ثابتها با حروف بزرگ نوشته می شوند. اولین نام باید یک حرف باشد ، به عنوان مثال ، I2CBUS ، T34. خط سیریلیک مجاز نیست.

اعلام ثابت INI را می توان به دو روش معادل دیگر نوشت: "#تعریف INI OxFF" یا "#تعریف INI Obl 1111111".

خط 8 شامل عملگر توصیف کننده متغیر "a" است. یک متغیر را می توان به صورت مجازی به عنوان یک جعبه (جعبه ، جعبه ، جعبه مداد) نشان داد ، جایی که تعدادی از موارد (مهره ، دانه ، کبریت) در آن ذخیره شده است. برای متفاوت جلوه دادن "جعبه ها" از یکدیگر ، آنها روی کیس با کتیبه های مختلف مشخص می شوند ، در این مورد حرف "a". اگر شماره اولیه در توضیحات متغیر مشخص نشده باشد ، در نظر گرفته می شود که "جعبه" خالی است و با صفر (a = 0) مقداردهی می شود. در طول برنامه ، می توانید مواردی را به "جعبه" اضافه کرده و آنها را از آن حذف کنید. افزایش و کاهش مقدار متغیر

حجم "جعبه" بستگی به اظهارنامه اصلی آن دارد. جدول. 6.4 محدودیت های پذیرفته شده در کامپایلر AVR-GCC را نشان می دهد. همانطور که مشاهده می کنید ، اظهارنامه "char unsigned" به شما امکان می دهد 255 مورد را در "box" قرار دهید. همراه با مقدار صفر ("جعبه" خالی) در کل 256 حالت یا 256 بایت وجود خواهد داشت. متغیر با اعلامیه "بدون امضا طولانی" دیگر شبیه به یک صندوقچه نیست ، بلکه یک قطار کامل است که برای 4.2 میلیارد مورد طراحی شده است.

جدول 6.4. ابعاد متغیرهای پذیرفته شده در АУК-ВСС

از آنجا که MK ابزارهایی برای کار با اعداد منفی ایجاد نکرده است ، در ابتدا ، برای اینکه دچار سردرگمی نشوید ، بهتر است فقط از اعداد مثبت در برنامه ها استفاده کنید ، به عنوان مثال. حاوی اعلامیه "بدون امضا"

"پدران-فرماندهان" زبان از قدیم ، آنها نظمی ناگفته را ایجاد کرده اند ، که بر اساس آن نام یک متغیر نباید بیش از 8 نویسه باشد. در کامپایلر AVR-GCC ، این قانون نادیده گرفته می شود و متغیر می تواند هر تعداد کاراکتر مورد نظر شما را شامل شود ، اما بدون تعصب. تنها چیزی که وجود دارد این است که اولین حرف در نام لزوما باید حرف الفبای لاتین باشد ، می توان آن را با حروف ، اعداد ، نمادها دنبال کرد. خط سیریلیک مجاز نیست.

یک متغیر برخلاف ثابت ، دارای تعدادی متغیر (نه یک ثابت) است. برای تشخیص متغیرها از ثابت ها ، آنها با حروف کوچک نوشته می شوند. معمولاً آنها سعی می کنند نام را با معنی مطابقت دهند ، به عنوان مثال ، "شمارش" برای شمارنده ، "داده" برای داده ها ، "تاخیر" برای تاخیر. اگرچه گاهی اوقات متغیرهای یک حرفی ساده تر ، آشنا تر و جمع و جورتر که از جبر مدرسه آشنا هستند ساده تر به نظر می رسند - a، b، c، d، i، j، k، x، y، z.

برنامه نویس برنامه تعیین می کند که چه ابعادی را برای یک متغیر خاص تعیین کند. از آنجا که متغیر "a" در این فهرست محل ذخیره اطلاعات برای جمع آوری اطلاعات از پورت دیجیتالی 8 بیتی "C" است ، بدین معناست که باید حاوی بایت های "دو تا هشتم قدرت" باشد ، به عنوان مثال. از 0 تا 255

جالب است که کامپایلر خطایی ایجاد نمی کند اگر آن را ایمن بازی کنید و متغیر را با حاشیه به عنوان "unsigned long a؛" اعلام کنید. درست است ، این منجر به افزایش غیر ضروری حجم کد از 114 به 126 بایت و بر این اساس ، کاهش جزئی در سرعت اجرای برنامه می شود.

افراط دیگر ، دست کم گرفتن ابعاد است ، به عنوان مثال ، به عنوان مثال ، به جای اعلام "int بدون علامت" ، "char بدون علامت" استفاده می شود. اگر عددی بزرگتر از 255 را در چنین متغیری وارد کنید ، فقط باقی مانده تقسیم بر 256 ذخیره می شود و قسمت اصلی به طور برگشت ناپذیری از بین می رود. از نظر تصویری ، اشیاء از "جعبه" ریخته می شوند. کامپایلر با این فرض که برنامه نویس در وضعیت کافی است و کارهایی را که انجام می دهد درک می کند ، به چنین خطاهایی واکنش نشان نمی دهد. تعیین صحیح و بدون خطای ابعاد متغیرها معمولاً با تجربه همراه است.

خط 9 برای اطلاعات ، مانند خط 5 خالی است. آیا قرار دادن آن در لیست بستگی به اراده برنامه نویس دارد.

خط 10 مملو از نظرات است ، اما برای تنوع آنها در قالب های مختلف هستند. یعنی ، متن در سمت چپ با نویسه های " / *" ، و در سمت راست - با نویسه های " * /" خط کشیده شده است. این سبک از قدیمی ترین نسخه های زبان C سرچشمه می گیرد. بعداً در نظرات از نمادهای "//" استفاده شد که معمولاً برای زبان C ++ استفاده می شود. در WinAVR ، هر دو گزینه دارای حق مساوی برای وجود هستند. املای "جدید" ساده تر و واضح تر است ، و "قدیمی" در برخی از نقاط تنها ممکن است اگر بخواهید در مورد آغازگر عمل نظر دهید.

خط 11 شامل یک فراخوانی معمولی به تابع "اصلی" طبق قوانین موسسه استاندارد ملی آمریکا (ANSI) است. عبارات اختصاری مجاز هستند ، اما توصیه نمی شوند: "int main ()" ، "main ()" ، "main (void)". بعضی اوقات آنها حتی "void main (void)" را می نویسند و بر عدم وجود کامل پارامترهای دریافتی و عبور شده تأکید می کنند. برای MK های ساده که از سیستم عامل های زمان واقعی پشتیبانی نمی کنند ، پیامدهای منفی وجود نخواهد داشت. با این حال ، اگر به آینده فکر می کنید ، بهتر است بلافاصله فرم کامل نوشتن را به خاطر بسپارید ، که در آینده انتقال برنامه های C به سیستم عامل های مدرن تر میکروکنترلر را تسهیل می کند.

خط 12 به طور کامل در زیر اولین مهاربند مجعد باز اختصاص داده شده است. تصادفی نیست که چنین افتخاری به او داده شد. کامپایلر C ، هنگام اجرای خط 12 ، مقداردهی اولیه رجیسترهای MK ، نصب پشته و تخصیص فضای آدرس را انجام می دهد. نیازی به یادگیری مکانیک این فرآیند جواهرات نیست (برخلاف برنامه های Assembler!).

برای یک برنامه نویس ، نکته اصلی این است که دو چیز را که بطور خودکار توسط کامپایلر موجود در WinAVR تولید می شود ، به درستی بیاموزد:

در شروع برنامه ، همه وقفه ها غیرفعال می شوند.

همه خطوط پورت MK به عنوان ورودی بدون مقاومت کششی پیکربندی شده اند.

خط 13. سرانجام ، اولین فرمان برنامه اجرایی در قالب یک دستور تخصیص ظاهر شد. توضیح نمادها:

"DDRB" نام متداول ثبت هشت بیتی DDR درگاه "B" است.

"=" - علامت نوشتن داده ها در ثبت DDRB ؛

"ОЬ" - نشان می دهد که 8 رقم بعدی به صورت کد دودویی خواهد بود.

"11111111" - بیت های شماره دودویی نوشته شده در ثبت DDRB ، مرتب شده به ترتیب 7 ، 6 ، 5 ، 4 ، 3 ، 2 ، 1 ، 0 (مهمترین بیت در سمت چپ ، کمترین بیت در سمت راست) به

در نتیجه اجرای این اپراتور ، همه خطوط پورت "B" روی حالت خروجی تنظیم می شوند ، زیرا همه رقم ها دارای واحد هستند.

بیانیه خط 13 دارای دو فاصله از سمت چپ است. این یک قرارداد قالب بندی متن است که بسیاری از برنامه نویسان به آن پایبند هستند. اگر متن را در ستون اول یا هفتم از سمت چپ ، همانطور که دوست دارید شروع کنید ، کامپایلر "سکوت می کند". تنها یک توصیه وجود دارد: "فهرست برنامه C باید به راحتی قابل مشاهده باشد." به دنبال آن ، در آینده ، تمام متن ها به گونه ای قالب بندی می شوند که مهاربندها در ستون های فرد به صورت عمودی (1 ، 3 ، 5 و غیره) قرار گرفته و در هر ستون فقط یک باز در بالا و یک بسته وجود خواهد داشت. بریس های فرفری در پایین

این دستور یک جزم نیست ، بلکه راهی برای کوتاه کردن فهرست در عرض و طول بدون از دست دادن محتوای اطلاعات است. برنامه نویس "در خانه" ، در لیست های خود ، حق دارد هر تعداد فاصله ، خط خالی و غیره را وارد کند.

خط / 4 در ارتباط با خط 13 عمل می کند ، زیرا وضعیت خاص خط پورت در کنترلرهای AVR توسط دسته ای از دو ثبات DDRx و PORTx تعیین می شود ، که "x" حرف اصلی بندر است ، به عنوان مثال ، B ، C یا D. با توجه به اینکه هر ثبات شامل 8 بیت با شماره از 0 تا 7 (به طور مشروط "z") است ، سپس طرح کلی در امتداد خطوط پورت به شرح زیر است:

DDRx.z = 1 ، PORTx.z = 1 - خروجی سطح بالا ؛

DDRx.z = 1 ، PORTx.z = 0 - خروجی LOW ؛

DDRx.z = 0 ، PORTx.z = 1 - ورودی با مقاومت "کشش" ؛

DDRx.z = 0 ، PORTx.z = 0 - ورودی بدون مقاومت کششی.

خلاصه خطوط 13 و 14: DDRB.0… DDRB.7 = 1 ، PORTB.O = 0 ، PORTB.l = 1 ، PORTB.2… PORTB.7 = 0 ، بنابراین ، خطوط 0 ، 2… 7 بندر ”B "به عنوان خروجی LOW و خط 1 به عنوان HIGH پیکربندی می شود. از آنجا که نشانگر HL1 به خط PB1 متصل است (پین 15 از میکرو مدار DD1 در شکل 6.3) ، خاموش می شود. به نظر می رسد قسمت اولیه تکلیف فنی با موفقیت انجام شد.

خطوط 15 ، 16 مشابه خطوط 13 ، 14 است ، اما برای بندر "C". برای تغییر ، از جایگزینی ثابت lNI استفاده می شود. پس از اجرای خطوط 15 و 16 ، تمام خطوط پورت "C" ، حتی آنهایی که مستقیماً در عملیات دخیل نیستند ، به عنوان ورودی با مقاومتهای "کشش" پیکربندی می شوند. این یک روش استاندارد برای راه اندازی اولیه پورت برای فعال کردن مقاومت های کششی داخلی است که ورودی های CMOS خطوط MCU را در هوا معلق نگه می دارد و هرگونه سر و صدا و مسیرهای برداشت را از بین می برد.

خط 17 مشابه خطوط 13 ، 14 و 15 ، 16 است ، اما برای بندر "D". این به هیچ وجه در مدار الکتریکی دخیل نیست ، اما شما باید آن را به عنوان یک قاعده در نظر بگیرید - برای راه اندازی همه پورت ها بدون استثنا در ابتدای برنامه. خطوط بیکار آنها باید به عنوان ورودی های مقاومت کششی یا خروجی های HIGH / LOW پیکربندی شوند. در آینده ، چنین خودکاری می تواند از برخورد و سوء تفاهم جلوگیری کند.

یک ویژگی خاص اختصاص رجیستر PORTD به مقداری است که قبلاً در خط 13 به ثبت DDRB اختصاص داده شده بود ، به عنوان مثال. شماره دودویی Obl 1111111. این کار برای اهداف آموزشی انجام شد ، زیرا می توانست راحت تر باشد: "PORTD = OxFF؛".

جزئیات دیگر عدم نوشتن در ثبت DDRD است. این یک اشتباه تایپی نیست ، بلکه کاهش عمدی لیست توسط یک خط است ، زیرا وقتی که برق روشن می شود ، طبق برگه داده ، تمام رجیسترهای DDRx ، PORTx به طور خودکار با صفر پر می شوند ، به عنوان مثال. نیازی به پاک کردن اضافی ثبت DDRD نیست.

خط 18 شامل دستور حلقه "while" است. برای اولین آشنایی ، کافی است به یاد داشته باشید که عبارت "while (1)" به معنای اجرای متوالی جملات در خطوط 19 ... 21 در یک حلقه بی نهایت است.

خط 19 شامل یک پرانتز باز و یک دستور تخصیص است. این ترکیب توسط قوانین زبان C مجاز است ، که باعث می شود فهرست از نظر ارتفاع فشرده تر باشد.

پس از اجرای خط 19 ، متغیر "a" بایت وضعیت هشت خط پورت "C" را که از ثبت PINC خوانده شده ذخیره می کند. اگر دکمه SB1 فشار داده نشود ، "a = OxFF" ، و اگر فشار داده شود ، "a = OxFE".

خط 20 محتویات متغیر "a" را یک بیت به چپ منتقل می کند. دو گزینه ممکن است: اگر "a" OxFF قبلی بود ، OxFE می شود و اگر OxFE بود ، OxFD می شود. چرا این کار انجام می شود ، خط بعدی برنامه به شما می گوید.

خط 21 شامل عملگر تخصیص است ، اما در مقایسه با خط 19 ، متغیر "a" و ثبت پورت معکوس می شوند. در C ، این چرخاندن منجر به جایگزینی عملیات خواندن از یک پورت با عملیات نوشتن به پورت می شود. در مجموع ، کد 0xFE (اگر دکمه SB1 فشار داده نشود) یا کد 0xFD (اگر دکمه SB1 فشار داده شود) به پورت "B" منتقل می شود. در حالت اول ، شاخص HL1 خاموش می شود ، در حالت دوم ، می درخشد ، که لازم بود مطابق شرایط مرجع به آن برسیم.

خطوط 22 ، 23 شامل بستن بریس های فرفری است. اگر دو خط عمودی را از آنها "از پایین به بالا" بکشید ، آنها مستقیماً به براکت های باز در خطوط 19 و 12. اشاره می کنند. پرانتز در خط 22 نشان دهنده تکرار حلقه در خطوط 19 ... 21 است. پرانتز در خط 23 در اولین موقعیت از سمت چپ شروع می شود ، بنابراین انتهای تابع "اصلی" و بنابراین برنامه اصلی به پایان رسیده است.

خط 24 حاوی نظراتی در مورد شماره نسخه WinAVR و طول کدهای سیستم عامل است که هنگام کامپایل برنامه توسط سایر کاربران بسیار مفید است. مشخص است که نسخه های WinAVR 100 with با یکدیگر سازگار نیستند ، که برای آنها نمونه های گویا وجود دارد. در نتیجه ، طول کد تدوین شده همان فهرست ممکن است از نسخه به نسخه متفاوت باشد. نتیجه عملی این است که ابتدا باید برنامه را با بسته WinAVR نشان داده شده در خط 24 کامپایل کنید و تنها در نسخه قدیمی تر یا جدیدتر ، طول کد دریافتی را به عنوان جمع چک بررسی کنید.

خواننده محترم حق دارد توجه کند که در مرحله تدوین فهرست برنامه C ، محاسبه مقدار کدها در حافظه MK پیشاپیش غیرممکن بود. صادقانه بگویم ، کتیبه "114 بایت (2.8))" بعداً ، پس از تدوین برنامه اضافه شد. یک مثال واضح از بازخورد وجود دارد که در نمودار ساختاری در شکل 1 نشان داده شده است. 6.1 با خط نقطه ای بین بلوک های "K" و "L" نشان داده شد.

خط 25 کاملاً خالی است ، اما برخلاف سطرهای 5 و 9 ، پایان فیزیکی فهرست را مشخص می کند. بدون این خط نهایی ، کامپایلر یک هشدار ملایم ، اما هنوز ، صادر می کند: "هشدار: خط جدیدی در انتهای فایل وجود ندارد".

قبل از اینکه یک سکه امنیتی یا ارز رمزنگاری شده در اختیار معامله گران در بازارها قرار گیرد ، باید یک فرآیند پیچیده انتخاب را طی کرده و در لیست قرار گیرد. اجازه دهید با کلمات ساده تجزیه و تحلیل کنیم که فهرست بندی در بورس چیست - چه در بورس و چه در ارزهای رمزنگاری شده ، مراحل اصلی برای قرار گرفتن در لیست ، مزایای اصلی که شرکت دریافت می کند ، و ماهیت اصلی آن چیست؟ حذف لیست

لیست کردن چیست

مفهوم فهرست بندی در زمینه های مختلف زندگی ما یافت می شود:

  • بورس سهام و ارزهای رمزپایه- آنها موضوع این مقاله خواهند بود. این در مورد افزودن اوراق بهادار یا رمزنگاری به لیست پلتفرم های معاملاتی است.
  • در تجارت- این به معنی افزودن محصولات یک تولید کننده خاص به مجموعه فروشگاه است.
  • در برنامه نویسی- این کد منبع (متن) برنامه است که با استفاده از کامپایلر به کد اجرایی ترجمه می شود.
  • در املاک و مستغلات- در اینجا قراردادهایی برای فهرست بندی بین صاحب ملک و نماینده فروش که آن را با کمیسیون می فروشد امضا شده است.

ما دو صنعت اخیر را در نظر نخواهیم گرفت. ما علاقه مند به فهرست بندی و همچنین ارزهای رمزنگاری شده هستیم.

فهرست بندی و حذف اوراق بهادار

فهرست در فرهنگ لغت ما از کلمه list ظاهر شده است که از انگلیسی به عنوان "list" ترجمه شده است. فهرست اوراق بهادار در بورس اوراق بهادار روشی برای افزودن سهام ، اوراق قرضه شرکت ها به لیست ابزارهایی است که در پلت فرم نقل قول می شود. پس از آن ، آنها برای خرید و فروش روی آن در دسترس قرار می گیرند.

پس از گذراندن مراحل پذیرش ، اوراق بهادار در فهرست معاملات بورس گنجانده می شود.

اغلب ، شرکت کنندگان در بازار خود لیست را فهرست می نامند. علاوه بر این ، هر سایت لیست خاص خود را دارد.

شروع کننده فهرست اغلب شرکت ناشر است ، با این حال ، در موارد نادر ، صرافی ممکن است تمایل داشته باشد که اوراق بهادار خاصی را در فهرست خود وارد کند ، در صورتی که آنها از قبل از طریق کانال های غیررسمی تقاضای زیادی در میان معامله گران داشته باشند.

برای شرکت ها ، فهرست بندی در بورس دارای مزایای زیادی است و بنابراین تعجب آور نیست که شرکت ها تلاش زیادی را برای انجام این روش انجام می دهند.

لیست صرافی ها مهم است که با IPO اشتباه گرفته نشود. در مورد اول ، این شرکت به دنبال این است که در لیست قیمت یک پلت فرم معاملاتی خاص قرار گیرد. IPO به این معناست که یک شرکت به یک شرکت دولتی تبدیل می شود و اوراق بهادار آن نه تنها از طریق بلکه از طریق سایر کانالها ، برای مثال ، از طریق شعب آن در دسترس سرمایه گذاران قرار می گیرد.

مراحل فهرست بندی

روش فهرست بندی چندین مرحله را در بر می گیرد که یک شرکت انتشار دهنده باید قبل از اینکه اوراق بهادار آن در دسترس سرمایه گذاران قرار گیرد ، طی کند.

  1. همه چیز با تشکیل پرونده شروع می شود. این امر می تواند توسط خود ناشر و شخص نماینده منافع شرکت انجام شود.
  2. سپس مرحله امتحانات فرا می رسد. نمایندگان بورس اوراق بهادار و همه داده های موجود در مورد شرکت را تجزیه و تحلیل می کنند. سودآوری شرکت و نقدینگی دارایی های آن مورد بررسی قرار می گیرد. شرکت موظف است کلیه صورتهای مالی جمع آوری شده طی چند سال گذشته را ارائه دهد.
  3. یک کمیسیون ویژه نتایج بررسی ها را بررسی می کند و تصمیم می گیرد که اوراق بهادار را به فهرست خود اضافه کند یا درخواست را رد کند.
  4. اگر تصمیم مثبت باشد ، هر دو طرف - شرکت و صرافی ، توافق نامه ای را منعقد می کنند.

این روش به طور متوسط ​​1-2 ماه طول می کشد. برای ماندن در لیست ، ناشر ، به عنوان یک قاعده ، باید داده های مورد نیاز را هر سه ماه یکبار به صرافی ارسال کند.

قوانین فهرست بندی اعمال شده توسط طبقه معاملات برای شرکت ها متفاوت است. برخی فقط می توانند به فهرست شرکت هایی که سرمایه آنها حداقل 50 میلیون دلار است ، و زمان حضور آنها در بازار حداقل 3 سال است ، اعتراف کنند. دیگران می توانند برای این و سایر الزامات سطح را بالا یا پایین بیاورند.

اگر همه شرایط برآورده نشده باشد ، اما اوراق بهادار مورد علاقه بورس است ، آنها فهرست اولیه ای از اوراق بهادار را دریافت می کنند - همچنین نامیده می شود پیش لیست... سرمایه گذاران نیز می توانند این سهام را معامله کنند ، اما خارج از دیوارهای صرافی و کف معاملات ، هیچ مسئولیتی در قبال آنها ندارند.

سطوح فهرست بندی

عمدتا ، چندین سطح فهرست در صرافی ها وجود دارد. اولین حق بیمهنقدشوندگی ترین اوراق بهادار با قابلیت اطمینان بالا شامل می شود.

به شرکتها مرحله دومالزامات چندان زیاد نیست و کمترین برای شرکتهایی که برای سوم درخواست می کنند ، به اصطلاح لیست بدون نقل قول... سرمایه گذارانی که اوراق بهادار شرکت های این سطح را خریداری می کنند باید به تنهایی قابلیت اطمینان آنها را تحلیل کنند.

به عنوان مثال ، سایتهای اصلی و جایگزین معتبر هستند. مرحله اول به دو سطح "استاندارد" و "حق بیمه" تقسیم می شود. بازار جایگزین برای شرکتهای کوچک و متوسط ​​در حال توسعه در نظر گرفته شده است که تحت یک روش ساده پذیرفته شده اند.

هر از گاهی ، سایت ها می توانند سطوح فهرست اوراق قرضه ، سهام را افزایش داده یا کاهش دهند یا حتی آنها را به طور کلی از لیست حذف کنند.

فهرست بندی انواع

بین فهرست اولیه و ثانویه تمایز قائل شوید.

فهرست اولیهاین بدان معناست که سهام در سطح مبادله در کشوری که شرکت در آن ثبت شده است در دسترس سرمایه گذاران است.

در لیست ثانویهاوراق بهادار به بازارهای بین المللی آورده می شود و در لیست پلتفرم های خارجی قرار می گیرد. این تنها در صورتی امکان پذیر است که مرحله فهرست اولیه به پایان رسیده باشد.

هنوز هست فهرست دوگانه ،که در آن شرکت به طور مداوم به دنبال ورود به لیست نقل قول چندین پلتفرم تجاری در کشور خود است.

همچنین فهرست بندی متقاطع- در این مورد ، شرکت برنامه هایی را ارسال می کند تا به لیست چندین پلتفرم مبادله در کشورهای مختلف اضافه شود. علاوه بر این ، اگر یکی از آنها افزودن اوراق بهادار را تأیید کند ، از طرف دیگر شرکت این فرصت را پیدا می کند تا روش فهرست بندی را طبق یک طرح ساده تکمیل کند. این نه تنها هزینه های مواد را کاهش می دهد ، بلکه زمان بررسی برنامه را نیز کاهش می دهد.

مزایای ناشر چیست؟

شرکت ها به دلایلی تلاش می کنند تا در بورس اوراق بهادار پذیرفته شوند ، زیرا این امر مزایای متعددی را به آنها وعده می دهد. اولاً جذابیت سرمایه گذاری آنها افزایش می یابد و در نتیجه جذب سرمایه برای توسعه بیشتر آسان تر می شود. مزایا نیز شامل موارد زیر است:

  • رشد سرمایه شرکت با افزایش تقاضا برای اوراق بهادار منتشر شده ؛
  • افزایش دید و اعتماد در جامعه تجاری ؛
  • افزایش نقدینگی سهام ، اوراق قرضه ؛
  • توانایی افزودن به لیست مبادلات خارجی ؛
  • در برخی موارد ، می توانید برای مزایای مالیاتی اقدام کنید.

با این حال ، فراموش نکنید که از این پس به فعالیتهای شرکت توجه بیشتری می شود و هر اقدامی فوراً بر ارزش سهام تأثیر می گذارد. علاوه بر این ، روش فهرست بندی رایگان نیست. تمام معاینات کارشناسی هزینه دارد.

چه چیزی به سرمایه گذاران می دهد

نکته اصلی اعتماد به نفس است. سرمایه گذاران ، سرمایه گذاری در سهام شرکت ، می دانند که قابلیت اطمینان آن توسط متخصصان تأیید شده است. حضور آنها در فهرست مبادلات آنها را از بررسی مستقل قابلیت اطمینان شرکت نجات می دهد.

حذف لیست چیست

اگر اوراق بهادار در لیست نقل قول بورس گنجانده شود ، هیچ تضمینی وجود ندارد که آنها برای همیشه در آنجا باقی بمانند. تحت شرایط خاصی ، سایت می تواند آنها را از آن حذف کند. این امر در موردی اتفاق می افتد ، به عنوان مثال ، اگر صادرکننده از رعایت شرایط مبادله دست بردارد ، به تعهدات خود عمل نکند ، خود را ورشکسته اعلام کند و غیره.

همچنین ارزش سهام ، که با گذشت زمان رشد نمی کند ، می تواند منجر به حذف لیست شود که نشان دهنده تقاضای کم است. اتفاق می افتد که آغازگر حذف لیست خود شرکت است ، به عنوان مثال ، در ادغام شرکت ها.

فهرست ارزهای رمزنگاری شده

فهرست بندی اغلب در محیط ارزهای رمزنگاری شده نیز مورد بحث قرار می گیرد. در اینجا ، سکه ها یا توکن های دیجیتال تمایل دارند در لیست معاملات پلتفرم های مبادله ظاهر شوند.

پروژه های ارزهای رمزنگاری شده تلاش می کنند تا به لیست صرافی های محبوب وارد شوند

الزامات فهرست بندی در مبادلات رمزنگاری متفاوت است. دسترسی به سایتهای بزرگ و معروف بسیار دشوارتر از سایتهای کوچک است. بنابراین ، اکثر پروژه ها با بسترهای تجاری کوچک شروع می شوند.

قیمت صدور

یکی از مسائل اصلی هزینه است . صرافی های کمی شناخته شده می توانند ارزهای رمزنگاری شده را به صورت رایگان به لیست اضافه کنند. ورود به لیست پلتفرم های شناخته شده می تواند هزاران یا حتی ده ها هزار دلار هزینه داشته باشد - قبل از لیست ، برای تجزیه و تحلیل یک سکه پول صرف می شود. هر چند استثنائاتی وجود دارد.

برای مثال ، بایننس پاییز امسال اعلام کرد که هزینه های فهرست بندی به منظور تامین مالی پروژه های خیریه اختصاص می یابد. در عین حال ، هیچ قیمت ثابتی وجود ندارد - توسعه دهندگان خود تعیین می کنند که چقدر می خواهند برای لیست پرداخت کنند. مدیریت Poloniex ادعا می کند که به هیچ وجه برای فهرست بندی پول نمی گیرد.

در ابتدای سال ، روزنامه نگاران Business Insider مقاله ای را منتشر کردند که بر اساس آن حداقل آستانه فهرست صرافی های رمزنگاری شده برای پروژه های ICO 50،000 دلار است و در برخی موارد می تواند به 1 میلیون دلار برسد.

مواردی نیز وجود داشت که مدیریت صرافی ها با رشوه هایی برای درج سکه در فهرست مواجه شدند. به عنوان مثال می توان به صرافی Coinnest اشاره کرد - مدیران عملیاتی و فنی آن حدود 890 هزار دلار دستمزد گرفتند تا ارز دیجیتال S -coin را به فهرست معاملات اضافه کنند.

چگونه کار می کند

برای اینکه یک نشانه در لیست قرار گیرد ، اغلب باید یک برنامه ارسال کنید و یک پرسشنامه را در بستر انتخاب شده پر کنید. با این حال ، سکه های محبوب صرافی می توانند به تنهایی در لیست گنجانده شوند ، بدون اینکه منتظر بمانیم تا تیم پروژه این کار را انجام دهد. به عنوان مثال ، بیت کوین (BTC) در هر مبادله ، و به عنوان یک قاعده ، اتریوم (ETH) اجباری است.

چه پرسش هایی بیشتر در پرسشنامه وجود دارد:

  • نام و شرح سکه ؛
  • تاریخ راه اندازی شبکه اصلی و همچنین خود پلت فرم ؛
  • پیوند به Github ؛
  • پیوند به کتاب سفید پروژه ؛
  • پیوند به شبکه های اجتماعی ؛
  • آیا استخراج در شبکه وجود دارد و آیا پیش استخراج وجود داشته است.
  • حداکثر انتشار سکه و غیره

اغلب ، صرافی ها نیز بین کاربران خود مسابقه برگزار می کنند - آنها به ارزهای رمزپایه پیشنهادی رای می دهند و سکه برنده به لیست نقل قول ها اضافه می شود.

Huobi Global یک پلت فرم فهرست بندی ارزهای رمزنگاری شده خودکار را در اواخر تابستان 2018 راه اندازی کرد. این صرافی قصد دارد با کمک آن روند افزودن توکن به لیست معاملاتی را تسریع کرده و آن را شفاف سازد.

تفاوت های ظریف مهم

اولین چیزی که مبادله کنندگان به آن توجه می کنند ارزش سکه و مفید بودن آن برای جامعه است. در درجه دوم امنیت پروژه است ، زیرا اگر شبکه رمزنگاری هک شود ، صرافی نیز آسیب می بیند. آنها مطمئناً به حرفه ای بودن و همچنین شهرت تیم علاقه مند هستند.

به عنوان مثال ، در Bittrex یک مرحله اولیه بررسی یک برنامه و یک برنامه عمیق وجود دارد. اگر متخصصان شرکت در مرحله مقدماتی تصور کنند که سکه شایسته ذکر شدن در صرافی است ، مطالعه دقیق ویژگی های فنی آن ، قابلیت های نوآورانه و انطباق با الزامات بستر آغاز می شود.

سکه هایی که می توانند به عنوان اوراق بهادار شناخته شوند ، صرافی ها سعی نمی کنند آنها را اضافه کنند... به عنوان مثال ، Poloniex بلافاصله از توسعه دهندگان دعوت می کند تا با آزمایش Howie آشنا شوند تا تعیین کنند که آیا یک توکن می تواند این معیارها را برآورده کند یا خیر.

استثنا در میان پلتفرم های اصلی ، صرافی Coinbase است که تأییدیه قانونی لازم را دریافت کرده است و می تواند به طور رسمی از توکن هایی استفاده کند که دارای ویژگی های اوراق بهادار هستند.

جالب است که اگر دارایی با قوانین یک کشور خاص مغایرت داشته باشد ، ممکن است در اختیار کاربران حوزه های قضایی خاص قرار نگیرد.

"تأثیر تبادلات"

پس از افزودن مبادلات رمزنگاری محبوب به لیست ها ، هزینه سکه ها معمولاً به شدت افزایش می یابد-به طور متوسط ​​25-30. این الگو حتی "اثر بورس اوراق بهادار" نامیده شده است. این امر به دلیل این واقعیت است که کاربران بیشتری از سکه مطلع می شوند ، قابل تشخیص است و تقاضا برای آن را افزایش می دهد. با این حال ، اغلب این برخاست کوتاه مدت است و به زودی هزینه شروع به کاهش می کند.

همچنین شرایطی وجود دارد که برعکس ، قیمت توکن ها پس از ورود به لیست معاملات صرافی ها کاهش می یابد. این اغلب زمانی اتفاق می افتد که پروژه بلافاصله پس از آن فهرست بندی می شود و سرمایه گذاران که در حین فروش توکن سرمایه گذاری کرده اند به دنبال این هستند که پول بیشتری را در سکه سریعتر به دست آورند و به طور فعال آن را در صرافی ادغام کنند.

Cryptocoins به دلایل مختلفی از لیست خارج می شود:

  • سود کم معامله گران ؛
  • تغییرات در قوانین ؛
  • هک کردن بلاک چین شبکه رمزنگاری ؛
  • امتناع توسعه دهندگان از حمایت بیشتر سکه ؛
  • شکایات کاربران

توکن ها معمولاً بلافاصله حذف نمی شوند - صرافی چندین هفته به معامله گران فرصت می دهد تا موقعیت های خود را ببندند و وجوه خود را به کیف پول خود برسانند.

فهرست بندی در تجارت

مفهوم فهرست بندی در زمینه معاملات نیز وجود دارد. هنگامی که یک عرضه کننده می خواهد محصولاتش به عنوان مثال در قفسه های یک زنجیره خرده فروشی بزرگ به فروش برسد ، ابتدا باید با مدیریت شرکت موافقت کند تا محصول خود را به لیست اضافه کند.

اگر محصول مورد تقاضای خریداران نباشد ، می تواند مراحل حذف فهرست را نیز طی کند ، در این صورت از قفسه های فروشگاه ناپدید می شود.

هنگام تدوین برنامه ، می توانید پارامتر "l" (فهرست) را تنظیم کنید:

سپس علاوه بر فایل با مجموع کد شی. obj ، مجموع فهرست فایل ها. lst:

  • 1 ؛ جمع asm - برنامه ای که S = A + B را محاسبه می کند
  • 2 0000 بخش داده
  • 3 00000001 a dw 01h
  • 4 0002 0002 b dw 02 ساعت
  • 5 0004 ؟؟؟؟ s dw؟
  • 60006 داده به پایان می رسد
  • 7 0000 بخش کد
  • 8 فرض ds: داده ها
  • 9 0000 BA 0000 شروع می شود: mov dx ، data
  • 10 0003 8E DA mov ds، dx
  • 11 0005 A1 0000r mov ax، a
  • 12 0008 03 06 0002r افزودن تبر ، ب
  • 13 000C A3 0004r mov s ، تبر
  • 14 000F B8 4C00 تبر متحرک ، 4C00h
  • 15 0012 CD 21 int 21h
  • کد 16 0014
  • 17 پایان

فهرست بندی یک جدول شامل چهار ستون است:

    شماره خط.

    آدرس درون یک بخش ، یعنی از ابتدا (افست).

    محتویات حافظه در این آدرس ها. در بخش داده ها ، این مقادیر متغیرها ، در بخش کد ، این کد ماشین دستورالعمل ها است.

    کد اسمبلر.

لیست نظرات نیز ذخیره می شود ، فقط برای صرفه جویی در فضا در اینجا حذف شده است.

از لیست می توانید ببینید که فقط خطوط 9-15 با دستورات پردازنده مطابقت دارد. بقیه خطوط به اصطلاح مربوط می شوند. بخشنامه های مونتاژ

در هر صورت ، اطلاعات سطوح مختلف ظاهر می شود. اطلاعاتی مستقیماً در مورد کار وجود دارد ، و اطلاعاتی در مورد اطلاعات - اطلاعات متا وجود دارد. اینها ، به عنوان مثال ، توضیحات مختلف ، دستورالعمل ها و غیره. دو نوع اطلاعات در منبع منبع زبان اسمبلی وجود دارد:

    دستورات - اطلاعات پردازنده ؛

    دستورالعمل ها - اطلاعات مربوط به خود اسمبلر ، نحوه تدوین برنامه: نحوه ترجمه دستورالعمل ها به زبان ماشین و نحوه قرار دادن داده ها.

در اینجا یک قیاس با انتخاب انواع فرمان وجود دارد. دستورات انتقال داده ، انتقال کنترل و دستورات منطقی حسابی اطلاعات مربوط به کار و دستورات کنترل ماشین - درباره شرایط اجرای آن ، به عنوان مثال. همچنین متا اطلاعات را نشان می دهد.

برنامه مورد بررسی شامل دستورالعمل های زیر است:

    بخش - دستورالعمل برای اعلام آغاز یک بخش ؛

    dw (تعریف کلمه) یک دستورالعمل 16 بیتی برای تعریف داده ها (تخصیص و راه اندازی یک منطقه حافظه) است.

    پایان (بخش پایانی) - دستورالعمل برای اعلام پایان بخش ؛

    فرض - دستورالعمل اختصاص بخش ثبت نام به بخش ؛

    پایان - دستورالعمل نشان دهنده پایان برنامه ، استدلال آن باید برچسب اولین فرمان برنامه - نقطه ورود به برنامه باشد.

همچنین دستورالعمل های زیر برای تعریف داده ها وجود دارد:

    db (تعریف بایت) - دستورالعمل برای تعریف منطقه حافظه در 8 بیت ؛

    dd (تعریف دو کلمه) یک دستورالعمل برای تعریف منطقه حافظه 32 بیتی است.

دستورالعمل هایی وجود دارد که قبل از آنها یک دوره وجود دارد. از این نوع دستورالعمل ها ، ما فقط به دستورالعمل هایی برای تعیین مجموعه فرمان مورد استفاده برای یک مدل پردازنده خاص نیاز داریم ، به عنوان مثال:

    386 - دستورات غیر سیستمی پردازنده i80386 استفاده می شود.

    386p - همه دستورات پردازنده i80386 ، از جمله دستورات سیستم استفاده می شود.

خطوط 3-5 شامل دستورالعمل هایی برای تعریف متغیرهای A ، B و S است. در مجموع ، خطوط 3-5 و 9-15 حاوی اطلاعاتی برای پردازنده است-برنامه ای که شامل دستورالعمل ها و داده ها است. آنها مستقیماً در حافظه کامپیوتر نقشه برداری می شوند.

وقت ملاقات

کد منبع یا برای تولید کد شی استفاده می شود یا توسط مترجم اجرا می شود. هیچ گاه تغییراتی در کد شی ایجاد نمی شود ، فقط در کد اصلی ، و سپس تبدیل مجدد به کد شیء انجام می شود.

یکی دیگر از اهداف مهم کد منبع توصیف یک برنامه است. با استفاده از متن برنامه ، می توانید منطق رفتار آن را بازیابی کنید. نظرات برای سهولت درک کد منبع استفاده می شود. همچنین ابزارهایی وجود دارد که به شما امکان می دهد اسناد را به طور خودکار از کد منبع خود-به اصطلاح-بازیابی کنید. مولد اسناد

علاوه بر این ، کد منبع کاربردهای بسیار دیگری نیز دارد. می توان از آن به عنوان یک ابزار آموزشی استفاده کرد. برنامه نویسان تازه کار ممکن است بررسی کد منبع موجود برای یادگیری تکنیک ها و روش های برنامه نویسی مفید واقع شوند. همچنین به دلیل ماهیت مختصر و بدون ابهام (به طور ایده آل) از آن به عنوان یک ابزار ارتباطی بین برنامه نویسان مجرب استفاده می شود. به اشتراک گذاری کد بین توسعه دهندگان اغلب به عنوان یک عامل م toثر در بهبود تجربه برنامه نویسی ذکر می شود.

برنامه نویسان اغلب کد منبع را از پروژه ای به پروژه دیگر منتقل می کنند که به آن استفاده مجدد کد می گویند ( قابلیت استفاده مجدد نرم افزار).

کد منبع جزء ضروری برای انتقال نرم افزار به سایر سیستم عامل ها است. بدون کد منبع برای هر نرم افزاری ، انتقال یا بسیار دشوار یا غیرممکن است.

سازمان

کد منبع بخشی از نرم افزار (ماژول ، جزء) ممکن است شامل یک یا چند فایل باشد. کد برنامه الزاماً فقط در یک زبان برنامه نویسی نوشته نشده است. به عنوان مثال ، اغلب برنامه هایی که با C نوشته می شوند ، برای اهداف بهینه سازی ، حاوی درج کد زبان اسمبلی هستند. شرایطی نیز وجود دارد که برخی از اجزاء یا قسمتهای یک برنامه به زبانهای مختلف نوشته شوند ، و سپس در یک ماژول اجرایی واحد با استفاده از فناوری موسوم به پیوند کتابخانه ها مونتاژ شوند ( پیوند کتابخانه).

ساختن نرم افزارهای پیچیده به ده ها یا حتی صدها فایل منبع نیاز دارد. در چنین مواردی ، برای ساده سازی ساخت ، معمولاً از فایل های پروژه استفاده می شود که وابستگی بین فایل ها را با کد منبع توصیف می کند و روند ساخت را شرح می دهد. این فایلها همچنین می توانند شامل پارامترهای دیگر کامپایلر و محیط توسعه باشند. برای محیط های مختلف طراحی ، می توان از فایل های مختلف پروژه استفاده کرد ، و در برخی از محیط ها این فایل ها می توانند در قالب متنی مناسب برای ویرایش مستقیم توسط برنامه نویس با استفاده از ویرایشگرهای متنی جهانی باشند ، در محیط های دیگر از فرمت های ویژه پشتیبانی می شود و فایل ها ایجاد و اصلاح می شوند با استفاده از ابزارهای ویژه برنامه ها معمولاً از فایل های پروژه به عنوان کد منبع یاد می شود. در اکثریت قریب به اتفاق محیط های زبانی مدرن ، بدون در نظر گرفتن پیچیدگی سایر کد منبع موجود در پروژه ، لزوماً از فایل های پروژه استفاده می شود. اغلب ، کد منبع همچنین به معنای فایل های منبع حاوی داده های مختلف ، به عنوان مثال ، گرافیک مورد نیاز برای ساخت یک برنامه است.

برای تسهیل کار با کد منبع ، برای کار مشترک روی کد توسط تیم برنامه نویسان ، از سیستم های کنترل نسخه استفاده می شود.

کیفیت

بر خلاف انسان ، هیچ کد "خوب نوشته شده" یا "بد نوشته شده" برای رایانه وجود ندارد. اما نحوه نگارش کد می تواند تأثیر عمیقی بر روند نگهداری داشته باشد. کیفیت کد منبع را می توان با پارامترهای زیر قضاوت کرد:

  • خوانایی کد (از جمله وجود یا عدم وجود نظرات در مورد کد ؛
  • سهولت پشتیبانی ، آزمایش ، اشکال زدایی و رفع اشکال ، اصلاح و انتقال ؛
  • پیچیدگی کم ؛
  • استفاده کم از منابع - حافظه ، پردازنده ، فضای دیسک ؛
  • هیچ نظری توسط کامپایلر نمایش داده نمی شود.
  • بدون "زباله" - متغیرهای بلااستفاده ، بلوک های دست نیافتنی ، نظرات منسوخ غیر ضروری و غیره

که توسط انسان قابل خواندن است. به طور کلی ، هرگونه داده ورودی برای مترجم. کد منبع به ترجمه می شود کد اجراییکاملاً قبل از اجرای برنامه با استفاده از کامپایلر ، یا می توان بلافاصله با استفاده از مترجم اجرا کرد.

وقت ملاقات

کد منبع یا برای تولید کد شی استفاده می شود یا توسط مترجم اجرا می شود. تغییرات فقط در نسخه اصلی اعمال می شود و به دنبال آن دوباره به شی تبدیل می شود.

یکی دیگر از اهداف مهم کد منبع توصیف یک برنامه است. با استفاده از متن برنامه ، می توانید منطق رفتار آن را بازیابی کنید. نظرات برای سهولت درک کد منبع استفاده می شود. همچنین ابزارهایی وجود دارد که به شما امکان می دهد اسناد را به طور خودکار از کد منبع خود-به اصطلاح-بازیابی کنید. مولد اسناد

علاوه بر این ، کد منبع کاربردهای بسیار دیگری نیز دارد. می توان از آن به عنوان یک ابزار آموزشی استفاده کرد. برنامه نویسان مبتدی ممکن است برای یادگیری تکنیک ها و روش های برنامه نویسی ، بررسی کد منبع موجود مفید واقع شود. همچنین به دلیل ماهیت مختصر و بدون ابهام ، از آن به عنوان یک ابزار ارتباطی بین برنامه نویسان مجرب استفاده می شود. به اشتراک گذاری کد بین توسعه دهندگان اغلب به عنوان یک عامل م toثر در بهبود تجربه برنامه نویسی ذکر می شود.

برنامه نویسان اغلب کد منبع (به عنوان ماژول ، همانطور که هست یا با اقتباس) را از پروژه ای به پروژه دیگر منتقل می کنند. به این می گویند استفاده مجدد از کد.

کد منبع جزء ضروری برای انتقال نرم افزار به سایر سیستم عامل ها است. انتقال یا بدون منبع منبع هیچ نرم افزاری بسیار دشوار یا غیرممکن است.

سازمان

کد منبع بخشی از نرم افزار (ماژول ، جزء) ممکن است شامل یک یا چند فایل باشد. کد برنامه الزاماً فقط در یک زبان برنامه نویسی نوشته نشده است. به عنوان مثال ، برنامه های C اغلب به دلایل بهینه سازی حاوی درجهای زبان اسمبلی هستند. همچنین ممکن است برخی از اجزاء یا قسمتهای یک برنامه به زبانهای مختلف نوشته شده و سپس در یک ماژول اجرایی واحد با استفاده از فناوری موسوم به پیوند کتابخانهها مونتاژ شوند ( پیوند کتابخانه).

نرم افزارهای پیچیده برای ساخت به ده ها یا حتی صدها فایل منبع نیاز دارند. در چنین مواردی ، برای ساده سازی ساخت ، معمولاً از فایل های پروژه استفاده می شود که وابستگی بین فایل ها را با کد منبع توصیف می کند و روند ساخت را شرح می دهد. این فایل ها همچنین می توانند شامل گزینه هایی برای کامپایلر و محیط طراحی باشند. برای محیط های مختلف طراحی ، می توان از فایل های مختلف پروژه استفاده کرد ، و در برخی از محیط ها این فایل ها می توانند در قالب متنی مناسب برای ویرایش مستقیم توسط برنامه نویس با استفاده از ویرایشگرهای متنی جهانی باشند ، در محیط های دیگر از فرمت های ویژه پشتیبانی می شود و فایل ها ایجاد و اصلاح می شوند با استفاده از برنامه های ویژه ابزار معمولاً از فایل های پروژه به عنوان کد منبع یاد می شود. اغلب ، کد منبع همچنین به معنای فایل های منبع حاوی داده های مختلف ، به عنوان مثال ، گرافیک مورد نیاز برای ساخت یک برنامه است.

سیستم های کنترل نسخه برای سهولت کار با کد منبع و همکاری در کد با تیمی از برنامه نویسان استفاده می شود.

کیفیت

بر خلاف انسان ، هیچ کد "خوب نوشته شده" یا "بد نوشته شده" برای رایانه وجود ندارد. اما نحوه نگارش کد می تواند تأثیر عمیقی بر روند نگهداری داشته باشد. کیفیت کد منبع را می توان با پارامترهای زیر قضاوت کرد:

  • خوانایی کد (از جمله وجود نظرات روی کد) ؛
  • سهولت پشتیبانی ، آزمایش ، اشکال زدایی و رفع اشکال ، اصلاح و انتقال ؛
  • استفاده اقتصادی از منابع: حافظه ، پردازنده ، فضای دیسک ؛
  • هیچ نظری توسط کامپایلر نمایش داده نمی شود.
  • بدون "زباله" - متغیرهای بلااستفاده ، بلوک های دست نیافتنی ، نظرات منسوخ غیر ضروری و غیره.
  • مدیریت خطای مناسب ؛
  • قابلیت بین المللی سازی رابط

کد منبع غیرقابل اجرا

مجوزهای copyleft نرم افزار رایگان نیاز به توزیع کد منبع دارد. این مجوزها اغلب برای کارهای غیر نرم افزاری مانند اسناد ، تصاویر ، فایل های داده برای بازی های رایانه ای استفاده می شوند.

در چنین مواردی ، کد منبع به عنوان شکل ترجیحی کار برای ویرایش در نظر گرفته می شود. همچنین ممکن است در مجوزهای غیر از نرم افزار به عنوان نسخه "شفاف" شناخته شود. این می تواند باشد ، برای مثال:

  • برای یک فایل فشرده با از دست دادن داده - نسخه بدون اتلاف ؛
  • برای ارائه تصویر برداری یا مدل سه بعدی - به ترتیب نسخه بردار و مدل ؛
  • برای تصاویر متنی - همان متن در قالب متن ؛
  • برای موسیقی - یک فایل در قالب داخلی ویرایشگر موسیقی ؛
  • و در نهایت ، خود فایل ، اگر شرایط مشخص شده را دارا باشد ، یا اگر نسخه راحت تری وجود نداشته باشد.

همچنین ببینید