stringtranslate.com

برنامه نویسی کامپیوتر

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

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

تاریخچه

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

دستگاه های قابل برنامه ریزی قرن هاست که وجود داشته اند. در اوایل قرن نهم، یک ترتیب‌دهنده موسیقی قابل برنامه‌ریزی توسط برادران ایرانی بانو موسی اختراع شد که یک دستگاه فلوت مکانیکی خودکار را در کتاب دستگاه‌های مبتکر توصیف کردند . [3] [4] در سال 1206، مهندس عرب الجزاری یک دستگاه درام قابل برنامه ریزی را اختراع کرد که در آن یک خودکار مکانیکی موسیقی می توانست برای نواختن ریتم ها و الگوهای طبل مختلف، از طریق گیره و بادامک ساخته شود . [5] [6] در سال 1801، دستگاه بافندگی ژاکارد می‌توانست با تغییر «برنامه» بافت‌های کاملاً متفاوتی تولید کند - یک سری کارت‌های مقوایی با سوراخ‌هایی روی آن‌ها.

الگوریتم های کدشکن نیز قرن هاست که وجود داشته اند. در قرن نهم، الکندی ، ریاضیدان عرب ، الگوریتم رمزنگاری را برای رمزگشایی کدهای رمزگذاری شده در کتاب دستنوشته ای درباره رمزگشایی پیام های رمزنگاری شده توصیف کرد . او اولین توصیف را از تحلیل رمز با استفاده از تجزیه و تحلیل فرکانس ارائه کرد که اولین الگوریتم شکستن کد است. [7]

اولین برنامه کامپیوتری عموماً به سال 1843 مربوط می شود، زمانی که ریاضیدان آدا لاولیس الگوریتمی را برای محاسبه دنباله ای از اعداد برنولی منتشر کرد که قرار بود توسط موتور تحلیلی چارلز بابیج انجام شود . [8] با این حال، چارلز بابیج خود برنامه ای برای AE در سال 1837 نوشته بود. [9] [10]

داده‌ها و دستورالعمل‌ها زمانی بر روی کارت‌های پانچ خارجی ذخیره می‌شدند که به ترتیب نگهداری می‌شدند و در عرشه‌های برنامه مرتب می‌شدند.

در دهه 1880، هرمان هولریث مفهوم ذخیره سازی داده ها را به شکل قابل خواندن توسط ماشین ابداع کرد. [11] بعداً یک صفحه کنترل (برد پلاگین) به جدولگر نوع I در سال 1906 اضافه شد و اجازه داد تا برای کارهای مختلف برنامه ریزی شود و در اواخر دهه 1940، تجهیزات ضبط واحد مانند IBM 602 و IBM 604 توسط پانل های کنترل برنامه ریزی شدند. به روشی مشابه، همانطور که اولین کامپیوترهای الکترونیکی بودند . با این حال، با مفهوم کامپیوتر برنامه ذخیره‌شده در سال 1949، هم برنامه‌ها و هم داده‌ها به یک شکل در حافظه رایانه ذخیره و دستکاری شدند . [12]

زبان ماشین

کد ماشین زبان برنامه های اولیه بود که در مجموعه دستورات ماشین خاص نوشته می شد، اغلب به صورت دودویی . زبان‌های اسمبلی به زودی توسعه یافتند که به برنامه‌نویس اجازه می‌داد دستورالعمل‌ها را در قالب متنی (مثلاً ADD X، TOTAL) با اختصارات برای هر کد عملیات و نام‌های معنی‌دار برای تعیین آدرس‌ها مشخص کند. با این حال، از آنجایی که یک زبان اسمبلی کمی بیشتر از یک نماد متفاوت برای یک زبان ماشین است، دو ماشین با مجموعه‌های دستورالعمل متفاوت نیز زبان‌های اسمبلی متفاوتی دارند.

کنترل پنل سیمی برای ماشین حسابداری IBM 402 . سیم‌ها جریان‌های پالس را از کارت‌خوان به شمارنده‌ها و دیگر منطق‌های داخلی و در نهایت به چاپگر متصل می‌کنند.

زبان های کامپایلر

