'''برنامهنویسی''' '''رایانه''' {{اختصاری| برنامه نویسیبرنامهنویسی}} فرایند طراحی و ساخت یک [[برنامه (رایانه)|برنامه کامپیوتری]] قابل [[اجرا (رایانش)|اجرا]] برای دستیابی به یک نتیجه محاسباتی خاص است. برنامه نویسیبرنامهنویسی شامل کارهایی از قبیل: [[آنالیز]] ، تولید الگوریتم ها ،الگوریتمها، پروفایل دقیق [[الگوریتم]] هاها و مصرف منابع و اجرای الگوریتم هاالگوریتمها به [[زبان برنامهنویسی |زبان برنامه نویسی]] انتخاب شده (معمولاً به عنوان رمزگذاری است). [[کد منبع]] برنامه به یک یا چند زبان نوشته شده استشدهاست که برای [[برنامهنویس|برنامه نویسان]] قابل درک است و نه [[کد ماشین]] ، که مستقیماً توسط [[واحد پردازش مرکزی]] اجرا می شودمیشود. هدف از برنامه نویسیبرنامهنویسی یافتن دنباله ای از [[مجموعه دستورالعمل| دستورالعمل هادستورالعملها]] است که باعث می شودمیشود عملکرد یک کار (که می تواندمیتواند به عنوان یک [[سیستمعامل|سیستم عامل]] پیچیده باشد) به صورت خودکار انجام شود ،شود، اغلب برای حل یک مشکل معین.معین؛ بنابراینبنابراین، ، برنامه نویسیبرنامهنویسی ماهرانه نیاز به تخصص در چندین موضوع مختلف ،مختلف، از جمله دانش در مورد دامنه برنامه ، الگوریتمبرنامه، هایالگوریتمهای تخصصی و منطق رسمی دارد. ▼
وظایف همراه و مرتبط با برنامه نویسیبرنامهنویسی عبارتند از: تست ،تست، [[اشکالزدایی|اشکال زدایی]] ، نگهداری [[کد منبع]] ، اجرای سیستم هایسیستمهای ساخت (build system) و مدیریت مصنوعات مشتق شده مانند کد ماشین برنامه هایبرنامههای رایانه ای. اینها ممکن است بخشی از فرایند برنامه نویسیبرنامهنویسی در نظر گرفته شود ،شود، اما غالباً اصطلاح [[توسعه نرمافزار |توسعه نرم افزار]] برای این فرایند بزرگتر با اصطلاح برنامهبرنامهنویسی، نویسی ، پیاده سازیپیادهسازی یا کدگذاری برای نوشتن واقعی کد استفاده می شودمیشود. [[مهندسی نرمافزار |مهندسی نرم افزار]] تکنیک هایتکنیکهای مهندسی را با شیوه هایشیوههای توسعه نرم افزارنرمافزار ترکیب می کندمیکند. [[مهندسی معکوس]] فرآیندفرایند مخالف است. یک [[رخنهگر|هکر]] هر متخصص کامپیوتر ماهر است که از دانش فنی خود برای غلبه بر یک مشکل استفاده می کند ،میکند، اما همچنین می تواندمیتواند به معنای یک [[هکر امنیتی]] به زبان مشترک باشد. ▼
▲'''برنامهنویسی''' '''رایانه''' {{اختصاری|برنامه نویسی}} فرایند طراحی و ساخت یک [[برنامه (رایانه)|برنامه کامپیوتری]] قابل [[اجرا (رایانش)|اجرا]] برای دستیابی به یک نتیجه محاسباتی خاص است. برنامه نویسی شامل کارهایی از قبیل: [[آنالیز]] ، تولید الگوریتم ها ، پروفایل دقیق [[الگوریتم]] ها و مصرف منابع و اجرای الگوریتم ها به [[زبان برنامهنویسی|زبان برنامه نویسی]] انتخاب شده (معمولاً به عنوان رمزگذاری است). [[کد منبع]] برنامه به یک یا چند زبان نوشته شده است که برای [[برنامهنویس|برنامه نویسان]] قابل درک است و نه [[کد ماشین]] ، که مستقیماً توسط [[واحد پردازش مرکزی]] اجرا می شود. هدف از برنامه نویسی یافتن دنباله ای از [[مجموعه دستورالعمل|دستورالعمل ها]] است که باعث می شود عملکرد یک کار (که می تواند به عنوان یک [[سیستمعامل|سیستم عامل]] پیچیده باشد) به صورت خودکار انجام شود ، اغلب برای حل یک مشکل معین. بنابراین ، برنامه نویسی ماهرانه نیاز به تخصص در چندین موضوع مختلف ، از جمله دانش در مورد دامنه برنامه ، الگوریتم های تخصصی و منطق رسمی دارد.
▲وظایف همراه و مرتبط با برنامه نویسی عبارتند از: تست ، [[اشکالزدایی|اشکال زدایی]] ، نگهداری [[کد منبع]] ، اجرای سیستم های ساخت (build system) و مدیریت مصنوعات مشتق شده مانند کد ماشین برنامه های رایانه ای. اینها ممکن است بخشی از فرایند برنامه نویسی در نظر گرفته شود ، اما غالباً اصطلاح [[توسعه نرمافزار|توسعه نرم افزار]] برای این فرایند بزرگتر با اصطلاح برنامه نویسی ، پیاده سازی یا کدگذاری برای نوشتن واقعی کد استفاده می شود. [[مهندسی نرمافزار|مهندسی نرم افزار]] تکنیک های مهندسی را با شیوه های توسعه نرم افزار ترکیب می کند. [[مهندسی معکوس]] فرآیند مخالف است. یک [[رخنهگر|هکر]] هر متخصص کامپیوتر ماهر است که از دانش فنی خود برای غلبه بر یک مشکل استفاده می کند ، اما همچنین می تواند به معنای یک [[هکر امنیتی]] به زبان مشترک باشد.
== تاریخچه ==
دستگاه هایدستگاههای قابل برنامه ریزیبرنامهریزی قرن هاست. در اوایل قرن نهم میلادی ،میلادی، یک ترتیب سنج موسیقی قابل برنامه ریزیبرنامهریزی توسط برادران فارسی [[بنوموسی|بانو موسی]] اختراع شد که یک دستگاه پخش خودکار فلوت را در کتاب دستگاه هایدستگاههای مبتکر توصیف کرد. در سال 1206 ،۱۲۰۶، مهندس عرب الجزاری یک دستگاه درام قابل برنامه ریزیبرنامهریزی را اختراع کرد که در آن می توانمیتوان از اتوماتیک مکانیکی موسیقی برای پخش ریتم هایریتمهای مختلف و الگوهای طبل ،طبل، از طریق میخ هامیخها و کامپ هاکامپها استفاده کرد. در سال 1801 ،۱۸۰۱، با تغییر دادن برنامه "«ژاکارد" »، بافندگی ژاکارد می تواندمیتواند بافتهای کاملاً متفاوتی تولید کند - مجموعه ای از کارتهای کارتن با سوراخهایی که در آنها وجود دارد.
الگوریتم هایالگوریتمهای رمزگشایی و [[تحلیل رمز]] کد نیز قرن هاقرنها وجود داشته استداشتهاست. در قرن نهم میلادی ،میلادی، ریاضیدان عرب آل كندی ،کندی، الگوریتم [[رمزگذاری|رمزنگاری]] را برای رمزگشایی كدکد رمزگذاری شده ،شده، در "«دستنوشته در رمزگشایی پیام هایپیامهای رمزنگاری"» شرح داد. او اولین توصیف رمزپزشکی را با استفاده از آنالیز فراوانی ،فراوانی، اولین الگوریتم رمزگشایی کد ارائه داد.
اولین برنامه رایانه ای به طوربهطور کلی به سال 1843۱۸۴۳ مربوط می شود ،میشود، هنگامی که Ada LovelaceLovelace، ، ریاضیدان ،ریاضیدان، الگوریتمی را برای محاسبه دنباله ای از اعداد Bernoulli منتشر کرد ،کرد، که قرار است توسط [[موتور تحلیلی]] [[چارلز ببیج|چارلز بابیج]] انجام شود.
در دهه 1880۱۸۸۰ هرمان هالریت مفهوم ذخیره داده هادادهها را به صورت قابل خواندن با دستگاه اختراع کرد. بعداً یک کنترل پنل (افزونه) به Tabulator Type 190 خود که به آن اضافه شده بود اجازه داد که برای مشاغل مختلف برنامه ریزیبرنامهریزی شود و تا اواخر دهه 1940۱۹۴۰ تجهیزات ضبط واحدی مانند IBM 602 و IBM 604 توسط پنل هایپنلهای کنترل به روش مشابهی برنامه ریزیبرنامهریزی شدند. ؛ اولین کامپیوترهای الکترونیکی با این حال ،حال، با مفهوم رایانه هایرایانههای برنامه ذخیره شده معرفی شده در سال 1949 ،۱۹۴۹، هر دو برنامه و داده هادادهها به همان شیوه در حافظه کامپیوتر ذخیره و دستکاری شدند.
[[کد ماشین]] زبان برنامه هایبرنامههای اولیه بود که در [[مجموعه دستورالعمل]] هایهای دستگاه خاص ،خاص، غالباً به صورت [[دستگاه اعداد دودویی|دودویی]] نوشته شده استشدهاست. به زودی زبانهای مونتاژ ایجاد شد که به برنامه نویسبرنامهنویس اجازه می دهدمیدهد تا دستورالعمل هادستورالعملها را در قالب متن مشخص کند (به عنوان مثال ،مثال، ADD X ،X، TOTAL) ، با اختصار برای هر کد عملیات و نام هاینامهای معنی دار برای مشخص کردن آدرس هاآدرسها. اما ،اما، از آنجا که یک زبان مونتاژ چیزی بیش از یک نشان دیگر برای یک زبان ماشین نیست ،نیست، هر دو ماشین با مجموعه هایمجموعههای مختلف دستورالعمل نیز دارای زبان هایزبانهای مونتاژ متفاوت هستند.
زبانهای سطح بالا روند تهیه یک برنامه را ساده ترسادهتر و قابل فهم تر و محدودتر به سخت افزارسختافزار زیرین می کردندمیکردند. FORTRAN ،FORTRAN، اولین زبان سطح پرکاربرد برای اجرای عملی ،عملی، در سال 1957۱۹۵۷ منتشر شد [10۱۰] و بسیاری از زبان هایزبانهای دیگر به زودی توسعه یافتند - به ویژه ،ویژه، COBOL با هدف پردازش داده هایدادههای تجاری و لیپ برای تحقیقات رایانه.
برنامه هابرنامهها بیشتر با استفاده از کارتهای پانچ شده یا نوار کاغذی وارد می شدندمیشدند. برنامه عصر رایانه را در عصر کارت پانچ ببینید. در اواخر دهه 1960۱۹۶۰، ،دستگاههای دستگاه های ذخیره سازیذخیرهسازی داده و پایانه هایپایانههای رایانه به اندازه کافی ارزان شدند که میمیتوان توان برنامه هابرنامهها را با تایپ کردن مستقیم به رایانه هارایانهها ایجاد کرد. [[ویرایشگر متن|ویرایشگرهای متن]] (خود برنامه هابرنامهها) ساخته شده اندشدهاند که اجازه می دهدمیدهد تغییرات و اصلاحات بسیار آسانتر از کارتهای سوراخ شده انجام شود.
== برنامهنویسی مدرن ==
=== کیفیت مورد نیاز ===
هر روشی که برای برنامهنویسی به کار برود، برنامه نهایی باید دارای تعدادی مشخصات پایه باشد. مشخصات زیر تعدادی از مهمترین آنها هستند.
برنامه نویسان حرفهای با گسترهای از الگوریتمهای خوب سازمان یافته آشنایی دارند و پیچیدگیهای مخصوص آنها را میدانند و در نتیجه از این دانستهها برای انتخاب الگوریتمهای مناسب برای شرایط مورد نظر خود، استفاده میکنند.
==== الگوریتم هایالگوریتمهای شطرنج به عنوان نمونه ====
"برنامه نویسی رایانه برای بازی شطرنج" مقاله ای در سال 1950۱۹۵۰ بود که یک الگوریتم "minimax" را که بخشی از تاریخ پیچیدگی الگوریتمی است ارزیابی می کندمیکند. دوره ای در مورد IBM's Deep Blue (کامپیوتر شطرنج) بخشی از برنامه درسی علوم کامپیوتر در دانشگاه استنفورد است.
=== کاربرد الگوریتم و روندنماروندنما در برنامهنویسی ===
یکی از مهمترین پیشنیازهای برنامهنویسی اطلاع داشتن از نحوهٔ حل مسئله و [[الگوریتم|الگوریتمهای برنامهنویسی]] است، الگوریتمها به صورت خاص نحوهٔ حل و منطق زبان برنامهنویسی را بیان میکنند، نمای تصویری الگوریتم را [[روندنما]] مینامند، پس از نوشتن یک الگوریتم کامل برنامهنویسی میتوان اقدام به رسم روندنما کرد تا نمود بصری الگوریتم به خوبی نمایان گردد.<ref>{{یادکرد وب|نویسنده=|کد زبان=fa-IR|
=== روشها ===
قدم اول در فرایند توسعه بیشتر نرمافزارها به شکل معمول شامل بررسی نیازمندیها، سپس آزمایش برای تشخیص الگوی متغیرها، اجرا و سپس حذف خرابیها ([[اشکالزدایی|اشکال زدایی]]) است. راههای مختلفی برای رسیدن به هر کدام از این وظایف وجود دارند. یک راه پرطرفدار برای [[تحلیل نیازمندیها]] تحلیل [[مورد استفاده|مورد کاربردی]] است. بسیاری از برنامه نویسان از شکل [[توسعه نرمافزاری چابک|توسعه چابک نرمافزاری]] استفاده میکنند؛ در این روش مراحل مختلف توسعه نرمافزار به شکل چرخههای کوتاه با هم ترکیب میشوند بهطوریکه هر کدام از این چرخهها فقط چند هفته طول بکشند. این در مقابل روش معمول است که ممکن است چند سال زمان ببرد. روشهای خیلی زیادی برای روند توسعه برنامهها وجود دارند.
تعیین اینکه محبوبترین زبان برنامهنویسی مدرن کدام است کار بسیار مشکلی است. بعضی از زبانها در کاربردهای خاصی محبوب است و بعضی دیگر مرتباً در نوشتن کاربردهای گوناگون استفاده میشود.
روشهای اندازهگیری محبوبیت زبان شامل موارد زیر میباشد:
شمردن تعداد آگهیهای اشتغال و توجه به یک زبان، تعداد کتابهای آموزشی فروخته شده در مورد یک زبان، تخمین تعداد خطوط کد نوشته شده در یک زبان؛ که میتوان با استفاده سوابق کاری ایجاد شده با نرمافزارهای برنامهنویسی، زبان برنامه [[ویژوال بیسیک]] را جز محبوبترین زبان یاد کرد.
که میتوان با استفاده سوابق کاری ایجاد شده با نرمافزارهای برنامهنویسی، زبان برنامه [[ویژوال بیسیک]] را جز محبوبترین زبان یاد کرد.
=== اشکال زدایی ===
== کاربرد زبان برنامهنویسی ==
اجرا و عملی ساختن الگوریتمهای انتزاعی وابسته به هم بهوسیله تولید یک برنامه رایانهای مشخص با ابزار [[زبان برنامهنویسی]] ممکن است.
برنامه نویسیبرنامهنویسی وب، یکی از کاربردهای زبان برنامه نویسیبرنامهنویسی است و وب مستر ها،مسترها، با دانش کامل به این زبانها، اقدام به طراحی سایت میکنند؛ تمام کارهایی که یک برنامه نویسبرنامهنویس وب انجام میدهدمیدهد نوشتن کدهایی است که در پشت صحنه پردازشهایی انجام میدهندمیدهند ولی کاربر نمیتواندنمیتواند آن پردازش هاپردازشها را ببیند. <ref>https://aysaco.ir/web-programming/</ref>
=== روش شناسیروششناسی ===
اولین قدم در اکثر فرآیندهای رسمی توسعه نرم افزار ،نرمافزار، تجزیه و تحلیل الزامات است ،است، و پس از آن آزمایش برای تعیین مدلمدلسازی سازیارزش، ارزش ، پیاده سازیپیادهسازی و حذف نقص (اشکال زدایی) انجام می شودمیشود. برای هر یک از این کارها رویکردهای مختلفی وجود دارد. یکی از رویکردهای محبوب برای تجزیه و تحلیل الزامات ،الزامات، استفاده از آنالیز Case است. بسیاری از برنامه نویسان از اشکال توسعه نرم افزارنرمافزار Agile استفاده می کنندمیکنند که مراحل مختلف توسعه نرم افزارنرمافزار رسمی در چرخه هایچرخههای کوتاه که چند هفته به طول می انجامندمیانجامند در کنار هم قرار گرفته اندگرفتهاند. رویکردهای زیادی برای فرآیندفرایند توسعه نرم افزارنرمافزار وجود دارد.
تکنیک هایتکنیکهای محبوب سازی مدل سازیمدلسازی شامل تحلیل و طراحی شی گرا (OOAD) و معماری مدل محور (MDA) است. زبان مدل سازیمدلسازی متحد (UML) علامتی است که برای OOAD و MDA استفاده می شودمیشود.
تکنیک مشابهی که برای طراحی بانک اطلاعاتی مورد استفاده قرار میمیگیرد، گیرد ، مدل سازیمدلسازی رابطه-رابطه (Entity-Modelation) (مدل سازیمدلسازی ER) است.
تکنیک هایتکنیکهای اجرای شامل زبان هایزبانهای ضروری (شی گرا یا رویه ای) ، زبان هایزبانهای کاربردی و زبان هایزبانهای منطقی است.
=== اندازه گیریاندازهگیری میزان استفاده از زبان ===
تعیین اینکه محبوب ترینمحبوبترین زبانهای برنامه نویسیبرنامهنویسی مدرن چیست ،چیست، بسیار دشوار است. روشهای سنجش محبوبیت زبان برنامه نویسیبرنامهنویسی عبارتند از: شمارش تعداد آگهی هایآگهیهای شغلی که به آن زبان اشاره می کنند ،میکنند، تعداد کتاب هایکتابهای فروخته شده و دوره هایدورههای آموزش زبان (این اهمیت بیش از حد زبان هایزبانهای جدید را بالاتر می بردمیبرد) و تخمین تعداد خطوط موجود کد نوشته شده به زبان (این کمترین تعداد کاربران زبانهای تجاری مانند COBOL را دست کم می گیردمیگیرد).
برخی از زبانها برای انواع خاصی از برنامه هابرنامهها بسیار محبوب هستند ،هستند، در حالی که برخی از زبانزبانها ها به طوربهطور مرتب برای نوشتن انواع مختلف برنامه هابرنامهها مورد استفاده قرار می گیرندمیگیرند. به عنوان مثال ،مثال، COBOL هنوز هم در مراکز داده هایدادههای شرکتی غالباً در رایانه هایرایانههای اصلی بزرگ ،بزرگ، Fortran در برنامهبرنامههای هایمهندسی، مهندسی ، زبان هایزبانهای اسکریپت در توسعه وب و C در نرم افزارهاینرمافزارهای تعبیه شده قوی است. بسیاری از برنامه هابرنامهها از ترکیبی از چندین زبان در ساخت و استفاده خود استفاده می کنندمیکنند. زبانهای جدید عموماً در حدود نحو یک زبان قبلی طراحی شده اندشدهاند که قابلیت هایقابلیتهای جدیدی نیز به آن اضافه شده استشدهاست (به عنوان مثال C ++ جهت یابیجهتیابی به شی را به C اضافه می کند ،میکند، و جاوا مدیریت حافظه و بایت کد را به C ++ اضافه می کند ،میکند، اما در نتیجه بازده و توانایی کم را از دست می دهدمیدهد. دستکاری ساده)
=== اشکال زدایی ===
اشکال زدایی کار بسیار مهمی در فرایند توسعه نرم افزارنرمافزار است زیرا نقص در یک برنامه می تواندمیتواند عواقب قابل توجهی برای کاربران آن داشته باشد. بعضی از زبانها بیشتر مستعد ابتلا به برخی از خطاها هستند زیرا مشخصات آنها به کامپایلرها نیاز ندارد تا به همان اندازه سایر زبانها بررسی کنند. استفاده از ابزار تجزیه و تحلیل کد استاتیک می تواندمیتواند به تشخیص برخی از مشکلات احتمالی کمک کند. به طوربهطور معمول اولین مرحله برای اشکال زدایی تلاش برای تولید مثل مشکل است. این می تواندمیتواند یک کار غیر مهم باشد ،باشد، به عنوان مثال با فرآیندهای موازی یا برخی از اشکالات نرم افزارینرمافزاری غیرمعمول. همچنین ،همچنین، شرایط خاص کاربر و تاریخچه استفاده می تواندمیتواند تولید مشکل را دشوار کند.
پس از تولید مجدد اشکال ،اشکال، ممکن است ورودی برنامه ساده شود تا اشکال زدایی آسانتر شود. به عنوان مثال ،مثال، یک اشکال در کامپایلر می تواندمیتواند هنگام عبور از فایل منبع بزرگ خراب شود. با این حال ،حال، پس از ساده سازیسادهسازی مورد آزمایشی ،آزمایشی، فقط چند خط از پرونده منبع اصلی می تواندمیتواند برای تکثیر همان تصادف کافی باشد. چنین ساده سازی میسادهسازی تواندمیتواند به صورت دستی و با استفاده از روش تقسیم و تسخیر انجام شود. برنامه نویسبرنامهنویس سعی خواهد کرد که برخی از قسمت هایقسمتهای تست اصلی را حذف کند و بررسی کند که آیا این مشکل هنوز وجود دارد یا خیر. هنگام اشکال زدایی مشکل در یک رابط کاربری گرافیکیگرافیکی، ،برنامهنویس برنامه نویس می تواندمیتواند سعی کند برخی از تعامل هایتعاملهای کاربر را از توضیحات اصلی مسئله جست و جو کند و بررسی کند که آیا اقدامات دیگر برای ظاهر اشکالات وجود دارد یا خیر.
اشکال زدایی اغلب با [[محیط یکپارچه توسعه نرمافزار|IDE]] هاییهایی مانند Eclipse ،, Visual Studio ،, Xcode ،, Kdevelop ،, NetBeans و Code :: Blocks انجام می شودمیشود. از اشکال زدایی هایزداییهای مستقل مانند GDB نیز استفاده می شوندمیشوند و اینها معمولاً کمتر از یک محیط بصری استفاده می کنند ،میکنند، معمولاً با استفاده از یک خط فرمان. برخی از ویرایشگرهای متنی مانند Emacs به GDB اجازه می دهندمیدهند تا از طریق آنها فراخوانی شود تا محیط بصری را فراهم کند.
== نمونه یک برنامه ==
پس از نوشتن یک برنامه مانند بالا، برنامهٔ مترجم (در اینجا Basic) دستورها را تبدیل به فرامینی میکند که لایه زیرین، که ممکن است همان [[سختافزار]] باشد، میتواند آنها را ''اجرا'' کند.
برای راحتتر شدن کدنویسی (برنامهنویسی) از نرمافزارهای مختلفی وابسته به زبان آن استفاده میکنند که به آن هاآنها [[محیط یکپارچه توسعه نرمافزار]] گفته میشودمیشود به عنوان مثال برای کدنویسی به [[سی شارپ|زبان سی شارپ]] از نرمافزار [[مایکروسافت ویژوال استودیو]] استفاده میشود.
== پارادایمها ==
مقاله اصلی: [[زبان برنامهنویسی]]
زبان هایزبانهای مختلف برنامه نویسیبرنامهنویسی وجود دارند که هر کدام از آنها سبکهای خاصی را پشتیبانی میکنند. (به نام [[الگو برنامهنویسی|پارادایمپارادایمهای های برنامه نویسیبرنامهنویسی]]). انتخاب زبان مورد استفاده مورد توجه بسیاری از مباحث از قبیل خط مشی شرکت ،شرکت، مناسب بودن در انجام کار ،کار، در دسترس بودن بسته هایبستههای شخص ثالث یا ترجیح شخصی است. در حالت ایده آل ،ایدهآل، زبان برنامه نویسیبرنامهنویسی که برای کار مورد نظر مناسب تر باشد انتخاب می شودمیشود. تجارت از این ایده آلایدهآل شامل یافتن برنامه نویسان به اندازه کافی است که زبان را برای ایجاد یک تیم می شناسند ،میشناسند، در دسترس بودن کامپایلرها برای آن زبان و کارآییکارایی که برنامه هایبرنامههای آنها را با یک زبان خاص اجرا می کنندمیکنند. زبانها طیف تقریبی را از "«سطح پایین"» تا "«سطح بالا"» تشکیل می دهندمیدهند. زبانهای "«سطح پایین" به» طوربهطور معمول بیشتر دستگاه محور و سریعتر اجرا می شوند ،میشوند، و به زبان ماشین نزدیکتر هستند در حالی که زبانهای "«سطح بالا"» انتزاعی تر و آسان ترآسانتر برای استفاده هستند اما سرعت کمتری دارند. معمولاً کدگذاری به زبانهای "«سطح بالا"» از زبانزبانهای های "«سطح پایین"» ساده ترسادهتر است.
[[آلن داونی]] در کتاب " چگونه به شکل یک استاد رایانه فکر کنیم " مینویسد:
* حالتهای شرطی: شرطهای مشخصی را کنترل میکند و بر اساس آن رشته مناسبی از عبارات را اجرا میکند.
* حلقه: بعضی اعمال را به شکل تکراری انجام میدهد، معمولاً با استفاده از تعدادی از متغیرها این کار انجام میشود.
بسیاری از زبانهای برنامهنویسی مکانیسمهایی را برای تماس با [[رویه (علوم رایانه)|توابع]] ارائه شده توسط [[کتابخانه (رایانه)|کتابخانههای مشترک]] فراهم می كنندمیکنند. مشروط بر اینکه توابع موجود در یک کتابخانه از کنوانسیون هایکنوانسیونهای زمان اجرا مناسب پیروی کنند (مثلاً روش گذراندن [[پراسنجه (برنامهنویسی رایانهای)|آرگومان هاآرگومانها]]) ، ممکن است این توابع به هر زبان دیگری نوشته شود.
== برنامه نویسان ==
همچنین ببینید: [[توسعهدهنده نرمافزار|توسعه دهنده نرمافزار]]، [[مهندس نرمافزار]]
برنامه نویسان رایانه کسانی هستند که [[نرمافزار|نرم افزارنرمافزار رایانه ای]] می نویسندمینویسند. مشاغل آنها معمولاً شامل موارد زیر است:
{{چندستونه||30em}}
* [[کد نویسی]]
{{پانویس}}
{{چپچین}}
* <ref>https://en.wikipedia.org/wiki/Computer_programming</ref>
* Programming: Principles and Practice Using C++ by Bjarne Stroustrup, Publisher: Addison-Wesley Professional, 2008
* Faster Smarter Beginning Programming by Jim Buyens, Publisher: Microsoft Press, 2002
== پیوند به بیرون ==
[https://limoo.org/academy/ برنامه نویسیبرنامهنویسی چیست]
[[رده:برنامهنویسی]]
[[رده:رایانه]]
|