🚀 𝗙𝗿𝗼𝗺 𝗖𝗼𝗱𝗲 𝘁𝗼 𝗖𝗼𝗻𝘀𝗼𝗹𝗲: 𝗛𝗼𝘄 𝗬𝗼𝘂𝗿 “𝗛𝗲𝗹𝗹𝗼 𝗪𝗼𝗿𝗹𝗱!” 𝗣𝗿𝗼𝗴𝗿𝗮𝗺 𝗖𝗼𝗺𝗲𝘀 𝘁𝗼 𝗟𝗶𝗳𝗲 𝗶𝗻 .𝗡𝗘𝗧 𝗖𝗼𝗿𝗲.
Ever wondered what happens under the hood when you hit “Run” on a Hello World! program? Let’s follow the journey of code from the moment you click the button to seeing output on the console screen.
🖱️ 𝟭. 𝗖𝗹𝗶𝗰𝗸𝗶𝗻𝗴 ‘𝗥𝘂𝗻’ – 𝗧𝗵𝗲 𝗖𝗼𝗺𝗽𝗶𝗹𝗮𝘁𝗶𝗼𝗻 𝗕𝗲𝗴𝗶𝗻𝘀
Clicking “Run” triggers the 𝗖# 𝗖𝗼𝗺𝗽𝗶𝗹𝗲𝗿 (csc.exe) to convert your code into a .NET-compatible language known as 𝗜𝗻𝘁𝗲𝗿𝗺𝗲𝗱𝗶𝗮𝘁𝗲 𝗟𝗮𝗻𝗴𝘂𝗮𝗴𝗲 (𝗜𝗟) 𝗰𝗼𝗱𝗲. This IL code is saved in an assembly file, like HelloWorld.exe or HelloWorld.dll, ready for execution.
🔄 𝟮. 𝗜𝗻𝘁𝗲𝗿𝗺𝗲𝗱𝗶𝗮𝘁𝗲 𝗟𝗮𝗻𝗴𝘂𝗮𝗴𝗲 (𝗜𝗟) 𝗖𝗼𝗱𝗲 – 𝗧𝗵𝗲 𝗠𝗶𝗱𝗱𝗹𝗲 𝗚𝗿𝗼𝘂𝗻𝗱
This IL code, combined with metadata, is machine-agnostic, allowing .NET’s 𝗖𝗼𝗺𝗺𝗼𝗻 𝗟𝗮𝗻𝗴𝘂𝗮𝗴𝗲 𝗥𝘂𝗻𝘁𝗶𝗺𝗲 (𝗖𝗟𝗥) to manage execution across different platforms by translating it into system-specific code.
📥 𝟯. 𝗟𝗼𝗮𝗱𝗶𝗻𝗴 𝗖𝗼𝗱𝗲 𝗶𝗻𝘁𝗼 𝗠𝗲𝗺𝗼𝗿𝘆 – 𝗣𝗿𝗲𝗽𝗮𝗿𝗶𝗻𝗴 𝗳𝗼𝗿 𝗘𝘅𝗲𝗰𝘂𝘁𝗶𝗼𝗻
The 𝗖𝗟𝗥 𝗹𝗼𝗮𝗱𝘀 𝘁𝗵𝗲 𝗮𝘀𝘀𝗲𝗺𝗯𝗹𝘆 (your IL code and metadata) into memory, setting up the application environment. At this point, it organizes the code and data, readying it for execution by the CPU.
🔧 𝟰. 𝗝𝘂𝘀𝘁-𝗜𝗻-𝗧𝗶𝗺𝗲 (𝗝𝗜𝗧) 𝗖𝗼𝗺𝗽𝗶𝗹𝗮𝘁𝗶𝗼𝗻 – 𝗧𝗿𝗮𝗻𝘀𝗹𝗮𝘁𝗶𝗻𝗴 𝗜𝗟 𝘁𝗼 𝗠𝗮𝗰𝗵𝗶𝗻𝗲 𝗖𝗼𝗱𝗲
Once the IL is loaded, the 𝗝𝗜𝗧 compiler steps in, translating IL into machine code tailored to your system. This machine code is what the 𝗖𝗣𝗨 will execute directly, method by method, ensuring optimized performance.
🛠️ 𝟱. 𝗠𝗲𝗺𝗼𝗿𝘆 𝗔𝗹𝗹𝗼𝗰𝗮𝘁𝗶𝗼𝗻
The program’s variables and objects are stored in memory, with smaller values on the stack and larger data on the heap, ensuring efficient organization for smooth execution.
🖥️ 𝟲. 𝗗𝗶𝘀𝗽𝗹𝗮𝘆𝗶𝗻𝗴 ‘𝗛𝗲𝗹𝗹𝗼 𝗪𝗼𝗿𝗹𝗱!’ 𝗼𝗻 𝘁𝗵𝗲 𝗖𝗼𝗻𝘀𝗼𝗹𝗲
Finally, Console.WriteLine(“Hello World!”) sends instructions to the 𝗢𝗦, requesting it to open the console window and display the message. And just like that, “Hello World!” appears on your screen!
Next time you hit “Run,” remember the complex dance between the compiler, CLR, JIT, memory manager, and CPU working together to make your code come to life.
𝘐𝘧 𝘺𝘰𝘶 𝘧𝘰𝘶𝘯𝘥 𝘵𝘩𝘪𝘴 𝘩𝘦𝘭𝘱𝘧𝘶𝘭, 𝘧𝘰𝘭𝘭𝘰𝘸 𝘮𝘦 𝘧𝘰𝘳 𝘮𝘰𝘳𝘦 𝘪𝘯𝘴𝘪𝘨𝘩𝘵𝘴 𝘢𝘯𝘥 𝘵𝘪𝘱𝘴! 𝘋𝘰𝘯’𝘵 𝘧𝘰𝘳𝘨𝘦𝘵 𝘵𝘰 𝘳𝘦𝘱𝘰𝘴𝘵 𝘢𝘯𝘥 𝘴𝘱𝘳𝘦𝘢𝘥 𝘵𝘩𝘦 𝘬𝘯𝘰𝘸𝘭𝘦𝘥𝘨𝘦!
#DotNet #HelloWorld #CodingJourney #FromCodeToConsole
ترجمه:
🚀 𝗙𝗿𝗼𝗺 𝗖𝗼𝗱𝗲 😁𝗼 𝗖𝗼𝗻𝘀 𝗹𝗼 𝗪𝗼𝗿𝗹𝗱!» 𝗣𝗿𝗼𝗴𝗿𝗮𝗺 𝗖𝗼𝗺𝗲𝘀 𝘁𝗼
تا به حال به این فکر کرده اید که وقتی در هلو ورلد «Run» را بزنید، زیر کاپوت چه اتفاقی می افتد! برنامه؟ بیایید مسیر کد را از لحظه کلیک روی دکمه تا دیدن خروجی روی صفحه کنسول دنبال کنیم.
🖱️ . 𝗖𝗹𝗶𝗰𝗸𝗶𝗻𝗴 “𝗥𝘂𝗻” – 𝗧𝗵𝗲 𝗖𝗼𝗺 𝗻𝘀
با کلیک بر روی “Run” کد 𝗖𝗼𝗺𝗽𝗶𝗹𝗲𝗿 (csc.exe) را فعال می کند تا به یک زبان سازگار با NET معروف به 𝗜𝗻𝗁𝗲𝗲 𝗟𝗮𝗻𝗴𝘂𝗮𝗴𝗲 (𝗜𝗟) 𝗰𝗼𝗱𝗲. این کد IL در یک فایل اسمبلی، مانند HelloWorld.exe یا HelloWorld.dll، ذخیره شده و آماده اجراست.
🔄 𝟮 . 𝗜𝗻𝘁𝗲𝗿𝗺𝗲𝗱𝗶𝗮𝘁𝗲 𝗟𝗮𝗻𝗴𝘂𝗮𝗴𝗲 ( 𝗠𝗶𝗱𝗱𝗹𝗲 𝗚𝗿𝗼𝘂𝗻𝗱
این کد IL، همراه با متادیتا، ماشینی است و به دات نت اجازه می دهد 𝗖𝗼𝗺𝗺𝗼𝗻 𝗟𝗮 𝗟𝗥) برای مدیریت اجرا در پلتفرم های مختلف با ترجمه آن به کدهای خاص سیستم.
📥 . 𝗟𝗼𝗮𝗱𝗶𝗻𝗴 𝗖𝗼𝗱𝗲 𝗶𝗻 𝗴 𝗳𝗼𝗿 𝗘𝘅𝗲𝗰𝘂𝘁𝗶𝗼𝗻
𝗖𝗟𝗥 𝗹𝗼𝗮𝗱𝘀 𝘁𝗵𝗲 𝗮𝘀𝘀𝗲𝗺 در این مرحله، کد و داده را سازماندهی می کند و آن را برای اجرا توسط CPU آماده می کند.
🔧 . 𝗝𝘂𝘀𝘁-𝗜𝗻-𝗧𝗶𝗺𝗲 (𝗝𝗜𝗧) 𝗖𝗼𝗺𝗽𝗶 𝘀𝗹𝗮𝘁𝗶𝗻𝗴 𝗜𝗟 𝘁𝗼 𝗠𝗮𝗰𝗵𝗶𝗻
هنگامی که IL بارگیری شد، کامپایلر 𝗝𝗜𝗧 وارد عمل می شود و IL را به کد ماشین متناسب با سیستم شما ترجمه می کند. این کد ماشین همان چیزی است که 𝗖𝗣𝗨 به طور مستقیم، روش به روش، اجرا می کند و عملکرد بهینه را تضمین می کند.
🛠️ . 𝗠𝗲𝗺𝗼𝗿𝘆 𝗔𝗹𝗹𝗼𝗰𝗮𝘁𝗶𝗼𝗻
متغیرها و اشیاء برنامه با مقادیر کوچکتر در پشته و داده های بزرگتر در پشته در حافظه ذخیره می شوند و سازماندهی کارآمد را برای اجرای روان تضمین می کنند.
🖥️ . 𝗗𝗶𝘀𝗽𝗹𝗮𝘆𝗶𝗻𝗴 “𝗛𝗲𝗹𝗹𝗼 𝗪 𝘀𝗼𝗹𝗲
در نهایت، Console.WriteLine (“Hello World!”) دستورالعمل هایی را به 𝗢𝗦 می فرستد و از آن می خواهد که پنجره کنسول را باز کند و پیام را نمایش دهد. و دقیقاً مانند آن، “سلام جهان!” روی صفحه نمایش شما ظاهر می شود!
دفعه بعد که “Run” را زدید، رقص پیچیده بین کامپایلر، CLR، JIT، مدیر حافظه و CPU را به خاطر بیاورید که با هم کار می کنند تا کد شما زنده شود.
𝘐𝘧 𝘺𝘰𝘶 𝘧𝘰𝘶𝘯𝘥 𝘵𝘩 𝘦 𝘧𝘰𝘳 𝘮𝘰𝘳𝘦 𝘪𝘯𝘴𝘪 𝘋𝘰𝘯’𝘵 𝘧𝘰𝘳𝘨𝘦𝘵 𝘵 𝘩𝘦 𝘬𝘯𝘰𝘸𝘭𝘦𝘥𝘨𝘦!
#DotNet #HelloWorld #CodingJourney #FromCodeToConsole