تخصیص حافظه به معنای اختصاص بخشهای مختلف حافظه به آرایهها یا متغیرها است. تخصیص حافظه برای آرایههای داینامیک در زمان اجرا انجام میشود.
مترجم (Compiler) یک برنامه نرمافزاری است که کد منبع نوشتهشده به یک زبان برنامهنویسی سطح بالا را به زبان ماشین یا زبان اسمبلی تبدیل میکند تا کامپیوتر قادر به درک و اجرای آن باشد. مترجمها بهطور معمول برای تبدیل کدهای نوشتهشده توسط برنامهنویسان در زبانهای مانند C، C++، جاوا و پایتون به کدهای قابل اجرا در سطح سختافزار استفاده میشوند. این فرایند تبدیل کد به کد ماشین بهطور کامل در یک مرحله انجام میشود و پس از آن، برنامه میتواند بهطور مستقیم اجرا شود.
فرآیند کار مترجم شامل چند مرحله است: ابتدا کد منبع توسط مترجم تحلیل میشود تا ساختار دستورات و نحو آن شناسایی شود. سپس این کد به زبان میانهای تبدیل میشود که معمولاً به کد ماشین نزدیک است. در نهایت، این کد میانه به کد باینری نهایی تبدیل میشود که سیستمعامل میتواند آن را اجرا کند. در طول این فرآیند، مترجم معمولاً اشتباهات نحوی و منطقی در کد منبع را شناسایی کرده و گزارش میدهد.
مترجمها نسبت به مفسرها (Interpreter) تفاوت دارند. مفسرها کد را خط به خط اجرا میکنند و نیازی به ایجاد فایل اجرایی ندارند، اما مترجمها کد را بهطور کامل به کد اجرایی تبدیل میکنند. این ویژگی باعث میشود که برنامههای کامپایلشده معمولاً سریعتر از برنامههای مفسر شده اجرا شوند، زیرا کد ماشین از پیش آماده است و نیازی به تفسیر مجدد ندارد. اما فرآیند کامپایل زمانبر است و برای هر تغییر در کد منبع نیاز به کامپایل مجدد وجود دارد.
مترجمها معمولاً از ویژگیهای بهینهسازی برای افزایش سرعت و کاهش حجم کدهای خروجی استفاده میکنند. این بهینهسازیها میتوانند شامل کاهش تعداد دستورات، بهینهسازی مصرف حافظه و کاهش زمان اجرای برنامه باشند. بسیاری از مترجمهای مدرن، مانند GCC برای زبان C و C++، بهطور خودکار برخی از این بهینهسازیها را انجام میدهند تا برنامههای بهینه و سریعتری تولید کنند.
یکی از ویژگیهای مهم مترجمها این است که آنها کدهای سطح بالا را به زبانهایی تبدیل میکنند که میتوانند مستقیماً توسط پردازندهها اجرا شوند. بهعنوان مثال، برنامهای که به زبان C نوشته شده باشد، پس از کامپایل شدن به زبان اسمبلی یا کد ماشین تبدیل میشود که پردازنده قادر به اجرای آن است. این فرایند بهطور قابل توجهی باعث افزایش کارایی برنامهها در مقایسه با استفاده از زبانهای سطح بالا یا زبانهای مفسری میشود.
در نهایت، مترجمها بهعنوان ابزارهای حیاتی در توسعه نرمافزار شناخته میشوند که فرآیند تبدیل کدهای سطح بالا به زبان قابل فهم برای ماشین را تسهیل میکنند. این ابزارها نقش مهمی در اجرای دقیق و سریع برنامهها ایفا میکنند و باعث میشوند که برنامهنویسان بتوانند کدهای خود را بهطور کارآمدی برای اجرا در سیستمهای مختلف تهیه کنند. برای اطلاعات بیشتر در مورد مترجمها و نحوه عملکرد آنها در پردازش کدهای برنامهنویسی، میتوانید به سایت saeidsafaei.ir مراجعه کنید و از اسلایدهای محمد سعید صفایی بهره ببرید.
در این جلسه، در تکمیل مباحث جلسه دوم، به بررسی سلسله مراتب حافظه و نحوه اندازهگیری حافظه در سیستمهای کامپیوتری پرداخته میشود. همچنین، مفاهیم سیستم اعداد، مبناها و نحوه تبدیل مبنای دسیمال به دودویی و برعکس مورد بحث قرار خواهند گرفت. هدف این جلسه، درک اصول اندازهگیری و تبدیل دادهها در سیستمهای کامپیوتری است.
تخصیص حافظه به معنای اختصاص بخشهای مختلف حافظه به آرایهها یا متغیرها است. تخصیص حافظه برای آرایههای داینامیک در زمان اجرا انجام میشود.
اندازه آرایه به تعداد خانههای آن اشاره دارد که باید در هنگام تعریف آرایه مشخص شود.
ابعاد آرایه به تعداد محورهایی گفته میشود که دادهها در آنها سازماندهی شدهاند. آرایهها میتوانند یکبعدی، دوبعدی، یا چندبعدی باشند.
مرکز کنترل شبکه که مسئول مدیریت و تخصیص منابع در شبکه است، بهویژه در روشهای دسترسی پویا مانند DDMA.
هوش مصنوعی کوانتومی به استفاده از رایانههای کوانتومی برای پردازش دادهها و بهبود عملکرد هوش مصنوعی اطلاق میشود.
پردازش سیگنال دیجیتال (DSP) به استفاده از الگوریتمها برای تجزیه و تحلیل و پردازش سیگنالهای دیجیتال برای کاربردهای مختلف اطلاق میشود.
ثباتها یا رجیسترها حافظههای بسیار سریع و کوچک هستند که درون پردازنده قرار دارند. آنها برای ذخیرهسازی دادهها و دستورالعملهای پردازش شده با سرعت بالا استفاده میشوند.
IDE یا محیط توسعه یکپارچه، نرمافزاری است که برای کمک به برنامهنویسان و توسعهدهندگان طراحی شده و شامل ویرایشگر کد، کامپایلر و ابزارهای دیگر برای نوشتن و اصلاح کدهای برنامه است.
فراخوانی بهوسیله مرجع یعنی زمانی که آدرس حافظه متغیر به تابع ارسال میشود و در نتیجه تغییرات انجامشده در داخل تابع روی متغیر اصلی اثر میگذارد.
زندگی مصنوعی به مطالعه و شبیهسازی فرآیندهای زیستی گفته میشود که به ساخت موجودات مصنوعی شبیه به موجودات زنده میپردازد.
روش مکمل دو برای نشان دادن اعداد منفی در سیستمهای دودویی است که با معکوس کردن بیتها و اضافه کردن یک انجام میشود.
آرایه دو بعدی آرایهای است که از سطرها و ستونها تشکیل شده و برای ذخیره دادههایی مانند جدولها استفاده میشود.
پورتهایی که برای اتصال دستگاههای کاربری به سوئیچها استفاده میشوند و به یک VLAN خاص تعلق دارند.
بهینهسازی یادگیری عمیق به تکنیکهایی اطلاق میشود که برای بهبود عملکرد مدلهای یادگیری عمیق به کار میروند.
نویز ناشی از تداخل سیگنالهای رادیویی از منابع مختلف مانند فرستندههای رادیویی و تلویزیونی.
روش ارتباطی یک به یک که در آن یک دستگاه دادهها را به دستگاه دیگر ارسال میکند.
مدت زمانی که طول میکشد تا یک بسته از مبدأ به مقصد برسد. این تأخیر میتواند انواع مختلفی مانند تأخیر پردازش، تأخیر انتقال و تأخیر انتشار داشته باشد.
قراردادهای هوشمند قراردادهای دیجیتالی خوداجرایی هستند که قوانین و شرایط توافقنامهها را بهطور خودکار اجرا میکنند.
دریاچههای داده مکانی برای ذخیرهسازی و تجزیه و تحلیل مقادیر عظیم دادههای ساختاریافته و غیرساختاریافته ایجاد میکنند.
روش دسترسی که در آن دستگاهها بهطور پویا درخواست دسترسی به رسانه میدهند و اولویت دسترسی بر اساس تقاضای دستگاهها تعیین میشود.
عدد مورد استفاده توسط روترها برای تعیین اعتبار و اولویت مسیرهای مختلف که از پروتکلهای مختلف به مقصدهای یکسان ارسال میشود.
شبکهای که به اتصال چند شبکه LAN در یک ناحیه جغرافیایی محدود مانند محوطه دانشگاه پرداخته میشود.
هوش مصنوعی عمومی (AGI) به سیستمهایی اطلاق میشود که قابلیتهای شناختی مشابه انسانها را دارند و قادر به انجام انواع مختلف وظایف هستند.
یک بایت معادل 8 بیت است و برای ذخیرهسازی یک کاراکتر در نظر گرفته میشود.
حلقه do-while مشابه با while است، با این تفاوت که ابتدا دستورالعملها اجرا میشود و سپس شرط بررسی میشود. بنابراین این حلقه حداقل یک بار اجرا میشود.
واحد دادهای است که در پروتکلهای مختلف استفاده میشود. این واحد در هر لایه از مدل OSI تغییر شکل میدهد.
سیستمهای خودترمیمی به سیستمهایی اطلاق میشود که قادر به شناسایی و اصلاح خطاهای خود بدون نیاز به مداخله انسان هستند.
سیستم عددی دهدهی است که در آن از ارقام 0 تا 9 برای نمایش اعداد استفاده میشود.
درمان واقعیت افزوده به استفاده از فناوریهای AR برای درمان بیماریها و بهبود کیفیت زندگی بیماران گفته میشود.
پورت هر سوئیچ که نزدیکترین مسیر به Root Bridge را دارد و دادهها را به سمت آن هدایت میکند.
هوش مصنوعی در دستگاههای جاسازیشده به استفاده از الگوریتمهای هوش مصنوعی برای بهبود عملکرد دستگاههای کوچک و جاسازیشده اطلاق میشود.
فلوچارت نمایشی گرافیکی از فرایندهای یک الگوریتم است که به کمک آن میتوان دستورات و مراحل مختلف را به شکل تصویری سادهتری نمایش داد.
عملگرهای منطقی برای مقایسه و ارزیابی عبارات منطقی استفاده میشوند و میتوانند نتیجهای درست یا غلط را تولید کنند.
محاسبات ابری بومی به استفاده از معماریهای ابری برای توسعه و اجرای برنامهها گفته میشود که مقیاسپذیر، انعطافپذیر و خودکار هستند.
اینترنت کوانتومی به شبکهای گفته میشود که بر اساس اصول فیزیک کوانتومی برای انتقال دادهها با امنیت بالا عمل میکند.