کاربرد برنامه نویسی در کامپیوتر چیست؟
برنامه‌نویسی پژواکی
در علوم رایانه، پژواک توانایی یک پردازه برای آزمون، ، و اصلاح «ساختار» و «رفتار» داخلی خودش می‌باشد.استفادهٔ مؤثر از پژواک، تقریباً همیشه نیاز به یک برنامه دارد: یک چهارچوب طراحی، توصیف کد دهی، کتابخانه شیی، یا تناظر یک پایگاه داده یا ارتباطات موجودیت. برنامه‌نویسی استقرایی
اولین کارگاه‌های آموزشی رویکرد هاو اپلیکیشن‌های برنامه‌نویسی‌استقرایی که همراه با ICML 2005 برگزار شد اپلیکیشن‌های کاربردی را شناسایی کرد که «فراگیری برنامه‌ها یا قوانین بازگشتی فراخوانده می‌شود، ابتدا در حوزه مهندسی نرم‌افزار که در ان یادگیری ساختاری، دستیاران نرم‌افزار و عوامل نرم‌افزار می‌توانند به راحتی برنامه نویسان از کارهای پیش پا افتاده، پشتیبانی برنامه‌نویسی برای کاربران نهایی، یا پشتیبانی از برنامه نویسان تازه‌کار و سیستم‌های آموزش برنامه‌نویسی کمک کنند. حوزه‌های بیشتر کاربرد عبارت اند: از یادگیری قوانین کنترل بازگشتی برای برنامه ریزی هوش مصنوعی، یادگیری مفاهیم بازگشتی در وب کاوی یا برای دگرگونی قالب‌های داده.» فرا برنامه‌نویسی
فرا برنامه‌نویسی ، یک تکنیک برنامه‌نویسی است که در آن برنامه‌های رایانه ای می‌توانند سایر برنامه‌ها را به عنوان داده خود بپذیرند. این بدان معناست که یک برنامه می‌تواند برای خواندن، تولید، تحلیل یا تبدیل برنامه‌های دیگر و حتی اصلاح خود در حین اجرا طراحی شود. در بعضی موارد، این به برنامه نویسان اجازه می‌دهد تا تعداد خطوط کد را برای بیان راه حل به حداقل برسانند، به نوبه خود زمان توسعه را کاهش می‌دهد. این برنامه همچنین با انعطاف‌پذیری بیشتر به برنامه‌ها امکان می‌دهد تا به‌طور مؤثری با شرایط جدید و بدون جبران مجدد رفتار کنند. کتابخانه زمان اجرا
در برنامه نویسی کامپیوتر، کتابخانه زمان اجرا مجموعه‌ای از روال سطح پایین است که توسط کامپایلر به منظور فراخوانی برخی از رفتارهای یک محیط زمان اجرا، استفاده شده‌ است، از طریق قرار دادن تماس با کتابخانه زمان اجرا، در باینری قابل اجرای گردآوری شده محیط زمان اجرا مدل اجرا را پیاده می‌کند. توابع توکار و دیگر رفتارهای اساسی یک زبان برنامه نویسی. در حین اجرای (زمان اجرا) آن نوع برنامه کامپیوتر، فراخوانی به کتابخانه زمان اجرا باعث ارتباطات بین باینری اجرایی و محیط زمان اجرا می‌گردد. کتابخانه زمان اجرا اغلب شامل ساخته شده در توابع برای مدیریت حافظه یا برای استثناء رسیدگی؛ بنابراین، یک کتابخانه زمان اجرا همیشه مختص به پلت فرم و کامپایلر است. چندریسمانی
بسیاری از برنامه ها نیز می توانند از چندین ریسمان، بهره ببرند، از جمله، الگوریتم های اساسی مرتب سازی ، درختان و گراف ها. علاوه بر این ، برنامه نویساني كه بايد مسأله های سنگین پردازشی کنونی در داده کاوي ، گرافيك و هوش مصنوعي را حل كنند ، مي توانند با طراحي راه حل هايي كه به طور موازي اجرا مي شوند ، از قدرت سيستم هاي چند هسته اي جدید حداکثر استفاده را بكنند. کاربردهای هوش مصنوعی
محققان هوش مصنوعی، ابزارهای زیادی را برای حل سخت‌ترین مسئله‌ها در علم کامپیوتر ساخته‌اند. بسیاری از ابداع‌های آنها به وسیله علم کامپیوتر اقتباس شده و دیگر به عنوان بخشی از هوش مصنوعی درنظر گرفته نمی‌شود. طبق گفته راسل و نووینگ در کتاب هوش مصنوعی منتشر شده در سال ۲۰۰۳، مفاهیمی همچون اشتراک زمانی، زبان‌های تفسیری، رابط کاربر گرافیکی، ماوس، توسعه سریع محیط‌های نرم‌افزار، لیست پیوندی ساختمان داده، مدیریت ذخیره‌سازی خودکار، زبان برنامه‌نویسی نسل سوم، برنامه‌نویسی تابعی، برنامه‌نویسی پویا و برنامه‌نویسی شی گرا، همگی در آزمایشگاه‌های هوش مصنوعی توسعه یافتند. استفاده مجدد از کد
در برنامه نویسی کاربردی در بسیاری از موارد که همچون چارچوب ها و الگو های طراحی، می توان از توابع مرتبه بالاتر استفاده کرد.
بهینه‌سازی برنامه
در علم کامپیوتر، مصرف منابع اغلب به نوعی توزیع قانون قدرت پیوسته‌است و اصل پارتو را می‌توان به بهینه‌سازی منابع با توجه به اینکه ۸۰٪ از منابع معمولاً با استفاده از ۲۰٪ از عملیات مورد استفاده قرار می‌گیرد. در مهندسی نرم‌افزار اغلب یک تقریب بهتر است که ۹۰٪ زمان اجرای برنامه کامپیوتری صرف ۱۰٪ از کد انجام می‌شود (قانون ۹۰/۱۰ در این زمینه شناخته می‌شود). برنامه‌نویسی تابعی
در علوم کامپیوتر، برنامه‌نویسی تابعی یک رویکرد برنامه‌نویسی است که در آن برنامه‌ها توسط محاسبه و ترکیب توابع ساخته می‌شوند. برنامه‌نویسی تابعی یک رویکرد برنامه‌نویسی اعلانی است که در آن تعریف توابع درخت‌هایی از عبارت‌ها هستند که هر کدام از این عبارات به جای یک توالی از عبارات دستوری که وضعیت برنامه را تغییر می‌دهند؛ صرفاً یک مقدار برمی‌گردانند. یک برنامه چند داده
کامپیوترهای کنونی امکان ترکیب بسیاری از قوانین و حالت‌های موازی را برای دستیابی به حداکثر میزان بهره‌وری به برنامه‌نویس می‌دهند. یک برنامه توزیع شده حافظه که از MPI استفاده می‌کند می‌تواند روی تعداد بسیار زیادی از گره‌ها اجرا گردد، هر گره می‌تواند یک کامپیوتر با حافظه اشتراکی باشد و به صورت موازی در چندین پردازنده توسط OpenMP اجرا شود. درون هر پردازنده، دستور العمل‌های برداری SIMD (معمولاً به صورت اتوماتیک توسط کامپایلر اجرا می‌شوند) و دستورالعمل‌های Superscalar (که معمولاً توسط CPU به صورت مستقل اجرا می‌گردند) مانند Pipelining و استفاده از چندین واحد عملیاتی مجزای موازی برای دستیابی به حداکثر سرعت در هر پردازنده استفاده می‌شوند. ریزمعماری
در منطق کنترل، ترکیبی از شمارنده ی چرخه، وضعیت چرخه (بالا یا پایین)، و بیت های رجیستر کدگشایی دستورالعمل، مشخص می کند که دقیقاً هر قسمت از کامپیوتر باید چه کاری انجام دهد. برای طراحی منطق کنترل می توان جدولی از بیت ها را ایجاد کرد که در هر چرخه از هر دستورالعمل، سیگنال های کنترل به هر قسمت از کامپیوتر را مشخص می‌کند. سپس این جدول منطقی را می‌توان در یک نرم افزار شبیه ساز که کد تست را اجرا می کند، تست کرد. اگر این جدول منطقی، در یک حافظه قرار داده شود و به شکل واقعی برای به راه انداختن یک کامپیوتر واقعی استفاده شود، آنگاه به آن یک ریز برنامه گویند. در برخی طراحی های کامپیوتری، این جدول منطقی به فرم منطق ترکیبی ساخته شده از گیت های منطقی، بهینه‌سازی می‌شود که معمولاً این کار با استفاده از یک برنامه کامپیوتری که منطق را بهینه سازی  می کند، انجام می شود. کامپیوتر های قدیمی از طراحی منطقی در موقع لزوم، برای کنترل استفاده می کردند تا زمانی که آقای Maurice Wilkes این روش جدولی را کشف کرد و آن را ریز برنامه نویسی نامید. صفحه‌بندی (رایانه)
در محیط‌های اشتراکی و چند کاربره چندین کاربر ممکن است یک برنامه را اجرا کنند که ممکن است کد و داده‌اش در صفحات مجزا باشند. برای کاهش استفاده از حافظه اصلی تمامی کاربران یک نسخه از برنامه را استفاده می‌کنند. در داخل جدول آدرس دهی صفحات، صفحات هر پردازه اشاره به یک نسخه از برنامه انجام می‌دهند در حالی که صفحاتی که به داده اشاره می‌کنند برای هر پردازه متفاوت هستند. برنامه‌نویسی رایانه‌ای
برنامه‌سازی رایانه‌ای یا برنامه‌نویسی رایانه‌ای همان فرایند طراحی و ساخت یک برنامه رایانه‌ای اجراپذیر برای به‌دست‌آوردن یک نتیجه رایانشی خاص، یا انجام یک عمل خاص است. برنامه‌نویسی شامل عمل‌هایی مثل: تحلیل، ایجاد الگوریتم‌ها، رخ‌نمانگاری دقت الگوریتم‌ها و مصرف منابع، و پیاده‌سازی آن الگوریتم‌ها به یک زبان برنامه‌نویسی انتخاب شده‌است (که معمولاً به آن کدگذاری (کدینگ) گفته می‌شود). کد منبع یک برنامه به یک یا بیشتر زبان نوشته می‌شود که این زبان برای «برنامه‌نویس» قابل فهم است (به جای کد ماشین که به صورت مستقیم توسط واحد پردازش مرکزی اجرا می‌شود). هدف از برنامه‌نویسی، پیداکردن ترتیبی از دستورالعمل‌ها است که انجام یک عمل را در یک رایانه، معمولاً برای حل‌کردن یک برنامه داده شده، خودکارسازی می‌کند (که می‌تواند تا حد یک سیستم‌عامل پیچیده باشد). بنابراین، یک برنامه‌نویسی حرفه‌ای نیاز به مهارت در چندین موضوع متفاوت دارد، که شامل دانش ، الگوریتم‌های خاص، و منطق صوری است. گرافیک رایانه‌ای (علوم رایانه)
کاربردهای مشترک گرافیک سه بعدی : گرافیک سه بعدی در برنامه‌های کامپیوتری جدید کاربرد بسیاری دارد. استفاده که برنامه‌ها از گرافیک سه بعدی می‌کنند از بازی‌های تعاملی سه بعدی تا شبیه‌سازی و پزشکی و مصارف شغلی متفاوت است. محصولات پر کیفیت سه بعدی راه خودشان را به سمت فیلم‌ها و صنعت و آموزش به خوبی پیدا کرده‌اند. برنامه نویسی واکنشی
دسته نسبتاً جدیدی از زبان های برنامه نویسی از قید ها (قوانین) به عنوان مفهوم اصلی برنامه نویسی استفاده می کنند. این شام ل واکنش به حوادث است که همه محدودیت ها را حل میکند. این نه تنها واکنش های مبتنی بر رویداد را تسهیل می کند ، بلکه باعث می شود برنامه های واکنشی در درستی نرم‌افزار نقش داشته باشند. یک مثال از زبان برنامه نویسی واکنش پذیر مبتنی بر قاعده ، Ampersand است که در جبر رابطه ایجاد شده است. برنامه رایانه‌ای
به فرایند نوشتن و ویرایش کد منبع، برنامه‌نویسی گفته می‌شود. گاهی به فرایند طولانی مدّت برنامه‌نویسی، توسعه نرم‌افزار گفته می‌شود. انجام این کار در چارچوب اصول مهندسی، مهندسی نرم‌افزار نامیده شده‌است. بازگشت (علوم رایانه)
در ریاضیات کاربردی و به خصوص کامپیوتر، مسائل فراوانی وجود دارد که حل آن‌ها را به سادگی می‌توان به صورت یک الگوریتم بازگشتی نشان داد. یک الگوریتم بازگشتی مانند یک تابع یا یک دنباله بازگشتی تعریف می‌شود فرمان‌های الگوریتم به‌طور مکرر و با پارامترهای مختلف اجرا می‌شوند تا به فرمان بنیادی الگوریتم برسیم. آنگاه تمام مقادیری را که محاسبهٔ آن‌ها انجام نشده‌است را به صورت بازگشتی محاسبه می‌نماییم تا فرمان مورد نظر اجرا شود. یک روش متداول برای آسان‌سازی مسائل این است که آن‌ها را به زیر مسائلی از همان نوع تقسیم بندی کنیم. این روش با نام گویشی کردن شناخته می‌شود. به عنوان یک تکنیک برنامه نویسی کامپیوتر، به این روش تقسیم و غلبه اطلاق می‌شود. و کلید راه حل تعداد زیادی از مسائل کامپیوتری مهم است و یک بخش اساسی می‌باشد. تمام زبان‌های برنامه‌نویسی که امروز مورد استفاده‌اند تعریفی مستقیم از توابع بازگشتی در خود دارند. وقتی چنین تابعی فراخوانی می‌شود، کامپیوتر(برای اکثر زبان‌هایی که پشته دارند) یا خود کد زبان instanceهای مختلف تابع را (با فراخوانی پشته، هر چند روش‌های دیگر هم مورد استفاده قرار می‌گیرند). برعکس آن همهٔ توابع بازگشتی می‌توانند به کمک پشته به یک تابع غیر بازگشتی تبدیل شوند. اکثر توابع و روش‌هایی که می‌توانند بوسیلهٔ کامپیوتر ارزشیابی شوند بدون استفاده از غیر بازگشتی کردن قابل بازگشتی شدن هستند. بعضاً الگوریتم‌های بازگشتی را می‌توان به کمک زبان‌های برنامه‌نویسی پیاده‌سازی کرد که به این برنامه‌ها برنامه‌های بازگشتی اطلاق می‌شود. مانند الگوریتم‌های مرتب سازی، فاکتوریل، یافتن ب.م.م، و ... . در زیر به چند نمونه از برنامه‌های بازگشتی معروف اشاره می‌کنیم: یک مثال متداول برای برنامه‌های بازگشتی، محاسبهٔ فاکتوریل برای اعداد طبیعی است: مدل وی
در برنامه‌نویسی کامپیوتر، تست هر واحد منحصر به فرد همان کد تست می‌شود تا مشخص گردد که آیا آن واحد برای استفاده مناسب هست یا نه؟ هر واحد کوچکترین قسمت قابل آزمایش و تست یک برنامه است. در برنامه‌نویسی رویه ای، یک روال یا یک تابع ممکن است یک واحد برای تست باشد. تست و آزمایش واحدها توسط برنامه نویسان یا افراد خاص تست‌کننده طراحی شود. هدف از آزمون واحد، بررسی درستی انجام منطق برنامه برای قسمت‌های مختلف واحد مورد نظر و پوشش عملیات مورد نیاز است. در این روند برای راحتی کار و بررسی معتبر بودن ورودی‌های واحد مورد نظر از ابزارهای تجزیه و تحلیل ایستا استفاده می‌شود. زبان برنامه‌نویسی
زبان برنامه‌نویسی یک مکانیزم ساخت یافته برای تعریف داده‌ها، و عملیات یا تبدیل‌هایی که ممکن است به‌طور اتوماتیک روی آن داده انجام شوند، فراهم می‌کند. یک برنامه‌نویس از انتزاعات آماده در زبان استفاده می‌کند تا مفاهیم به کار رفته در محاسبات را بیان کند. این مفاهیم به عنوان یک مجموعه از ساده‌ترین عناصر موجود بیان می‌شوند (مفاهیم ابتدایی نامیده می‌شوند). زبان‌های برنامه‌نویسی با بیشتر زبان‌های انسانی تفاوتی دارد و آن این است که نیاز به بیان دقیق تر و کامل تری دارد. هنگام استفاده از زبان‌های طبیعی برای ارتباط با دیگر انسان‌ها، نویسندگان و گویندگان می‌توانند مبهم باشند و اشتباهات کوچک داشته باشند، و همچنان انتظار داشته باشند که مخاطب آن‌ها متوجه شده باشد. اگرچه، مجازا، رایانه‌ها «دقیقاً آنچه که به آن‌ها گفته شده را انجام می‌دهند.» و نمی‌توانند «بفهمند» که نویسنده دقیقاً چه کدی مد نظر داشته‌است] البته امروزه برنامه‌هایی برای انجام این کار تولید شده‌اند و تلاش‌های بسیاری در این زمینه انجام شده ولی هنوز به نتیجهٔ رضایت بخشی نرسیده‌است[. ترکیب تعریف زبان، یک برنامه، و ورودی برنامه به‌طور کامل رفتار خروجی را به هنگام اجرای برنامه (در محدوده کنترل آن برنامه) مشخص می‌کند. برنامه‌های یک رایانه ممکن است در یک فرایند ناپیوسته بدون دخالت انسان اجرا شوند، یا یک کاربر ممکن است دستورهای را در یک مرحله فعل و انفعال مفسر تایپ کند. در این حالت «دستور»ها همان برنامه‌ها هستند، که اجرای آن‌ها زنجیروار به هم مرتبطند. به زبانی که برای دستور دادن به برنامه‌ای استفاده می‌شود، زبان اسکریپت می‌گویند. بسیاری از زبان‌ها کنار گذاشته شده‌اند، برای رفع نیازهای جدید جایگزین شده‌اند، با برنامه‌های دیگر ترکیب شده‌اند و در نهایت استعمال آن‌ها متوقف شده‌است. با وجود اینکه تلاش‌هایی برای طراحی یک زبان رایانه« کامل» شده‌است که تمام اهداف را تحت پوشش قرار دهد، هیچ‌یک نتوانستند به‌طور کلی این جایگاه را پر کنند. نیاز به زبان‌های رایانه‌ای گسترده از گستردگی زمینه‌هایی که زبان‌ها استفاده می‌شوند، ناشی می‌شود: تیغ اوکام
یکی از کاربردهای این اصل در برنامه‌نویسی رایانه این است که برنامه‌های نوشته شده باید بهینه باشند. خصوصیات ویندوز ویستا
فناوری‌های توسعه و برنامه‌نویسی: ویندوز ویستا شامل تعداد زیادی از محیط‌های کاربردی برای برنامه‌نویسی می‌باشد. می‌باشد که شامل یک (Netframework) بهترین آن شامل نسخه ۳ نت فریم ورک و زبان مشترک می‌باشد. همچنین در این نسخه، ۴ برنامه Runtime، کتابخانه کلاس جدید گنجانده شده‌است: - بنیان ارائه ویندوز: یک زیر سیستم محیط کاریر و چارچوبی بر اساس عامل استفاده Direct3D گرافیکی است که از سخت‌افزار گرافیک ۳ بعدی و فناوری ،UI می‌نماید. این برنامه زیربنایی برای تولید برنامه کاربردی و ترکیب آن با برنامه اسناد و فایلهای صوت و تصویری می‌باشد. این در حقیقت نسل جدید برنامه "فرمهای ویندوز" می‌باشد. - بنیان ارتباطات ویندوز: یک زیر سیستم با جهت گیری سرویس پیام رسانی می‌باشد که برنامه و سیستم‌ها را قادر می‌سازد به صورت محلی یا از راه دور با استفاده از برنامه "خدمات شبکه" اجرا شوند. - بنیان جریان کار ویندوز: این تأمین‌کننده وظایف اتوماسیون و نقل و انتقال تلفیقی با استفاده از "ورک فلو" می‌باشد. در حقیقت یک مدل برنامه‌نویسی، موتور و ابزارهای لازم برای ایجاد برنامه‌های کاربردی "ورک فلو" در ویندوز می‌باشد. - فضای کارت ویندوز: از اجزایی است که مشخصات دیجیتالی یک فرد را به صورت امن ذخیره می‌کند و یک محیط کار یکنواخت برای انتخاب هویت جهت انجام یک نقل و انتقال ویژه مثل ورود به یک صفحه خاص شبکه را برای کاربر فراهم می‌کند؛ و سرور ۲۰۰۳ جهت تسهیل در معرفی به و استفاده توسط XP این فناوریها در ویندوز توسعه دهندگان و کاربران نهایی نیز وجود دارند. در هسته مرکزی سیستم‌عامل انجام شده‌است که APIs بعلاوه پیشترفت جدید و مهم به‌طور عمده شامل محیطهای سیستم صوتی با طراحی جدید، شبکه، چاپ، و همچنین تغییرات عمده در زیرساختهای امنیتی، اصلاحاتی در پیاده کردن و نصب برنامه‌ها (برنامه "یکبار کلیک" و برنامه نصاب نسخه ۴) مدل پیشترفته راه اندازهای جدید وسایل متصل به برای API اصلاحاتی در ،NTFS کامپیوتر ("بنیان راه انداز ویندوز")، سیستم فایل کامپیوترهای موبایل (مدیریت منبع انرژی، پشتیبانی جوهر در نوت بوکهای تخت، اسلایدشو)، برنامه بروزرسانی لازم (یا جایگزینی کامل یک برنامه) و بسیاری از زیر می‌باشد. CAPI و Winlogon سیستم‌های هسته مرکزی مثل در ویندوز ویستا API البته بعضی مشکلات برای مهندسین نرم‌افزار که از گرافیک ویندوز DirectX استفاده می‌کنند وجود دارد. بازی‌ها یا برنامه‌هایی که فقط در نسخه ۱۰ ویستا نوشته می‌شوند در ویندوزهای دارای نسخه پایینتر این برنامه قابل استفاده نیستند با نسخه‌های پایینتر به هیچ وجه سازگاری ندارد. طبق مطالب یک وبلاگ DirectX زیرا ۱۰ در ویندوز ویستا وجود دارد: OpenGL وابسته به میکروسافت ۳ راه برای اجرای برنامه به OpenGL برنامه می‌تواند به صورت پیش‌فرض اجرا شود که باعث ترجمه و فراخوانی شده و در نسخه ۱٫۴ آن ساکن می‌شود. راه دیگر اجرای برنامه با استفاده از DirectX API این راه انداز به دو صورت لگاسی و .(ICD) راه اندازی است که کاربر باید آن را تقاضا کند سازگار با ویندوز عرضه می‌شود. استفاده مجدد از کد
استفاده مجدد از کد با هدف صرفه‌جویی در وقت و منابع و کاهش فراوانی و با بهره‌گیری از تجربه‌های با ارزشی که قبلاً به نوعی در فرایند توسعه محصول نرم افزاری بدست آمده‌اند، ایجاد شده است. ایده اصلی در استفادۀ مجدد این است که بخش‌هایی از یک برنامه کامپیوتری که به طور همزمان نوشته شده‌اند، می‌توانند در ساختار برنامه‌های دیگری که بعدا نوشته می‌شوند، استفاده شوند. برنامه‌نویسی مفهوم
برنامه‌نویسی مفهوم یک پارادایم برنامه نویسی است، که بر چگونگی ترجمهٔ مفاهیمی که در ذهن برنامه‌نویس شکل می‌گیرد به آنچه در فضای کد قابل دستیابی است، تمرکز می‌کند. این رویکرد توسط کریستوف دی نچین در سال ۲۰۰۱ با زبان برنامه‌نویسی XL معرفی شد. علم اطلاعات و کامپیوتر
برای فرایند گرفتن الگوریتم داده شده و رمزگذاری آن به زبانی که توسط کامپیوتر قابل فهم و اجرا باشد، انواع مختلف زیادی زبان برنامه‌نویسی و رایانه وجود دارد، با این حال، هدف همه آنها یکسان است: تبدیل الگوریتم‌ها به کد ماشین. پترن (نقش‌مایه، نگاره)
در علوم کامپیوتر ،پترن طراحی نرم‌افزار، به معنای تمپلیت، یک راه حل کلی برای یک مسئله در برنامه‌نویسی است. یک طرح پترن یک طرح کلی قابل استفاده مجدد طرح ساختاری را ارائه می‌دهد که می‌تواند توسعه بسیاری از برنامه‌های رایانه‌ای را تسریع کند. برنامه‌نویسی رایانه‌ای
محیط‌های دانشگاهی و همچنین مهندسین فعال در برنامه‌نویسی هر دو عمیقاً به دنبال کشف و تکمیل الگوریتم‌های کارآمد تر برای گروه مشکلات مشخص شده هستند. برای نیل به این هدف الگوریتم‌ها در ترتیب‌هایی طبقه‌بندی می‌شوند که به عنوان نماد O بزرگ خوانده می‌شوند. این طبقه‌بندی نشانگر استفاده الگوریتم از منابع، مثل زمان اجرا یا انباشت حافظه در ازای اندازه یک داده وارده است. کارآیی کامپیوتر
تنظیم کارایی، بهبود کارایی سیستم است. این معمولاً یک برنامه رایانه ای است، اما می‌توان همین روشها را در بازارهای اقتصادی، دیوان سالاری یا سایر سیستمهای پیچیده نیز اعمال کرد. انگیزه چنین فعالیتی را مشکل کارایی می‌نامند که می‌تواند واقعی یا پیش‌بینی شده باشد. اکثر سیستم‌ها به افزایش بار کاری را تا حدی با کاهش کارایی پاسخ می‌دهند. توانایی یک سیستم در پذیرش بار کاری بالاتر مقیاس پذیری نامیده می‌شود و اصلاح سیستم برای کنترل بار کاری بالاتر مترادف با تنظیم کارایی است. تاریخچه ساخت مترجم
نرم‌افزارهایی که برای کامپیوترهای اولیه نوشته می‌شد عموما به زبان اسمبلی بودند. از دید یک برنامه‌نویس بهتر است که برای توسعه‌ی نرم‌افزار از یک زبان برنامه‌نویسی سطح بالا استفاده کند، و برنامه‌هایی که به زبان برنامه‌نویسی سطح بالا نوشته شده‌اند قابلیت استفاده‌ی مجدد روی کامپیوترهای مختلف را دارند. با این حال، مدتی طول کشید تا کامپایلرها به صورت گسترده مورد استفاده قرار گیرند؛ زیرا کدهای تولیدی توسط کامپایلرها به کارآمدی کدهای دست‌نویس در اسمبلی نبود؛ کامپایلرها گسترش پروژه‌ها را محدود به رعایت قوانین خود می‌کردند و هم‌چنین حافظهٔ محدود کامپیوترهای قدیمی باعث ایجاد مشکلات تکنیکی بسیاری در طراحی مترجم‌ها می‌شد. شبیه‌سازی کامپیوتری
شبیه‌سازی کامپیوتری یک شبیه‌سازی است که در یک کامپیوتر واحد یا شبکه‌ای از کامپیوترها برای بازتولید رفتار یک سیستم اجرا می‌شود. شبیه‌سازی از یک مدل انتزاعی برای شبیه‌سازی سیستم استفاده می‌کند. شبیه‌سازی‌های کامپیوتری یک بخش مفید مدل‌سازی ریاضیاتی بسیاری از سیستم‌های طبیعی در فیزیک، نجوم فیزیک، شیمی و زیست‌شناسی، سیستم‌های انسان در اقتصاد، روانشناسی، علوم اجتماعی و مهندسی شده‌اند. شبیه‌سازی یک سیستم برای اجرای مدل سیستم نشان داده می‌شود. از آن می‌توان برای کشف و به دست آوردن دیدگاه جدید در مورد تکنولوژی جدید و برآورد عملکرد سیستم‌های بسیار پیچیده برای راه حل‌ها آنالیز استفاده کرد. / شبیه‌سازی‌های کامپیوتری از برنامه‌های کامپیوتری که چند دقیقه در گروه‌های مبتنی بر شبکه‌ای از کامپیوترها اجرا می‌شوند تا ساعت‌ها برای شبیه‌سازی‌های در حال انجام که روزها طول می‌کشند متغیر می‌باشند. مقیاس اتفاقاتی که شبیه‌سازی می‌شوند به وسیله شبیه‌سازی‌های کامپیوتری فراتر از هر مقدار ممکن رفته‌است که از مدل‌سازی ریاضیاتی کاغذ و قلم قدیمی استفاده می‌کند. بیش از ۱۰ سال قبل یک شبیه‌سازی جنگ میدانی یک نیروی مهاجم به گروه دیگر شامل مدل‌سازی ۶۶۲۳۹ تانگ، کامیون و وسایل نقلیه دیگر در زمین‌های شبیه‌سازی شده اطراف کویت با استفاده از ابرکامپیوترهای چند گانه در برنامه مدرنیزاسیون کامپیوتر عملکرد بالای DoD بود. مثال‌های دیگر شامل یک مدل یک میلیارد اتمی با تغییر شکل ماده، یک مدل ۲٫۶۴ میلیون اتمی پروتئین ساز پیچیده در تمام موجودات، یک ریبوزم در سال ۲۰۰۵، یک شبیه‌سازی کامل چرخه عمر در ۲۰۱۲ و پروژه بلو برین در EPFL که در می ۲۰۰۵ برای ایجاد اولین شبیه‌سازی کامپیوتری مغز انسان درست در پایین سطح مولکولی آغاز شد. ماکرو (علوم رایانه)
از ماکرو برای فراهم ساختن ترتیبی از دستورالعمل های محاسباتی برای برنامه‌نویس، به صورت یک عبارت برنامه ای منفرد، استفاده می شود. استفاده از ماکروها باعث کمتر «مستعد خطر بودن» و «کم تر خسته کننده بودن» برنامه نویسی استفاده می شود. (از این جهت، به آن ها ماکرو می گویند، که یک بلاک «بزرگ» کد می تواند از یک ترتیب «کوچک» از نویسه ها گسترش بیابند). ماکرو ها اکثرا استفاده از پراسنجه های کلمه کلیدی یا موقعیتی (که مشخص می کنند که برنامه‌ی اتصال شرطی چه چیزی را تولید می کند) را مجاز می داند و از آن ها برای ساخت برنامه های کامل یا مجموعه برنامه هایی برای سیستم عامل، سکوی رایانش، یا انواع دیگر برنامه استفاده می کند. عبارت «ماکرو» از «macro instruction» گرفته شده است، و از این گسترش‌ها در گذشته در اساس برای ساخت کدهای زبان اسمبلی استفاده می شد. برنامه‌نویسی خودکار
در علوم کامپیوتراصطلاح برنامه‌نویسی خودکار () یک نوع از برنامه‌نویسی کامپیوتر است که در آن با استفاده از برخی مکانیسم‌ها به تولید یک برنامه کامپیوتری پرداخته می‌شود و به برنامه نویسان انسانی اجازه می‌دهد در یک انتزاع سطح بالاتر برنامه بنویسند. قطع‌کردن (برنامه‌نویسی)
قطع کردن (stropping) در زبانهای برنامه‌نویسی رایانه ای مورد استفاده قرار می‌گیرد تا کار کامپایلر (یا به عبارت دقیق تر پارسر) آسانتر شود؛ یعنی در توانایی رایانه‌های نسبتاً کوچک و کند در دسترس در روزهای اولیه محاسبات در قرن بیستم باشد. با این حال، روشهای مشابه برای کمک به درک مطلب برای افراد نیز به‌طور معمول مورد استفاده قرار می‌گیرند. برخی از نمونه‌ها عبارتند از: شرط (برنامه‌نویسی)
در علوم کامپیوتر و  در زبان‌های مختلف برنامه‌نویسی، عبارات شرطی، عبارات شرطی و سازه های شرطی از ویژگی‌های است که بسته به ارزیابی درست یا نادرست یک شرایط مشخص شده توسط برنامه‌نویس، محاسبات یا اعمال مختلفی را انجام می‌دهد. این امر همیشه با تغییر انتخاب جریان کنترل بر اساس برخی از شرایط حاصل می‌شود. شمارنده برنامه
شمارنده برنامه (به انگلیسی: program counter = PC)، که معمولاً در اینتل اکس۸۶ و ریزپردازنده ی ایتانیوم نشانگر دستور (به انگلیسی: instruction pointer = IP) و گاهی اوقات نیز دستور آدرس ثبات (به انگلیسی: instruction address register = IAR) نامیده می‌شود، شمارنده دستور یا بخشی از دستور سنجش توالی در ثبات است که نشان می‌دهد رایانه در چه قسمتی از توالی برنامه قرار دارد. در اکثر فرایندها، PC پس از دریافت مجموعه دستورالعمل توسعه میابد و آدرس حافظه ی (نقاط مختلف) دستور بعدی را که باید اجرا شود در خود نگه می‌دارد. (در فرایندهای فراخوانی با اولویت، PC به دستوری که دقیقاً در حال اجرا است اشاره می‌کند) مهندسی کامپیوتر
این تخصص مهندسی رایانه نیاز به دانش کافی از الکترونیک و سیستم‌های الکتریکی دارد. مهندسانی که در این کار هستند بر روی افزایش سرعت، قابلیت اطمینان و بهره‌وری انرژی نسل بعدی مدارهای مجتمع (VLSI) مقیاس بسیار بزرگ و میکروسیستم کار می‌کنند یک مثال از این تخصص کار بر روی کاهش مصرف انرژی الگوریتم‌های VLSI و معماری است. سنجش میزان محبوبیت زبان برنامه‌نویسی
سنجش میزان محبوبیت زبان برنامه‌نویسی () تعیین اینکه کدام زبانهای برنامه‌نویسی «بیشتر مورد استفاده» قرار می‌گیرند دشوار است زیرا معنی این اصطلاح بر اساس زمینه متفاوت است. ممکن است یک زبان بیشترین ساعت برنامه‌نویسی را اشغال کند، دیگری ممکن است بیشترین خط کد را داشته باشد، زبان سوم ممکن است از بیشترین زمان CPU استفاده کند و غیره. برخی از زبانها برای انواع خاصی از برنامه‌ها بسیار محبوب هستند: به عنوان مثال، پایتون برای یادگیری ماشین، جاوا برای توسعه سرور بک اند، C در برنامه‌های جاسازی شده و سیستم عامل‌ها. جاوا اسکریپت در توسعه وب و زبان‌های دیگر برای بسیاری از انواع برنامه‌ها. کامپایل شرطی
در برنامه نویسی کامپیوتر، کامپایل شرطی روش های اجرای کامپایل است که به کامپایلر اجازه می دهد تفاوت هایی را در برنامه اجرایی تولید و توسط پارامترهای ارایه شده در هنگام کامپایل کنترل کند. این تکنیک معمولاً زمانی مورد استفاده قرار می گیرد که این تفاوت ها لازم باشد نرم‌افزار را بر روی سیستم عامل های مختلف یا نسخه های متفاوت کتابخانه ای و یا سخت افزار اجرا کند. پیش‌پردازنده
راهنما، دستورالعملی به همگردان زبان در مورد چگونگی همگردانی برنامه می‌باشد. برنامه‌نویس به جای تولید کد، از راهنماها برای تعیین چگونگی یا حتی به وقوع پیوستن همگردانی کد مبدأ بهره می‌جوید. راهنماها در بسیاری از زبان‌های برنامه‌نویسی نسبتاً سطح پائین، چون C/C++ و اسمبلی مورد استفاده قرار می‌گیرند. در زبان‌های اسمبلی، راهنماها عموماً مشخص‌کننده پایگاه(Platform) مقصد و موارد مشابه می‌باشند. در C/C++ از راهنماها به جهت مقاصدی از قبیل همگردانی شرطی، ماکروها و شمول مورد استفاده قرارمی‌گیرند. باید توجه داشت که راهنماهای پیش‌پردازنده، به مانند دستورهایی هستند که به پیش‌پردازنده داده می‌شوند و بنابراین از قواعد زبان پیروی نمی‌کنند؛ یعنی این راهنماها قواعد املائی و نحوی خاص خود را دارند. زبان اسکریپت‌نویسی
یک زبان اسکریپت‌نویسی یک زبان برنامه‌نویسی است که اجرای وظایف را خودکارسازی می‌کند. اسکریپت‌ها برای محیط‌های زمان اجرای خاص طراحی شده‌اند. اگر از زبان اسکریپت‌نویسی استفاده نشود، وظایف باید تک به تک توسط عامل انسانی اجرا گردد. زبان‌های اسکریپت‌نویسی اکثراً تفسیر می‌شوند (به جای آنکه کامپایل شوند). هر برنامه‌ی اسکریپتی دنباله‌ای از دستورها است که پی‌در‌پی انجام می‌شوند، از این رو به آن «دستورنامه» یا «دست‌نامه» هم می‌گوییم. پایتون (زبان برنامه‌نویسی)
پایتون در نرم‌افزارهای بسیاری به عنوان زبان اسکریپت نویسی استفاده می‌شود نرم‌افزارهایی مثل آباکوس که از روش اجزاء محدود استفاده می‌کند، فری‌کد که اجسام سه بعدی پارامتری را مدل‌سازی می‌کند. بسته‌های انیمیشن سه بعدی مثل تری دی مکس , بلندر , سینما ۴بعدی، لایت‌ویو، هودینی، مایا، مودو , موشن بیلدر، سافت‌ایمیج، نرم‌افزار ایجاد جلوه‌های ویژه مثل نیوک , برنامهٔ دستکاری تصاویر دو بعدی مثل گیمپ اینک‌اسکیپ، اسکربس و پینت شاپ پرو، نرم‌افزارهای نت نویسی مثل اسکور رایتر و کپلا. گنو دیباگر از پایتون برای پرینت زیبا استفاده می‌کند تا ساختارهای پیچیده مثل C++ کانتینر را نشان دهد. شرکت ازری هم‌اکنون در حال ترقی دادن پایتون به عنوان بهترین انتخاب برای نوشتن فایل آغازگر در آرک جی‌آی‌اس است. همچنین از پایتون در بازی‌های ویدئویی استفاده می‌شود. همچنین پایتون به عنوان اولین زبان از سه زبان گوگل اپ انجین پذیرفته شده‌است دو زبان دیگر زبان‌های جاوا و گو هستند. زبان برنامه‌نویسی
مشکل است که مشخص کنیم کدام زبان برنامه‌نویسی بیشتر مورد استفاده‌است، و اینکه کاربرد چه معنی می‌دهد با توجه به زمینه تغییر می‌کند. یک زبان ممکن است زمان بیشتری از برنامه‌نویس بگیرد، زبان دیگر ممکن است خطوط بیشتری داشته باشد، و دیگری ممکن است زمان بیشتری از پردازنده را مصرف کند. برخی زبان‌ها برای کاربردهای خاص بسیار محبوبند. برای مثال: کوبول همچنان در مراکز داده متحد، غالباً روی رایانه‌های بزرگ توانا است؛ fortran در مهندسی برنامه‌های کاربردی، Ada در هوا و فضا، حمل و نقل، نظامی، برنامه‌های واقعی و جاسازی شده در زمان واقعی؛ و C در برنامه‌های تعبیه شده و سیستم‌های عامل؛ و بقیه برنامه‌ها معمولاً برای نوشتن انواع دیگر برنامه‌ها کاربرد دارند.. سامانه استدلال
حل محدودیت ر مشکلات (CSPs). محدودیت‌های برنامه‌نویسی یک محدودیت و یک بیماری است که باید راه حل برای مشکل پیدا شود. محدودیت‌های تعریف شده اعلانی و کاربردی به متغیرهای داخل با توجه به دامنه. محدودیت حل استفاده از جستجوهای پس گرد و محدودیت انتشار تکنیک‌هایی برای پیدا کردن راه حل و تعیین راه حل مطلوب استفاده شود. استخدام فرم خطی و غیر خطی برنامه‌نویسی ممکن است اغلب برای انجام بهینه‌سازی در درون بسیار ترکیبیاتی مشکل فضاهای استفاده شود. برای مثال آن‌ها ممکن است مورد استفاده برای محاسبه بهینه برنامه‌ریزی و طراحی کارآمد مدارهای یکپارچه یا به حداکثر رساندن بهره‌وری در فرایند تولید بکار برده شود. شبیه‌سازی
در برنامه‌نویسی کامپیوتر، یک شبیه‌ساز اغلب برای اجرای برنامه‌ای مورد استفاده قرار می‌گیرد که انجام آن برای کامپیوتر با مقداری دشواری همراه است. مثلاً، شبیه‌سازها معمولاً برای رفع عیب یک ریزبرنامه استفاده می‌شوند. از آن جایی که کار کامپیوتر شبیه‌سازی شده‌است، تمام اطلاعات در مورد کار کامپیوتر مستقیماً در دسترس برنامه دهنده است و سرعت و اجرای شبیه‌سازی را می‌توان تغییر داد. شبیه‌سازها همچنین برای تفسیر درخت‌های عیب یا تست کردن طراحی‌های منطقی VLSI قبل از ساخت مورد استفاده قرار می‌گیرند. در علم نظری کامپیوتر، عبارت شبیه‌سازی نشان دهنده یک رابطه بین سیستم‌های انتقال وضعیت است که در مطالعه مفاهیم اجرایی سودمند می‌باشد. آدرس‌دهی کلمه‌ای
برنامه ای که روی رایانه در حال اجرا می‌باشد و از آدرس دهی کلمه ای استفاده می‌کند، همچنان می‌تواند با شبیه‌سازی دسترسی به واحدهای کوجک تر، با واحدهای کوچک‌تر حافظه کار کند. برای بارگذاری نیاز داریم کلمه را برداشته و سپس بیت‌های مورد نظر را استخراج کنیم. برای ذخیره نیز نیاز داریم کلمه را بارگذاری کنیم، مقادیر جدید را در آن قرار دهیم و پس از بازنویسی بیت‌های مورد نظر آن را مجدداً در کلمه موجود در حافظه ذخیره کنیم. زبان برنامه‌نویسی
زبان‌های برنامه‌نویسی با بسیاری از اشکال دیگر بیان انسان متفاوتند زیرا نیاز به درجهٔ دقت و صحت بیشتری دارند. هنگام استفاده از یک زبان طبیعی برای برقراری ارتباط با افراد دیگر، نویسندگان و گویندگان بشر می‌توانند مبهم باشند و خطاهای کوچکی مرتکب شوند و همچنان انتظار دارند که هدف آنها درک شود. با این حال، به‌طور تصویری، رایانه‌ها «دقیقاً کاری را که به آنها گفته می‌شود انجام دهند» انجام می‌دهند و نمی‌توانند «بفهمند» چه برنامه‌ای را برای برنامه‌نویسی برنامه‌نویس نوشته‌است. ترکیب تعریف زبان، یک برنامه و ورودی‌های برنامه باید به‌طور کامل رفتارهای خارجی را که هنگام اجرای برنامه رخ می‌دهد، در دامنه کنترل آن برنامه مشخص کند. از طرف دیگر، ایده‌های مربوط به یک الگوریتم را می‌توان بدون استفاده از دقت مورد نیاز برای اجرای با استفاده از pseudocode که به زبان طبیعی با کد نوشته شده با یک زبان برنامه‌نویسی متصل می‌شود، به انسان‌ها انتقال داد. رابط کاربر گرافیکی
برنامه‌های کاربردی که در ویندوز اجرا می‌شوند، از مجموعه ثابتی از فهرست‌های گزینش عمودی، جعبه‌های محاوره‌ای و سایر عناصر گرافیکی مانند نوارهای مرور و شمایل‌ها استفاده می‌کنند. این ثبات میان عناصر گرافیکی، مزیت عمده‌ای برای کاربر است، زیرا با یادگرفتن نحوهٔ کار با رابط می‌تواند از آن در تمام برنامه‌های در حال اجرا در همان محیط استفاده کند. فهرست مثال‌های برنامه Hello World
یک برنامه Hello World یک برنامهٔ رایانه‌ای ساده است که جمله «Hello, world!» را در صفحه نمایش چاپ می‌کند. معمولاً ساده‌ترین برنامهٔ ممکنی است که می‌توان در زبان‌های برنامه‌نویسی مختلف نوشت و یک عمل سنتی است که بسیاری از برنامه‌نویسان که قصد آموزش یک زبان برنامه‌نویسی را دارند، توصیه به نوشتن آن می‌کنند که اولین قدم در یادگیری آن زبان برنامه‌نویسی است. بیشتر از این برنامه برای مقایسه نحو دو زبان مختلف استفاده می‌شود. در زیر فهرستی از برنامه‌های Hello World مرسوم در ۹۱ زبان برنامه‌نویسی آمده‌است. کارآیی کامپیوتر
مهندسی کارایی برنامه (APE)، یک روش‌شناسی خاص در مهندسی کارایی است که برای پاسخگویی به چالش‌های مرتبط با کارایی برنامه‌ها در محیط‌های توزیع شده فزایندهٔ سیار، ابری و IT-زمینی، طراحی شده‌است. این شامل نقش‌ها، مهارت‌ها، فعالیت‌ها، شیوه‌ها، ابزارها و تحویل دادنی‌هایی (نتیجه کار) است که در هر مرحله از چرخه حیات برنامه به کار گرفته می‌شوند و این اطمینان را می‌دهد که یک برنامه برای پاسخگویی به الزامات کارایی غیر عملکردی طراحی، اجرا و پشتیبانی عملیاتی خواهد شد. رایانه
در همان زمان، رایانه‌های کوچک، که معمولاً با یک برنامه ثابت ارائه می‌شدند، راهشان را به سوی کاربردهای دیگری باز می‌نمودند، کاربردهایی چون لوازم خانگی، خودروها، هواپیماها، و ابزار صنعتی. این پردازشگرهای جاسازی شده کنترل رفتارهای آن لوازم را ساده‌تر کردند، همچنین امکان انجام رفتارهای پیچیده را نیز فراهم نمودند (برای نمونه، ترمزهای ضدقفل در خودروها). با شروع سده بیست و یکم، اغلب دستگاه‌های الکتریکی، اغلب حالت‌های انتقال نیرو، اغلب خطوط تولید کارخانه‌ها توسط رایانه‌ها کنترل می‌شوند. اکثر مهندسان پیش‌بینی می‌کنند که این روند همچنان به پیش برود… یکی از کارهایی که می‌توان به‌وسیله رایانه انجام داد برنامه گیرنده ماهواره‌است. کامپایلر
ساختار کامپایلرها و کامپایلر بهینه‌ساز امروزه بخشی از برنامه درسی دانشجویان کامپیوتر است. برخی کامپایلرها به منظور آموزشی برای زبان‌های برنامه‌نویسی تولید می‌گردد؛ مثلاً کامپایلر PL/۰ توسط Niklaus Wirth برای آموزش در دهه ۱۹۷۰ به کار رفت. به علت سادگی و دلایل زیر هنوز برای آموزش مورد استفاده قرار می‌گیرد: مهندسی نرم‌افزار
کاربردهای مهندسی نرم‌افزار دارای ارزش‌های اجتماعی و اقتصادی هستند، زیرا بهره‌وری مردم را بالا برده، چند و چون زندگی آنان را بهتر می‌کنند. مردم با بهره‌گیری از نرم‌افزار، توانایی انجام کارهایی را دارند که قبل از آن برای‌شان شدنی نبود. نمونه‌هایی از این دست نرم‌افزارها عبارت‌اند از: سامانه‌های توکار، نرم‌افزار اداری، بازی‌های رایانه‌ای و اینترنت. برنامه «سلام، دنیا!»
یک برنامهٔ «سلام، دنیا» برنامهٔ رایانه‌ای است که عنوان «Hello, world!» (یا مشابه) را در وسیلهٔ نمایش خروجی چاپ می‌کند و به‌عنوان یک برنامهٔ مقدماتی در آموزش زبان‌های برنامه‌نویسی استفاده می‌شود که معمولاً ساده‌ترین برنامهٔ ممکنی است که می‌توان در زبان‌های برنامه‌نویسی مختلف نوشت و یک عمل سنتی است که بسیاری از برنامه‌نویسان که قصد آموزش یک زبان برنامه‌نویسی را دارند، توصیه به نوشتن آن می‌کنند که اولین قدم در یادگیری آن زبان برنامه‌نویسی است. البته نوشتن چنین برنامه‌ای همیشه هم ساده نیست، به عنوان نمونه در برنامه‌هایی که قصد ساختن واسط گرافیکی کاربر دارند، ولی در بیشتر مواقع ساده است. در سامانه‌های توکار احتمالاً متن «Hello World» بر روی ال‌سی‌دی فرستاده خواهد شد یا توسط وسایل دیگری مانند ال‌ای‌دی نمایش داده می‌شود. شمارنده برنامه
در یک پردازنده معمولی، PC یک شمارنده باینری است (منبع شمارنده برنامه) که ممکن است یکی از بسیار ثبات موجود در سخت افزار پردازنده باشد. شرخه دستورها با واکشی (به انگلیسی: fetch) آغاز می‌شود، که در آن پردازنده مقدار PC را در گذرگاه آدرس برای ارسال به حافظه قرار می‌دهد. حافظه با قرار دادن محتویات موقعیت اعلام شده بر روی گذرگاه به این عمل پاسخ می‌دهد. در ادامهٔ واکشی، فرایندهای پردازنده اجرا می‌شوند که شامل چندین فعالیت برحسب گرفتن اطلاعات از حافظه هستند. از طرفی در این چرخه، PC اصلاح می‌شود در نتیجه دستور بعدی که اجرا می‌شود با قبلی متفاوت است.(به‌طور معمول، با فواصل کوچکی تغییر میابد در نتیجه دستور بعدی که شروع می‌شود در آدرس حافظه‌ای است که بلافاصله بعد از مکان دستور کنونی در حافظه قرار دارد) زبان اسمبلی
همواره بحث‌هایی دربارهٔ کاربردی بودن و نمایش زبان اسمبلی در مقابل زبان‌های سطح بالا بوده‌است. اگرچه در جایگاه‌های مخصوصی که اهمیت دارند، زبان اسمبلی استفاده می‌شود (بالا را مشاهده کنید)، اما ابزارهای دیگری برای بهینه‌سازی وجود دارند. در ژوئیه ۲۰۱۷ شاخص تیوبی رتبهٔ محبوبیت زبان برنامه‌نویسی، زبان اسمبلی در رتبهٔ ۱۱ بالاتر از مثلاً ویژوال بیسیک بود. اسمبلر می‌تواند برای بهینه‌سازی سرعت یا بهینه‌سازی اندازه استفاده شود. در حالت بهینه‌سازی سرعت، کامپایلرهای بهینه‌ساز مدرن مدعی می‌شوند که زبان‌های سطح بالا را به کدهایی تبدیل می‌کنند که می‌توانند به سرعت اسمبل با دست نوشته شده اجرا شوند، گرچه مثال‌های خلاف هم می‌توانند پیدا شوند. پیچیدگی پردازنده‌های مدرن و سیستم‌های فرعی حافظه‌ها، بهینه‌سازی مؤثر را به‌طور افزاینده ای برای کامپایلر و همچنین برای برنامه نویسان اسمبلی سخت می‌کنند. علاوه بر این افزایش نمایش پردازنده‌ها به این معنی است که بیشتر سی پی یوها بیشتر مواقع بی فایده مانده‌اند، با تأخیرهایی که به خاطر تنگه‌های قابل پیش‌بینی مانند از دست دادن حافظهٔ پنهان، عملیات‌ها و صفحه بندی I/O رخ داده‌است. همین، سرعت اجرای کد خام را برای بسیاری از برنامه نویسان بی‌اهمیت کرده‌است. در اینجا تعدادی موقعیت وجود دارد که احتمالاً توسعه دهندگان انتخاب بکنند تا از زبان اسمبلی استفاده بکنند. زبان اسمبلی هنوز در بسیاری از برنامه‌های [[مهندسی الکترونیک|مهندسی برق]] و [[علوم رایانه|علوم کامپیوتر]] آموزش داده می‌شود. اگرچه تعداد کمی از برنامه نویسان امروزه معمولاً با زبان اسمبلی به عنوان ابزار کار می‌کنند، اما مفاهیم اصولی بااهمیت باقی می‌مانند. مفاهیم ابتدایی از جمله اعمال ریاضی در اعداد دو دویی، اختصاص حافظه، پردازش پشته، کدگذاری مجموعهٔ کاراکترها، قطع شدن پردازش و طراحی کامپایلر که مطالعه در تفاصیل آن‌ها بدون فهمیدن اینکه یک کامپیوتر چگونه در سطح سخت‌افزار عمل می‌کند، سخت خواهد بود. از زمانی که رفتار کامپیوتر، به شکل ابتدایی به وسیلهٔ مجموعهٔ دستور العمل‌هایش تعریف می‌شود، راه منطقی برای یادگرفتن چینن مفهوم‌هایی، مطالعهٔ که یک زبان اسمبلی است. بیشتر کامپیوترهای مدرن مجموعهٔ دستور العمل‌های مشابه دارند؛ بنابراین مطالعهٔ تنها یک زبان اسمبلی کافی است برای یادگیری: I) مفاهیم پایه؛ II) تشخیص موقعیت‌هایی که استفاده از زبان اسمبلی می‌تواند مناسب باشد؛ III) دیدن اینکه چه مقدار کد قابل اجرای کارآمد از یک زبان سطح بالا می‌تواند ساخته شود. اسمبلر درون‌برنامه‌ای
در برنامه‌نویسی کامپیوتر، یک اسمبلر درون برنامه ای، یک ویژگی از برخی از کامپایلرهاست که اجازه می‌دهد کُدِ سطح پایینی که به زبان اسمبلی نوشته شده در میان یک برنامه قرار گیرد، درون کدی که بر خلاف آن، از یک زبان سطح بالا مانند C یا Ada کامپایل شده‌است. برنامه‌نویسی رایانه‌ای
مقاله اصلی: زبان برنامه‌نویسی زبان‌های مختلف برنامه‌نویسی وجود دارند که هر کدام از آن‌ها سبک‌های خاصی را پشتیبانی می‌کنند (به نام پارادایم‌های برنامه‌نویسی). انتخاب زبان مورد استفاده، مورد توجه بسیاری از مباحث از قبیل خط مشی شرکت، مناسب بودن در انجام کار، در دسترس بودن بسته‌های شخص ثالث یا ترجیح شخصی است. در حالت ایده‌آل، زبان برنامه‌نویسی که برای کار مورد نظر مناسب‌تر باشد، انتخاب می‌شود. تجارت از این ایده‌آل شامل یافتن برنامه نویسان به اندازه کافی است که زبان را برای ایجاد یک تیم می‌شناسند، در دسترس بودن کامپایلرها برای آن زبان و کارایی که برنامه‌های آنها را با یک زبان خاص اجرا می‌کنند. زبان‌ها طیف تقریبی را از «سطح پایین» تا «سطح بالا» تشکیل می‌دهند. زبان‌های «سطح پایین» به‌طور معمول بیشتر دستگاه محور و سریع‌تر اجرا می‌شوند، و به زبان ماشین نزدیک‌تر هستند در حالی که زبان‌های «سطح بالا» انتزاعی‌تر و آسان‌تر برای استفاده هستند اما سرعت کمتری دارند. معمولاً کدگذاری به زبان‌های «سطح بالا» از زبان‌های «سطح پایین» ساده‌تر است. برنامه رایانه‌ای
می‌توان برنامه‌ها را با توجّه به نوع زبان برنامه‌نویسی دسته‌بندی کرد. این دسته‌بندی می‌تواند بر اساس ویژگی‌های زبان یا نحوهٔ اجرا باشد مهندسی کامپیوتر
علوم و مهندسی محاسبات یک رشته نسبتاً جدید است. کار افراد در این زمینه، کشف روش‌های محاسباتی برای فرموله کردن و حل مشکلات پیچیده ریاضی در مهندسی و علوم فیزیکی و اجتماعی است. طراحی هواپیما، طراحی مدار VLSI، سیستم‌های تشخیص رادار، انتقال یون از طریق کانال‌های بیولوژیکی نمونه‌هایی از کار در این زمینه است"." زبان برنامه‌نویسی
پیاده‌سازی یک زبان برنامه‌نویسی امکان اجرای آن برنامه را روی پیکربندی مشخصی از سخت‌افزار و نرم‌افزار را فراهم می‌کند. به‌طور وسیع، دو راه رسیدن به پیاده‌سازی زبان برنامه‌نویسی وجود دارد. کامپایل کردن و تفسیر کردن. به‌طور کلی با هر بک از ابن دو روش می‌توان یک زبان را پیاده‌سازی کرد. برنامه رایانه‌ای
برنامهٔ رایانه‌ای مجموعه‌ای از الگوریتم یا دستورالعمل‌ها است که رایانه برای انجام یک کار مشخّص آن را اجرا می‌کند. رایانه برای انجام کارهایش به برنامه‌ها نیاز دارد و معمولاً هر برنامه را در یک واحد پردازش مرکزی اجرا می‌کند. کد چسب
یک کد چسب در برنامه‌نویسی رایانه‌ای، یک کد اجرایی (معمولاً کد منبع) است که از آن «فقط» برای سازگاری قسمت‌های مختلف کدهایی استفاده می‌شود که در اصل . کد چسب در هیچ‌یک از عملکردها برای رفع های برنامه مشارکت نمی‌کند. ابزار توسعه نرم‌افزار
ابزار توسعه نرم‌افزار یا همان ابزار برنامه‌نویسی در واقع یک برنامه کامپیوتری است که توسعه دهندگان نرم‌افزار بمنظور ایجاد، خطایابی، نگهداری یا دیگر پشتیبانی‌های لازم برای برنامه‌ها و نرم‌افزارها ان را بکار می‌برند. برنامه‌نویسی خودآرا
برنامه‌نویسی در زمان اجرا دقیقاً چه معنی می‌شود، با یک مثال تابع فاکتوریل می‌تواند روشن شود که در هیچ‌یک از الگوهای C++نمی‌تواند مانند چیزی که درذیل آمده‌است، نوشته شود. unsigned int factorial(unsigned int n) { نرم‌افزار کاربردی
بسیاری نرم‌افزارهای کاربردی، برای توسعه‌دهندگان ابزار رابط برنامه‌نویسی کاربردی هم فراهم می‌کنند تا بتوان از قابلیت‌های نرم‌افزار در نرم‌افزارهای جدید استفاده کرد. برای مثال نرم‌افزار ادوبی آکروبات هنگام نصب ای‌پی‌آی فراهم می‌کند که برنامه‌نویس می‌تواند با استفاده از آن توانایی‌های آکروبات در برنامهٔ خود به کار گیرد. بسیاری از نرم افزارهای امروزی جنبه خدمات رسانی دارند. زبان برنامه‌نویسی
یک سیر رایج در گسترش زبان‌های برنامه‌نویسی این است که قابلیت حل مسائلی با درجات انتزاعی بالاتری را اضافه کنند. زبان‌های برنامه‌نویسی اولیه به سخت‌افزار رایانه گره خورده بودند. همان‌طور که زبان‌های برنامه‌نویسی جدید گسترش پیدا کرده‌اند، ویژگی‌هایی به برنامه‌ها افزوده شده که به برنامه‌نویس اجازه دهد که ایده‌هایی که از ترجمه ساده به دستورهای سخت‌افزار دورتر هستند نیز استفاده کند. چون برنامه‌نویس‌ها کمتر به پیچیدگی رایانه محدود شده‌اند، برنامه‌های آن‌ها می‌تواند محاسبات بیشتری با تلاش کمتر از سوی برنامه‌نویس انجام دهند. این به آن‌ها این امکان را می‌دهد که کارایی بیشتر در واحد زمان داشته باشند. بوت‌استرپینگ (کامپایلر)
بوت‌استرپ در علوم رایانه در بخش‌های بوت شدن رایانه، در زمینه توسعه نرم‌افزار، در کامپایلرها، نصاب‌ها، شبکه‌های همپوشان، پیش‌بینی رویدادهای گسسته و هوش مصنوعی/یادگیری ماشین کاربرد دارد. برنامه‌نویسی رایانه‌ای
برنامه نویسان رایانه کسانی هستند که نرم‌افزار رایانه ای می‌نویسند. مشاغل آنها معمولاً شامل موارد زیر است: چارچوب نرم‌افزاری
در برنامه‌نویسی کامپیوتر یک چهارچوب نرم‌افزاری یک انتزاع است که در آن نرم‌افزار فراهم کننده عملکردهای عمومی می‌تواند به صورت انتخابی توسط کدهای نوشته شده کاربران عوض شود، در تعریفی بهتر می‌توان گفت یک فراهم کننده طراحی‌های قابل استفاده برای نرم‌افزار است. در واقع یک چهارچوب یک راه استاندارد برای ساخت و گسترش برنامه‌ها است و یک محیط با قابلیت استفاده مجدد در محیط نرم‌افزاری است به صورتی که عملکردهای خاصی از بخش‌های یک پلتفرم بزرگ نرم‌افزاری را آماده می‌کند تا برنامه‌نویسی نرم‌افزارهای کاربردی و الگوریتم‌ها را آسان‌تر کند، چهارچوب‌های نرم‌افزاری ممکن است شامل برنامه‌های پشتیبانی، کامپایلرها، کتابخانه‌های کد، مجموعه ابزارها ورابط‌های برنامه‌نویسی برنامه (API) باشد که تمام اجزای مختلف را گرد هم آورده تا امکان توسعه یک پروژه یا سیستم فراهم کند. اصطلاح برنامه‌نویسی
در بسیاری از زبان‌ها کد جابجاکردن دو عبارت به شکل زیر است: در پرل می‌توان به کمک نحوی فشرده‌شده با کمک قابلیت اختصاص فهرست آن را انجام داد: استفاده مجدد از کد
نمونه بسیار متداول استفاده مجدد از کد، روش استفاده از کتابخانه نرم افزاری است.بسیاری از عملیاتهای رایج ، از جمله تبدیل اطلاعات در بین قالبهای مختلف شناخته شده ، دسترسی به فضای ذخیره سازی خارجی ، رابط با برنامه های خارجی یا دستکاری اطلاعات (اعداد ، کلمات ، نام ها ، مکان ها ، تاریخ ها و غیره) به روش های معمول ، مورد نیاز بسیاری از افراد مختلف است.نویسندگان برنامه های جدید می توانند به جای "دوباره اختراع چرخ" ، مثل نوشتن کد کاملاً جدید به طور مستقیم در یک برنامه برای انجام یک عملیات ، از کد در یک کتابخانه نرم افزاری استفاده کنند.پیاده سازی کتابخانه ها غالباً از مزیت هایی مثل تست شده و پوشش دادن موارد غیرمعمول و محرمانه برخوردار هستند.معایب آن عبارتند از عدم امکان نشان دادن جزئیات که ممکن است بر عملکرد یا خروجی مورد نظر ، و زمان و هزینه دستیابی ، یادگیری و پیکربندی کتابخانه تأثیر بگذارد. اثر جانبی (علوم رایانه)
میزان استفاده از اثر جانبی به زبان برنامه‌نویسی بستگی دارد. در برنامه‌نویسی دستوری استفاده از اثر جانبی جهت به‌روزرسانی حالت سیستم متداول است. در مقابل، در برنامه‌نویسی اعلانی اغلب وضعیت سیستم، بدون به‌وجود آمدن اثرات جانبی، گزارش می‌شود. نرم‌افزارهای شرکت ادوبی
دریم ویور نرم‌افزاری است که اکثر برنامه‌نویسان برای طراحی سایت از آن بهره می‌گیرند. به کمک این نرم‌افزار می‌توان به سادگی اقدام به نوشتن کد نمود. زیرا محیط ویرایش‌گر این برنامه با تفکیک کردن کدهای مختلف، کد نویسی را آسان می‌کند. پایتون (زبان برنامه‌نویسی)
بیشتر پیاده‌سازی‌های پایتون (شامل سی پایتون، اولین پیاده‌سازی) می‌توانند مثل یک مفسر خط فرمان عمل کنند، برای زمانی که کاربر رشته شرط را وارد می‌کند و فوراً نتیجه را می‌پذیرد. خلاصه پایتون به عنوان یک برنامه واسط عمل می‌کند. وقتی صرف دیگر شیوه‌های اجرا (کامپایل کد بایت یا کامپایل کد محلی) به صورت یک رشته صرف ذخیره می‌شود، یک افزایش سرعت در هزینه‌های متقابل به وجود می‌آید، بنابراین آن‌ها معمولاً فقط خارج از مفسر خط فرمان استفاده می‌شوند. (وقتی یک ماژول وارد می‌شود) ماکرو (علوم رایانه)
ماکروها معمولاً برای نگاشت یک رشته کوتاه (فراخوانی ماکرو) به یک توالی طولانی‌تر از دستورالعمل‌ها مورد استفاده قرار می‌گیرند. یکی دیگر که کم‌تر متداول است، استفاده از ماکروها این است که معکوس شود: نگاشت یک توالی دستورالعمل‌ها به یک رشته ماکرو. این رویکرد توسط سیستم برنامه‌نویسی موبایل STAGE۲ اتخاذ شد، که از یک کامپایلر ماکروی ابتدایی (به نام SIMCMP)استفاده می‌کرد تا یک مجموعه دستورالعمل خاص از یک کامپیوتر داده‌شده به counterpart macros را نگاشت کند. برنامه‌های کاربردی (به‌طور خاص کامپایلرها) که در این ماکروها مستقل از دستگاه نوشته شده‌است، بدون تغییر در هر کامپیوتری که مجهز به کامپایلر ماکروی اولیه است اجرا می‌شود. اولین برنامه کاربردی که در چنین زمینه ای اجرا می‌شود، یک کامپایلر ماکرو پیچیده‌تر و قدرتمند است که در زبان ماکروی مستقل از دستگاه نوشته شده‌است. این کامپایلر ماکرو برای خودش، به روش بوت استرپ، برای تولید یک نسخه ترجمه‌شده و بسیار کارآمدتر از خودش استفاده می‌شود. مزیت این رویکرد این است که برنامه‌های پیچیده را می‌توان از یک کامپیوتر به یک کامپیوتر بسیار متفاوت با تلاش بسیار کمی (برای هر معماری ماشین هدف، فقط نوشتن یک compiler ابتدایی)منتقل کرد. ظهور زبان‌های برنامه‌نویسی مدرن، به خصوص C، که کامپایلرها در تمام رایانه‌ها در دسترس هستند، این رویکرد را بی‌فایده کرده‌است. با این وجود، این یکی از اولین نمونه از بوت استرپینگ کامپایلر بود. رابط برنامه‌نویسی داس
رابط برنامه‌نوسی نرم‌افزار DOS ، یک رابط برنامه‌نویسی نرم‌افزار است که در اصل برای برای سیستم‌عامل‌های MS-DOS و PC-DOS نوشته شده و بعدها به وسیلهٔ سیستم‌عامل‌های DOS. یبشتر فراخوانی‌ها در این رابط برنامه‌نویسی با تماس گرفتن با وقفه نرم‌افزاری ۲۱h همان INT 21h انجام می‌پذیرد. بهینه‌سازی برنامه
در پایین‌ترین سطح، نوشتن کد با استفاده از یک زبان مونتاژ، طراحی شده برای یک پلتفرم سخت‌افزاری خاص می‌تواند کارآمدترین و کمترین کد را تولید کند، در صورتی که برنامه‌نویس از رکورد کامل دستورالعملهای ماشین استفاده کند. به همین دلیل، بسیاری از سیستم عامل‌های مورد استفاده در سیستم‌های جاسازی شده به‌طور سنتی در کد اسمبلر نوشته شده‌اند. برنامه‌ها (به غیر از برنامه‌های بسیار کوچک) به ندرت از زمان شروع و پایان در مونتاژ به علت زمان و هزینه درگیر می‌شوند. اکثر آن‌ها از یک زبان سطح بالا به مونتاژ و دست بهینه شده از آنجا جمع شده‌اند. هنگامی که بازده قطعات مهمتر از اندازه هستند، ممکن است در یک زبان سطح بالا نوشته شوند. برنامه‌نویسی داده‌محور
در برنامه نویسی کامپیوتر ، برنامه‌نویسی داده محور یک پارادیم برنامه نویسی است که در آن دستورهای برنامه ، داده‌ها را برای همسان‌سازی و پردازش‌های مورد نیاز به جای تعریف یک توالی مراحل توصیف می‌کنند . نمونه‌هایی استاندارد از زبان‌های برنامه‌نویسی داده محور زبان متن-پردازش sed و AWK هستند، که در آن‌ها داده ، دنباله‌ای از خطوط در یک جریان ورودی می‌باشد (این نوع زبان‌های برنامه‌نویسی هم‌اکنون با نام زبان‌های برنامه‌نویسی خط-گرا نیز شناخته می‌شوند) و در درجه اول عبارات منظم یا شماره خط الگوی تطابق هستند . پروگراف
برنامه‌ها در پروگراف با کدنویسی کمی ساخته می‌شوند و همین ویژگی پروگراف را به یک زبان ایده‌آل برای نمونه سازی برنامه‌های کاربردی تبدیل می‌کند. سرعت اجرای برنامه قربانی این سهولت استفاده و کارایی نمی‌شود.برنامه پروگراف می‌تواند کامپایل شود و اگر به مقدار کمی سرعت اضافه برای بخش‌هایی که بحران زمانی دارند نیاز داشتیم مجازیم کدهای نوشته شده به یک زبان سطح پایین‌تر مانند C را به برنامه اضافه کنیم. طراحی به کمک رایانه
همه رشته‌های مهندسی برای طراحی از نرم‌افزارهای مناسب خود استفاده می‌کنند. نرم‌افزارهای مورد استفاده در طراحی معماری و طراحی صنعتی اغلب نرم‌افزارهای گرافیکی هستند. از نرم‌افزارهای سه‌بعدی که بیشتر در طراحی معماری و طراحی صنعتی استفاده می‌شوند می‌توان به "اتوکد"،" سالیدورکس"، "اینونتور"، "سالید اج" و "مکانیکال دسکتاپ" اشاره کرد. علاوه‌بر این موارد، نرم‌افزارهای گرافیکی دو بعدی مانند "فتوشاپ"، "کورل‌دراو" و "فری‌هند" نیز بسیار پر کاربرد هستند. "کتیا"، "یونیگرافیکس" و "پرو/اینجینیر" هم از بهترین نرم‌افزارهای گرافیکی مورد استفاده‌هستند که با امکان محاسبات پیچیده مهندسی مانند محاسبات تنش‌های محوری و هزاران توانمندی حرفه‌ای دیگر به طراحان کمک کرده‌اند. واسط برنامه‌نویسی کاربردی
واسط کارکردهایی را تعریف می‌کند که کتابخانه یا سیستم‌عامل می‌تواند ارائه دهد و مفهومی مجرد است. این کارکردها سپس در قالب یک نرم‌افزار یا کتابخانه پیاده‌سازی می‌شوند. به عبارت ساده‌تر، واسط برنامه‌نویسی مجموعه توابعی است که یک برنامه می‌تواند از یک برنامه دیگر فرا بخواند.. در واقع API واسط بین دو نرم‌افزار (اپلیکیشن) است که امکان ارتباط بین آن‌ها را برقرار می‌کند. حساب لامبدا
حساب لاندا کاربردهای فراوانی در زمینه‌های مختلف از جمله ریاضیات، فلسفه، زبان‌شناسی و علوم رایانه دارد. همچنین این حساب نقش مهمی در گسترش نظریه زبان‌های برنامه‌نویسی ایفا می‌کند. برنامه‌نویسی تابعی در رایانه حساب لاندا را پیاده‌سازی می‌کند. این حساب هم‌اکنون یکی از موضوعات تحقیق در نظریه دسته‌هاست. برنامه‌نویسی رایانه‌ای
زبان‌های برنامه‌نویسی گوناگون براساس قابلیت‌های در نظر گرفته شده از شیوهٔ خط‌های مختلف استفاده می‌کنند. موارد ریزتری مانند چگونگی برخورد با نیازهای پشت پردهٔ ماشین مانند مدیریت حافظه و مدیریت زباله نیز در زبان‌های مختلف متفاوت است. علاوه بر این‌ها، مفاهیمی متفاوت از (اجرای) یک برنامه تصور شده‌اند که پارادایم یا الگو نام دارند. برنامه‌نویسی مجموعه جواب
که در آن start و end عبارات حسابی ثابت مقدار هستند. یک محدوده یک میانبر نمادین است که در اصل برای تعریف دامنه‌های عددی، به روش سازگار، از آن استفاده می‌شود. برای مثال، واقعیت زیر a(1..3). یک میانبر برای a(1). a(2). a(3). است. با معناشناسی مشابه، محدوده‌ها را در بدنه قاعده نیز می‌توان استفاده نمود. معنی‌شناسی (علوم رایانه)
معنی‌شناسی قراردادی، برای مثال، در این موارد کاربرد دارد: کمک به نوشتن کامپایلرها، فهم بهتر آنکه برنامه چه کاری انجام می‌دهد، اثبات رفتار برنامه و غیره. متلب
متلب یک محیط برنامه‌نویسی در حوزهٔ ریاضیات و مهندسی است که بیشتر مناسب مهندسی می‌باشد چون محاسبات آن با استفاده از تقریب سازی‌ها و تخمین‌های ریاضیست؛ بنابراین در کارهای ریاضی کاربردی که اصل کار همان ساختن تقریب‌هاست، ممکن است زیاد مناسب نباشد به علاوه برای کار با آن، باید آموزش دید و برنامه‌نویسی در آن محیط را یادگرفت. میپل یک نرم‌افزار فوق پیشرفته ریاضی است که هم در ریاضیات و هم در مهندسی کاربرد دارد و به راحتی به محیط‌های برنامه‌نویسی دیگر مثل C یا C++ مرتبط می‌شود. برای حل تمرین و یا آموزش ریاضی و محاسبات می‌توان به ان یادداشت و انیمیشن اضافه کرد. محاسبات نمادین و محض مثل حدگیری و مسایل جبر را به راحتی انجام می‌دهد؛ و تمام مراحل حل را به کاربر نشان می‌دهد. نیاز به آموزش خاصی نخواهد داشت. برنامه‌نویسی رایانه‌ای
پس از نوشتن یک برنامه مانند بالا، برنامهٔ مترجم (در اینجا Basic) دستورها را تبدیل به فرامینی می‌کند که لایه زیرین، که ممکن است همان سخت‌افزار باشد، می‌تواند آن‌ها را "اجرا" کند. برنامه‌نویسی خودآرا
اگر چه دستور زبان برنامه نویسی خود آرا با زبان برنامه‌نویسی که با آن نوشته می‌شود، بسیار متفاوت است اما استفاده‌های کاربردی دارد. برخی از علل معمول برای کاربرد الگوها سبب اجرای برنامهٔ اصلی یا بهینه‌سازی زمان اجرا است و مثل اجرای چیزی به‌طور یک مرتبه در زمان بهتر از هر زمانی است که برنامه ادامه می‌یابد. فهرست رده‌های نرم‌افزار
نرم‌افزار کامپیوتری می‌تواند بر اساس عملکرد به چندین رده تقسیم شود. سه رده اصلی در این رده‌بندی جای می‌گیرند: (۱)نرم‌افزارهای کاربردی، برای انجام کارهای کاربر طراحی شده‌اند. این نرم‌افزارها می‌توانند استفاده عمومی همچون واژه‌پردازهای عمومی و مرورگرهای اینترنتی باشند یا استفاده‌های خاصی همچون مدیریت کاربران، مدیریت اتومبیل‌ها و... باشند. نرم‌افزارهای کاربردی با (۲)نرم‌افزارهای سیستمی ارتباط برقرار می‌کنند. نامی که برای برنامه‌هایی به کار می‌رود که وظایفی همچون به‌راه انداختن کامپیوتر، اتصال به اینترنت و... را انجام می‌دهند. گونه دیگر، (۳)ابزارهای برنامه‌نویسی کامپیوتر همچون کامپایلرها و پیوند دهنده‌ها هستند. برنامه‌نویسی رایانه‌ای
قدم اول در فرایند توسعه بیشتر نرم‌افزارها به شکل معمول شامل بررسی نیازمندی‌ها، سپس آزمایش برای تشخیص الگوی متغیرها، اجرا و سپس حذف خرابی‌ها (اشکال زدایی) است. راه‌های مختلفی برای رسیدن به هر کدام از این وظایف وجود دارند. یک راه پرطرفدار برای تحلیل نیازمندی‌ها تحلیل مورد کاربردی است. بسیاری از برنامه نویسان از شکل توسعه چابک نرم‌افزاری استفاده می‌کنند؛ در این روش مراحل مختلف توسعه نرم‌افزار به شکل چرخه‌های کوتاه با هم ترکیب می‌شوند به‌طوری‌که هر کدام از این چرخه‌ها فقط چند هفته طول بکشند. این در مقابل روش معمول است که ممکن است چند سال زمان ببرد. روش‌های خیلی زیادی برای روند توسعه برنامه‌ها وجود دارند. برنامه‌نویسی تیمی
در مهندسی نرم افزار ، برنامه نویسی تیمی یک استراتژی مدیریت پروژه برای هماهنگی تقسیم کار در پروژه های توسعه نرم افزاری است ، که شامل انتساب دو یا چند برنامه نویس رایانه ای برای کار مشترک در یک تکلیف خاص است. به طور کلی ، شیوه استفاده از این فرایند امروزه به روشهایی اطلاق میشود که در صنعت توسعه نرم افزار باعث فعالیت همزمان چند برنامه نویس رایانه ای میشود . معمولا در این سیستم ها ، برنامه نویسان در گروه های دو نفره به ایستگاه کاری رایانه متصل میشوند و در هر لحظه یکی از این دو کدنویسی کرده و دیگری کد او را بررسی و نقد می‌کند و این دو به صورت دوره ای جای خود را عوض میکنند. جی ان یو کوبول
GnuCOBOL یک برنامه COBOL (کد منبع) را به یک برنامه C تبدیل می کند. سپس برنامه C می تواند در کد واقعی استفاده شده توسط رایانه (کد شی) یا در کتابخانه ای که سایر برنامه ها را دارا می باشد (به صورت هایپرلینک)، وارد شود. تحت UNIX و سیستم عامل های مشابه (مانند Linux)، از کامپایلر GNU C استفاده می شود. برای Windows، بسته Microsoft Visual Studio Express کامپایلر C را ارائه می دهد. تدوین دو مرحله ای معمولاً با یک دستور انجام می شود، اما گزینه ای وجود دارد که به برنامه نویس اجازه می دهد پس از توسعه کد C، تدوین را متوقف کند. برنامه‌نویس
برنامه‌نویس، برنامه‌نویس رایانه، توسعه‌دهنده، کدنویس یا مهندس نرم‌افزار متخصصی است که نرم‌افزار رایانه می‌نویسد. عبارت برنامه‌نویس رایانه می‌تواند به یک متخصص در زمینه‌ای از برنامه‌نویسی یا یک شخص دارای سررشته که برای بسیاری از گونه‌های نرم‌افزار کد می‌نویسد اشاره کند. شخصی که یک روش رسمی برای برنامه‌نویسی تمرین یا تدریس می‌کند، همچنین می‌تواند به‌عنوان تحلیلگر برنامه‌نویس (هکر یا متخصص امنیت) شناخته شود. برنامه‌نویسی مسابقه‌ای
یک رقابت برنامه‌نویسی معمولاً شامل مجموعه‌ای از سوالات منطقی یا ریاضیاتی است (که می‌تواند از نظر تعداد شرکت‌کننده از چند ده نفر تا چند ده هزار نفر متفاوت باشد) که در آن شرکت‌کنندگان ملزم به نوشتن برنامه‌های رایانه‌ای هستند که قادر به حل سوالات داده شده باشند. قضاوت بیشتر بر اساس تعداد سوالات حل شده و زمان صرف شده برای نوشتن راه‌حل‌های موفقیت‌آمیز است، اما ممکن است شامل فاکتورهای دیگری مثل کیفیت خروجی، زمان اجرای برنامه و تعداد خطوط کد راه‌حل نیز باشد. مهندسی کامپیوتر
وظایف معمول مهندسان رایانه شامل نوشتن نرم‌افزار و سیستم عامل برای میکروکنترلرهای جاسازی شده، طراحی تراشه‌های VLSI، طراحی سنسورهای آنالوگ، طراحی صفحات مدار و طراحی سیستم‌های عامل رایانه است. مهندسان رایانه نیز برای تحقیقات رباتیک مناسب هستند که به شدت بر استفاده از سیستم‌های کنترل و نظارت بر سیستم‌های الکتریکی مانند موتور، ارتباطات، و سنسورهای دیجیتال متکی هستند. زبان برنامه‌نویسی
زبان‌های برنامه‌نویسی ساختارهای زبانی دستور مداری در رایانه‌ها هستند که به‌وسیلهٔ آن‌ها می‌توان یک الگوریتم را به‌وسیلهٔ ساختارهای دستوری متفاوت برای اجرای رایانه توصیف کرد و با این روش امکان نوشتن برنامه جهت تولید نرم‌افزارهای جدید به وجود می‌آید. معمولاً هر زبان برنامه‌نویسی دارای یک محیط نرم‌افزاری برای وارد کردن متن برنامه، اجرا، همگردانی و رفع اشکال آن هستند. ماکرو (علوم رایانه)
فرایندی نگاشتی که در آن «ماکروی استفاده شده» به یک «ترتیب خاص» نمونه برداری (تبدیل) می شود، به عنوان «گسترش ماکرو» شناخته می شود. امکانات نوشتن ماکرو می تواند به عنوان یک نرم افزار کاربردی یا بخشی از زبان برنامه‌نویسی فراهم شود. در حالت اول، از ماکروها برای ساخت فعالیت هایی به وسیله ی برنامه های کم تکرار‌تر استفاده می شد. در حالات دوم، آنها یک ابزار‌اند که برنامه نویس امکان استفاده مجدد از کد، یا حتی امکان طراحی زبان های خاص منظوره را می دهند. کد رایانه
رایانه‌ها فقط می‌توانند دستورالعمل‌های مربوط به کد ماشین را که بخشی از مجموعه دستورالعمل‌های آن‌ها است، اجرا کنند. از آنجا که خواندن این دستورالعمل‌ها برای انسان دشوار است، و نوشتن برنامه‌های خوب به‌زبان ماشین یا سایر زبان‌های برنامه‌نویسی سطح پایین یک کار زمان‌بر است، بیشتر برنامه‌نویسان به کد منبع یک زبان برنامه‌نویسی سطح بالا برنامه‌نویسی می‌کنند. این کد منبع توسط کامپایلر یا مترجم به‌زبان ماشین ترجمه می‌شود تا کامپیوتر بتواند آن را در جهت انجام وظایفش اجرا کند. کامپایلر آبجکت کد را تولید می‌کند که معمولاً به زبان ماشین نوشته شده‌است اما این کد ممکن است به یک زبان سطح متوسط، در سطح پایین‌تری از منبع نیز باشد. اغلب از یک سیستم زمان اجرا برای اجرای آبجکت کد با پیوند دادن آن به کتابخانه‌های متداول استفاده می‌شود. Bytecode سطحی پایین‌تر از سطح زبان منبع است که برای تفسیر کارآمدتر مفسران طراحی شده‌است. اعلان (برنامه‌نویسی رایانه‌ای)
در برنامه‌نویسی رایانه‌ای، اعلان () مشخصات یک شناسه را مشخص می‌کند و مشخص می‌کند که یک کلمه (شناسه) چه معنایی دارد. اعلان‌ها معمولاً برای رویهها، متغیرها، ثوابت، و کلاس‌ها استفاده می‌شوند ولی می‌توانند برای سایر موجودیت‌ها مانند شمارش‌کننده‌ها و تعاریف نوع نیز استفاده شوند. زبان برنامه‌نویسی
برنامه‌های رایانه ممکن است در یک فرایند دسته ای بدون تعامل انسان اجرا شود، یا ممکن است یک کاربر دستورالعمل‌ها را در یک جلسه تعاملی یک مترجم تایپ کند. در این حالت «دستورها» صرفاً برنامه‌هایی هستند که اجرای آنها با هم زنجیر شده‌است. هنگامی‌که یک زبان می‌تواند دستورها خود را از طریق یک مترجم اجرا کند (مانند پوسته یونیکس یا دیگر رابط خط فرمان)، بدون تدوین، به آن اسکریپت می‌گویند. نرم‌افزار کاربردی
نرم‌افزار کاربردی یا اَپ یا یک ،برنامه رایانه‌ای است؛ که برای اجرای گروهی از توابع هماهنگ، وظایف یا فعالیت‌هایی برای منفعت کاربر طراحی شده‌است. نمونه‌هایی از یک نرم‌افزار کاربردی عبارتند از: واژه‌پرداز ها، صفحات گسترده ها، نرم‌افزارهای حسابداری، مرورگرهای وب، رایانامه‌ خوان ها، مدیا پلیرها، مشاهده گر های پرونده، شبیه‌سازهای پرواز و ویرایشگرهای گرافیک. این عبارت نرم‌افزار سیستمی معنی پیدا می‌کند که عمدتاً شامل اجرا کردن رایانه می‌شود. نرم‌افزار سیستمی در مقابل در پس‌زمینه عمل می‌کند و خدماتی را فراهم می‌کند که دیگر نرم‌افزارها یا سیستم‌عامل می‌توانند برای انجام کارهای خود از آن استفاده کنند. اما در عوض معمولاً مستقیماً با کاربر عادی در تماس نیست و خدماتی را به او ارائه نمی‌دهد. موبایل ها(هوشمند) نیز همانند کامپیوترها نرم افزارها و برنامه های مختلفی دارند. که در بازار آنها را بیشتر با واژه اپلیکیشن یا به اختصار App میشناسند. که در واقع به معنی همان اپلیکیشن موبایل یا نرم افزار موبایل می باشد. شبیه‌سازی بی‌درنگ
از شبیه‌سازها طی سالهای گذشته به شکل گسترده‌ای جهت برنامه‌ریزی و طراحی سیستم‌های الکتریکی استفاده شده است. از طراحی سیستم‌های قدرت در مقیاس‌های بزرگ تا بهینه‌سازی راه‌انداز موتورها، شبیه‌سازی نقش بسیار مهمی در موفقیت توسعه تعداد زیادی از برنامه‌های کاربردی ایفا کرده است. در سه دهه گذشته تکامل فناوری کامپیوتر سبب پیشرفت و بهبود ابزارهای شبیه‌سازی شده است. با توجه به کاهش قیمت و افزایش بهره‌وری فناوری کامپیوتری،قابلیت ابزارهای شبیه سازی برای حل مسائل پیچیده در زمان کمتر پیشرفت قابل توجهی کرده است.  شبیه‌سازهای بی‌درنگ به طور گسترده در بسیاری از حوزه‌های مهندسی و برنامه‌های کاربردی هم‌چون طراحی و کنترل ناوگان هوایی، طراحی کنترل‌کننده های پیچیده و آزمون‌های حفاظتی شبکه‌های قدرت مورد استفاده قرار می‌گیرند. بهینه‌سازی برنامه
در علم کامپیوتر، بهینه‌سازی برنامه یا بهینه‌سازی نرم‌افزار، روند اصلاح یک سیستم نرم‌افزاری است تا بعضی از جنبه‌های آن را کارآمدتر کند یا از منابع کمتر استفاده کند. به‌طور کلی، یک برنامه کامپیوتری ممکن است بهینه شود تا سریعتر اجرا شود یا بتوان آن را با ذخیره حافظه کمتر یا با استفاده از منابع دیگر یا حتی قدرت کمتری خلق کرد برنامه‌نویسی رایانه‌ای
برنامه‌نویسی به‌طور خلاصه یعنی تعیین یک سری دستور برای اجرا شدن توسط کامپیوتر به منظور رسیدن به هدف دلخواه. چندپردازی متقارن
در مورد رایانه‌های شخصی، SMP فایدهی کمتری برای کاربردهایی دارد که اصلاح نشده‌است. اگر سیستم به ندرت بیش از یک پردازش در هر دفعه داشته باشد، SMP تنها برای کاربردهایی مورد نظر است که پردازش چندرشتهای در پی دارد. نرمافزار برنامهریزیشده سفارشی می‌تواند جهت کاربرد در رشته‌های چندگانه نوشته یا اصلاح شود تا بتواند کاربرد پردازنده‌های چندگانه را کنترل کند. آمار
۹ - شبیه‌سازی در علم رایانه (در برنامه‌نویسی کامپیوتری، یک شبیه‌ساز اغلب برای اجرای برنامه‌ای مورد استفاده قرار می‌گیرد که انجام آن برای رایانه با مقداری دشواری همراه است. برای مثال، شبیه‌سازها معمولاً برای رفع عیب یک ریزبرنامه استفاده می‌شوند. از آن جایی که کار کامپیوتر شبیه‌سازی شده‌است، تمام اطلاعات در مورد کار رایانه مستقیماً در دسترس برنامه دهنده‌است و سرعت و اجرای شبیه‌سازی را می‌توان تغییر داد. همچنین شبیه‌سازها برای تفسیر درخت‌های عیب یا تست کردن طراحی‌های منطقی VLSI قبل از ساخت مورد استفاده قرار می‌گیرند. در علم رایانه نظریه، عبارت شبیه‌سازی نشان دهنده یک رابطه بین سیستم‌های انتقال وضعیت است که این در مطالعه مفاهیم اجرایی سودمند است) مقایسه زبان‌های برنامه‌نویسی
زبان‌های برنامه‌نویسی به‌منظور پایش رفتار ماشین‌ها (معمولاً رایانهها) به‌کار می‌روند. زبان‌های برنامه‌نویسی همانند زبان‌های طبیعی از قوانین نحو و معنا پیروی می‌کنند. برنامه رایانه‌ای
نرم‌افزارهای کاربردی که برای انجام یک کار مشخّص برای کاربر طرّاحی می‌شوند. این برنامه‌ها به‌طور مستقیم با کاربر سر و کار دارند و دارای رابط کاربری هستند. مانندنرم‌افزارهای واژه‌پرداز، صفحه‌گسترده‌ها، نرم‌افزارهای ارتباطی، بازی‌های ویدئویی و …