زبان‌های سطح بالا، فرآیند توسعه یک برنامه را ساده‌تر و قابل فهم‌تر کرده و کمتر به سخت‌افزار زیرین محدود می‌شوند . اولین ابزار مرتبط با کامپایلر، سیستم A-0 ، در سال 1952 [13] توسط گریس هاپر ، که اصطلاح "کامپایلر" را نیز ابداع کرد، توسعه یافت . [14] [15] FORTRAN ، اولین زبان پرکاربرد سطح بالا که دارای یک پیاده سازی کاربردی بود، در سال 1957 منتشر شد، [16] و بسیاری از زبان های دیگر به زودی توسعه یافتند - به ویژه، COBOL با هدف پردازش داده های تجاری، و Lisp. برای تحقیقات کامپیوتری

این زبان‌های کامپایل‌شده به برنامه‌نویس اجازه می‌دهند تا برنامه‌هایی را با عباراتی بنویسد که از نظر نحوی غنی‌تر هستند، و توانایی بیشتری در انتزاع کد دارند، و هدف قرار دادن مجموعه‌های دستورات مختلف ماشین را از طریق اعلان‌های کامپایل و اکتشافی آسان می‌کنند . کامپایلرها از قدرت رایانه‌ها برای آسان‌تر کردن برنامه‌نویسی استفاده کردند [16] با اجازه دادن به برنامه‌نویسان برای تعیین محاسبات با وارد کردن یک فرمول با استفاده از نماد infix .

ورود کد منبع

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

برنامه نویسی مدرن

الزامات کیفیت

رویکرد توسعه هر چه باشد، برنامه نهایی باید برخی از ویژگی های اساسی را برآورده کند. خواص زیر از مهمترین آنها هستند: [17] [18]

استفاده از تست های خودکار و توابع تناسب اندام می تواند به حفظ برخی از ویژگی های ذکر شده کمک کند. [20]

خوانایی کد منبع

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

خوانایی مهم است زیرا برنامه نویسان بیشتر وقت خود را صرف خواندن، تلاش برای درک، استفاده مجدد و اصلاح کد منبع موجود می کنند، نه نوشتن کد منبع جدید. کدهای ناخوانا اغلب منجر به اشکالات، ناکارآمدی ها و کدهای تکراری می شود . یک مطالعه نشان داد که چند تغییر خوانایی ساده کد را کوتاه‌تر کرده و زمان درک آن را به شدت کاهش می‌دهد. [21]

پیروی از یک سبک برنامه نویسی ثابت اغلب به خوانایی کمک می کند. با این حال، خوانایی چیزی فراتر از سبک برنامه نویسی است. بسیاری از عوامل، که ارتباط کمی با توانایی رایانه در کامپایل و اجرای مؤثر کد دارند، به خوانایی کمک می کنند. [22] برخی از این عوامل عبارتند از:

جنبه های ارائه این (مانند تورفتگی، شکسته شدن خط، برجسته کردن رنگ، و غیره) اغلب توسط ویرایشگر کد منبع مدیریت می شود ، اما جنبه های محتوا نشان دهنده استعداد و مهارت های برنامه نویس است.

زبان های برنامه نویسی بصری مختلف نیز با هدف رفع نگرانی های مربوط به خوانایی با اتخاذ رویکردهای غیر سنتی برای ساختار و نمایش کد توسعه داده شده اند. محیط های توسعه یکپارچه (IDE) با هدف ادغام تمام این کمک ها هستند. تکنیک هایی مانند بازآفرینی کد می توانند خوانایی را افزایش دهند.

پیچیدگی الگوریتمی

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

روش شناسی ها

اولین گام در اکثر فرآیندهای رسمی توسعه نرم افزار، تجزیه و تحلیل نیازمندی ها است ، به دنبال آن آزمایش برای تعیین مدل سازی ارزش، پیاده سازی، و حذف شکست (اشکال زدایی) انجام می شود. برای هر یک از این وظایف، رویکردهای متفاوتی وجود دارد. یکی از رویکردهای رایج برای تحلیل نیازمندی ها، تحلیل Use Case است . بسیاری از برنامه نویسان از اشکال توسعه نرم افزار Agile استفاده می کنند که در آن مراحل مختلف توسعه نرم افزار رسمی بیشتر با هم در چرخه های کوتاهی که چند هفته طول می کشد به جای سال ها یکپارچه می شوند. رویکردهای زیادی برای فرآیند توسعه نرم افزار وجود دارد.

تکنیک‌های مدل‌سازی محبوب شامل تحلیل و طراحی شی گرا ( OOAD ) و معماری مدل محور ( MDA ) است. زبان مدلسازی یکپارچه ( UML ) نمادی است که برای هر دو OOAD و MDA استفاده می شود.

تکنیک مشابهی که برای طراحی پایگاه داده استفاده می شود، مدلسازی نهادی-رابطه ( ER Modeling ) است.

تکنیک های پیاده سازی شامل زبان های امری ( شی گرا یا رویه ایزبان های تابعی و زبان های برنامه نویسی منطقی است .

اندازه گیری استفاده از زبان

تعیین محبوب ترین زبان های برنامه نویسی مدرن بسیار دشوار است. روش‌های اندازه‌گیری محبوبیت زبان برنامه‌نویسی عبارتند از: شمارش تعداد آگهی‌های شغلی که به آن زبان اشاره می‌کند، [23] تعداد کتاب‌های فروخته شده و دوره‌های آموزش زبان (این امر اهمیت زبان‌های جدیدتر را بیش از حد برآورد می‌کند)، و تخمین تعداد خطوط موجود. کد نوشته شده در زبان (این تعداد کاربران زبان های تجاری مانند COBOL را دست کم می گیرد).

برخی از زبان ها برای انواع خاصی از برنامه ها بسیار محبوب هستند، در حالی که برخی از زبان ها به طور منظم برای نوشتن انواع مختلف برنامه ها استفاده می شوند. برای مثال، COBOL هنوز در مراکز داده شرکتی [24] اغلب در رایانه‌های بزرگ بزرگ ، فرترن در برنامه‌های مهندسی، زبان‌های برنامه‌نویسی در توسعه وب و C در نرم‌افزارهای تعبیه‌شده قوی است . بسیاری از برنامه ها از ترکیبی از چندین زبان در ساخت و استفاده خود استفاده می کنند. زبان‌های جدید عموماً حول سینتکس زبان قبلی با قابلیت‌های جدید اضافه شده طراحی می‌شوند (به عنوان مثال C++ شی گرایی را به C اضافه می‌کند و جاوا مدیریت حافظه و کد بایت را به C++ اضافه می‌کند، اما در نتیجه کارایی و توانایی کم را از دست می‌دهد. دستکاری سطح).

اشکال زدایی

اولین باگ واقعی شناخته شده که باعث ایجاد مشکل در رایانه می‌شود، یک شب پره بود که در یک رایانه اصلی هاروارد به دام افتاده بود، که در یک دفترچه ثبت نام در تاریخ 9 سپتامبر 1947 ثبت شد . حشره پیدا شد

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

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

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

زبان های برنامه نویسی

زبان های برنامه نویسی مختلف از سبک های مختلف برنامه نویسی پشتیبانی می کنند (به نام پارادایم های برنامه نویسی ). انتخاب زبان مورد استفاده به ملاحظات زیادی بستگی دارد، مانند خط مشی شرکت، مناسب بودن برای انجام وظیفه، در دسترس بودن بسته های شخص ثالث، یا ترجیحات فردی. در حالت ایده آل، زبان برنامه نویسی که برای کار در دست مناسب است انتخاب می شود. معاوضه از این ایده آل شامل یافتن برنامه نویسان کافی است که زبان را برای ساختن یک تیم می دانند، در دسترس بودن کامپایلر برای آن زبان، و کارایی برنامه های نوشته شده در یک زبان خاص اجرا می شوند. زبان ها یک طیف تقریبی از "سطح پایین" تا "سطح بالا" را تشکیل می دهند. زبان‌های «سطح پایین» معمولاً ماشین‌گراتر و سریع‌تر اجرا می‌شوند، در حالی که زبان‌های «سطح بالا» انتزاعی‌تر و آسان‌تر برای استفاده هستند اما با سرعت کمتری اجرا می‌شوند. معمولا کدنویسی در زبان های "سطح بالا" آسان تر از زبان های "سطح پایین" است. زبان های برنامه نویسی برای توسعه نرم افزار ضروری هستند. آنها بلوک های سازنده همه نرم افزارها هستند، از ساده ترین برنامه ها تا پیچیده ترین آنها.

آلن داونی در کتاب خود چگونه مانند یک دانشمند کامپیوتر فکر کنیم می نویسد:

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

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

برنامه نویسان

برنامه نویسان کامپیوتر کسانی هستند که نرم افزار کامپیوتری می نویسند. مشاغل آنها معمولاً شامل موارد زیر است:

اگرچه برنامه نویسی در رسانه ها به عنوان یک موضوع تا حدودی ریاضی ارائه شده است، اما برخی تحقیقات نشان می دهد که برنامه نویسان خوب مهارت های قوی در زبان های طبیعی انسانی دارند و یادگیری کدنویسی مشابه یادگیری یک زبان خارجی است . [26] [27]

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

مراجع

  1. ببینگتون، شان (2014). "کد نویسی چیست". تامبلر ​بایگانی‌شده از نسخه اصلی در ۲۹ آوریل ۲۰۲۰ . بازیابی شده در 3 مارس 2014 .
  2. ببینگتون، شان (2014). "برنامه نویسی چیست". تامبلر ​بایگانی‌شده از نسخه اصلی در ۲۹ آوریل ۲۰۲۰ . بازیابی شده در 3 مارس 2014 .
  3. کوتسیر، تیون (2001). "در مورد ماقبل تاریخ ماشین های قابل برنامه ریزی: اتوماتای ​​موسیقی، ماشین های بافندگی، ماشین حساب". مکانیسم و ​​نظریه ماشین . 36 (5). الزویر: 589–603. doi :10.1016/S0094-114X(01)00005-2.
  4. ^ کاپور، آجی؛ کارنگی، دیل؛ مورفی، جیم؛ لانگ، جیسون (2017). "بلندگوهای اختیاری: تاریخچه موسیقی الکتروآکوستیک مبتنی بر بلندگو". صدای سازمان یافته 22 (2). انتشارات دانشگاه کمبریج : 195-205. doi : 10.1017/S1355771817000103 . ISSN  1355-7718.
  5. فاولر، چارلز بی. (اکتبر 1967). "موزه موسیقی: تاریخچه سازهای مکانیکی". مجله مربیان موسیقی . 54 (2): 45-49. doi :10.2307/3391092. JSTOR  3391092. S2CID  190524140.
  6. نوئل شارکی (2007)، یک ربات قابل برنامه ریزی قرن سیزدهم، دانشگاه شفیلد
  7. دولی، جان اف (2013). تاریخچه مختصر رمز شناسی و الگوریتم های رمزنگاری . Springer Science & Business Media. صص 12-3. شابک 9783319016283.
  8. ^ فوئگی، ج. فرانسیس، جی (2003). «لاولیس و بابیج و ایجاد «یادداشت‌های» 1843". IEEE Annals of the History of Computing . 25 (4): 16. doi :10.1109/MAHC.2003.1253887.
  9. روجاس، آر. (2021). "برنامه های کامپیوتری چارلز بابیج". IEEE Annals of the History of Computing . 43 (1): 6-18. doi :10.1109/MAHC.2020.3045717.
  10. روجاس، آر. (2024). "اولین برنامه کامپیوتری". ارتباطات ACM . 67 (6): 78-81. doi : 10.1145/3624731 .
  11. ^ دا کروز، فرانک (10 مارس 2020). "تاریخ محاسبات دانشگاه کلمبیا - هرمان هولریث". دانشگاه کلمبیا Columbia.edu. بایگانی‌شده از نسخه اصلی در ۲۹ آوریل ۲۰۲۰ . بازیابی شده در 25 آوریل 2010 .
  12. "حافظه و ذخیره سازی | جدول زمانی تاریخ کامپیوتر | موزه تاریخ کامپیوتر". www.computerhistory.org . بایگانی شده از نسخه اصلی در 27 مه 2021 . بازبینی شده در 3 ژوئن 2021 .
  13. ریدوی، ریچارد (1952). "تدوین روال". مجموعه مقالات نشست ملی ACM 1952 (تورنتو) در - ACM '52 . صص 1-5. doi : 10.1145/800259.808980 . شابک 9781450379250. S2CID  14878552.
  14. موریس وی ویلکس . 1968. کامپیوترها در آن زمان و اکنون. مجله انجمن ماشین های محاسباتی، 15 (1): 1-7، ژانویه. ص 3 (یک نظر در پرانتز اضافه شده توسط ویرایشگر)، "(من فکر نمی کنم که اصطلاح کامپایلر در آن زمان [1953] به طور کلی استفاده می شد، اگرچه در واقع توسط گریس هاپر معرفی شده بود.)"
  15. ^ [1] اولین کامپایلرهای COBOL جهان در 13 اکتبر 2011 در Wayback Machine بایگانی شدند
  16. ↑ اب برگشتاین، برایان (20 مارس 2007). «جان بکوس خالق فورترن درگذشت». NBC News . بایگانی‌شده از نسخه اصلی در ۲۹ آوریل ۲۰۲۰ . بازیابی شده در 25 آوریل 2010 .
  17. «NIST برای توسعه نقشه راه ابری». هفته اطلاعات 5 نوامبر 2010. ابتکار محاسبات به دنبال حذف موانع برای پذیرش ابر در امنیت، قابلیت همکاری، قابلیت حمل و قابلیت اطمینان است.
  18. «بر چه چیزی استوار است». دنیای کامپیوتر 9 آوریل 1984. ص. 13. آیا بر اساس ... قابلیت اطمینان قابل حمل. سازگاری
  19. "برنامه نویسی 101: نکاتی برای تبدیل شدن به یک برنامه نویس خوب - Wisdom Geek". گیک عقل . 19 مه 2016. بایگانی شده از نسخه اصلی در 23 می 2016 . بازبینی شده در 23 مه 2016 .
  20. ^ مبانی معماری نرم افزار: یک رویکرد مهندسی . رسانه اوریلی 2020. شابک 978-1492043454.
  21. ^ الشوف، جیمز ال. مارکوتی، مایکل (1982). "بهبود خوانایی برنامه های کامپیوتری برای کمک به اصلاح". ارتباطات ACM . 25 (8): 512-521. doi : 10.1145/358589.358596 . S2CID  30026641.
  22. ^ چندگانه (ویکی). "خوانایی". داکفورج . بایگانی‌شده از نسخه اصلی در ۲۹ آوریل ۲۰۲۰ . بازیابی شده در 30 ژانویه 2010 .
  23. Enticknap، Nicholas (11 سپتامبر 2007). "نظرسنجی هفتگی حقوق فناوری اطلاعات SSL/کامپیوتر: رونق مالی باعث رشد شغل فناوری اطلاعات می شود" . بایگانی شده از نسخه اصلی در 26 اکتبر 2011 . بازیابی شده در 24 ژوئن 2009 .
  24. میچل، رابرت (۲۱ مه ۲۰۱۲). "فرار مغزهای کوبول". دنیای کامپیوتر بایگانی شده از نسخه اصلی در 12 فوریه 2019 . بازبینی شده در 9 مه 2015 .
  25. «عکس از مرکز جنگ سطح نیروی دریایی، داهلگرن، ویرجینیا، از سپتامبر ۱۹۴۷ نشنال جئوگرافیک». 15 جولای 2020. بایگانی شده از نسخه اصلی در 13 نوامبر 2020 . بازیابی شده در 10 نوامبر 2020 .
  26. ^ پرات، شانتل اس. مادیاستا، تارا م. موتارلا، مالایکا جی. Kuo, Chu-Hsuan (2 مارس 2020). "ارتباط استعداد زبان طبیعی با تفاوت های فردی در یادگیری زبان های برنامه نویسی". گزارش های علمی 10 (1): 3817. Bibcode :2020NatSR..10.3817P. doi :10.1038/s41598-020-60661-8. ISSN  2045-2322. PMC 7051953 . PMID  32123206. 
  27. «از نظر مغز، خواندن کدهای کامپیوتری با خواندن زبان یکسان نیست». اخبار MIT | موسسه فناوری ماساچوست . 15 دسامبر 2020 . بازبینی شده در 29 ژوئیه 2023 .

منابع

در ادامه مطلب

لینک های خارجی