0% found this document useful (0 votes)
8 views6 pages

Cobol

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views6 pages

Cobol

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

‫معایب زبان برنامه نویسی کوبول‬

‫سید محمد طاها موسوی‬

‫‪ 1‬دانشجوی کارشناسی‪ ،‬دانشکده کامپیوتر‪ ،‬دانشگاه علم و صنعت ایران ‪ ،‬تهران‪،‬‬


‫‪[email protected]‬‬

‫چكيده‬
‫در این مقاله‪ ،‬به بررسی کوبول که یک زبان برنامهنویسی قدیمی و پرکاربرد در موضوعات تجاری و مالی است میپرردازی امرا ایرن‬
‫زبان دارای محدودیتهایی در انعطافپذیری‪ ،‬پردازش دادههای غيرعددی‪ ،‬کمبود توسعهدهنده و ساختارمندی سخت مواجره اسرت‬
‫همين موضوعات آموزش و استخدام توسعهدهندگان جدید را دشوارتر میکند یادگيری این زبان مانند زبران پرایتون ذهرن توسرعه‬
‫دهندگان خود را محدود به ساختار خاص خود می کند‬

‫کلمات کليدی‬
‫کوبول‪ ،‬معایب کوبول‪ ،‬سخت گيری در ساختار‪ ،‬معایب مشترک با پایتون‪ ،‬کمبود توسعه دهنده‪ ،‬ضعف در پردازش غيرعددی‪ ،‬نزدیكری‬
‫بسيار به زبان انگليسی‪ ،‬کندی در اجرا‬

‫مقالهی "‪ "The language that refuses to die‬بررسی مهیکنهد‬ ‫‪‬‬


‫که چرا کوبول هنوز هم بهرای برخهی صهنایع ماننهد بانکهداری و مهالی‬ ‫‪ -1‬مقدمه‬
‫استفاده میشود‪ .‬نویسنده در این مقاله به این نتیجه میرسد که به دلیل‬ ‫این نوشتار در مورد معایب زبان برنامه نویسی کوبول در حال حاضر در مقایسه‬
‫پایداری و امنیت باال‪ ،‬این صنایع به زبانههایی نیهاز دارنهد کهه ت همین‬ ‫با زبان های برنامه نویسی نسل های بعد از آن به ویژه زبان پایتون است‪ .‬این‬
‫کنندهی پایداری و امنیت باشند‪.‬‬ ‫زبان برنامه نویسی از نسل اولین زبانهای برنامه نویسی توسعه یافته است در‬
‫مقالهی "‪ "A Critical Analysis‬به بررسی مشهکالت مختلفهی کهه بها‬ ‫‪‬‬ ‫دوره اخیر با مشکالت خاص خود مانند کاهش توسعه دهنده مواجه شده است‪.‬‬
‫استفاده از کوبول ممکن است روبهرو شوید‪ ،‬میپردازد‪ .‬نویسنده در این مقاله بهه‬
‫پیچیدگی کد‪ ،‬عدم تطبیق با نیازهای جدید و کمبود ابزارههای پشهتیبانی اشهاره‬
‫مقاالت زیادی در مورد معایب و مزایا زبان برنامهه نویسهی کوبهول نوشهته‬
‫میکند‪.‬‬
‫شده است و هریک از زاویه دید مخصوصی به این موضوع پرداخته انهد بهرای‬
‫مقالهه "‪ "A Dying Language or Still Relevant‬بهه بررسهی‬ ‫‪‬‬
‫نمونه میتوان به موارد زیر اشاره کرد‪:‬‬
‫این موضوع میپردازد که آیا کوبول هنوز هم برای پروژهههای جدیهد و‬
‫‪ ‬مقالهی "‪ "The Limitations of COBOL‬بررسی میکند که چرا‬
‫پیشرفته مناسب است‪ .‬نویسنده در این مقاله مینویسد‪" :‬اگر چه کوبهول‬
‫کوبول به عنوان یکی از زبانهای قدیمی و نامناسهب بهرای پروژهههای‬
‫به عنوان یکی از زبانهای قدیمی مطرح است‪ ،‬اما همچنان برای برخهی‬
‫جدید شناخته میشود‪ .‬نویسنده در این مقاله به این نتیجه مهیرسهد کهه‬
‫صنایع مانند بانکداری و مالی استفاده میشود‪ .‬عالوه بر این‪ ،‬این زبان به‬
‫کوبول به دلیل پیچیدگی کد و عدم انعطاف پذیری‪ ،‬نمیتواند با نیازهای‬
‫جدید پروژههای بزرگ و پیچیده همخوانی داشته باشد‪.‬‬
‫‪Haff, G. (2018). [9‬‬
‫‪[10‬‬
‫‪Tiwary, A. (2018). [11‬‬ ‫‪Drew, S. (2020). [10‬‬
‫جدول (‪ : ) 1‬نسخه های منتشر شده‬ ‫دلیل ساختار و قواعد خاص خود‪ ،‬همچنان برای پروژههای خاصی ماننهد‬
‫نام نسخه‬ ‫سال انتشار‬ ‫تغییرات‬ ‫سیستمهای تراکنشهای مالی قابل استفاده است‪".‬‬
‫مقالهه "‪ "A Language from the Past with a Future‬بهه‬ ‫‪‬‬
‫‪Cobol-60‬‬ ‫‪1۹۶۰‬‬ ‫نسخه اولیه‬
‫‪Cobol-61‬‬ ‫‪1۹۶1‬‬ ‫رفع مشکالت نسخه اولیه‬
‫بررسی این موضوع میپردازد که آیا کوبول هنهوز ههم در دنیهای امهروز‬
‫‪Cobol-65‬‬ ‫‪1۹۶۵‬‬ ‫پردازش ‪ ۶۴‬کیلوبایت‬ ‫مفید است‪ .‬نویسنده در این مقاله مینویسد‪" :‬به عنوان یکی از زبانهای‬
‫‪Cobol-68‬‬ ‫‪1۹۶۸‬‬ ‫ایجاد توابع و متغیر های محلی‬ ‫برنامهنویسی قدیمی‪ ،‬کوبول در دنیای امهروز همچنهان مهیتوانهد بهرای‬
‫‪Cobol-74‬‬ ‫‪1۹۷۴‬‬ ‫پردازش فایل های حجیم و توابع بازگشتی‬ ‫پروژههای مختلف مفید باشد‪ .‬به عنوان مثال‪ ،‬برای پروژههایی کهه نیهاز‬
‫‪Cobol-85‬‬ ‫‪1۹۸۵‬‬ ‫تبدیل اعداد و رشته ها به یکدیگر‬
‫‪Cobol-2002‬‬
‫به پایداری و امنیت باال دارند‪ ،‬کوبول همچنان یکی از گزینههای مناسب‬
‫‪۲۰۰۲‬‬ ‫استفاده از ویژگی های شیگرایی‬
‫‪Cobol-2014‬‬ ‫‪۲۰1۴‬‬ ‫بهبود پردازش موازی‬ ‫است‪".‬‬
‫‪Cobol-202x‬‬ ‫درآینده‬ ‫‪-‬‬
‫همانطور که بیان شد این مقاالت بهه نقهاض ضهعف از منههر ههای‬
‫مختلفی نگاه کرده اند‪ ،‬اما کمتر اشاره ای به ساختار ذهنی خاص برنامهه‬
‫‪ -3‬معایب زبان برنامه نویسی کوبول‬ ‫نویسان کوبول شده است‪ .‬همچنین کاهش تعداد توسعه دهنهدگان ایهن‬
‫زبان از مسائل مهمی هستن که این زبان با آنها برای بقای خود دسته و‬
‫با گذشت زمان‪ ،‬زبانهای برنامهنویسی قدیمی مانند کوبول‪ ،‬فرترن و پاسهکال‬
‫پنجه نرم میکند‪.‬‬
‫به دلیل محدودیتهایی که دارند‪ ،‬به تهدریج بهه سهمت کهاهش محبوبیهت و‬
‫انقراض رفتهاند‪ .‬این زبانها در گذشته برای پردازش دادههای عهددی و مهالی‬
‫طراحی شده بودند و در آن زمان بسیار پرکاربرد بودند‪ .‬با پیشهرفت فنهاوری و‬
‫‪ -2‬معرفی زبان برنامه نویسی کوبول‬
‫افزایش ظرفیت پردازشی‪ ،‬زمان ورود به بازار و عمر زنهدگی ایهن زبانهها بهه‬
‫شدت کوتاه شده است‪ .‬زبانهای جدیدتر و انعطافپذیرتر مانند جاوا‪ ،‬پهایتون و‬ ‫زبان برنامهنویسی کوبول )‪ (COBOL‬یک زبان برنامهنویسی است که‬
‫سی شارپ‪ ،‬با امکانات بیشتری برای توسعه برنامههای چندمنهوره و پهردازش‬ ‫در دهه ‪ 1۹۵۰‬توسعه یافته است‪ .‬این زبهان بههطور خهاص بهرای برنامهههای‬
‫دادههای غیرعددی‪ ،‬در حال حاضر بیشتر استفاده میشوند‪ .‬بها وجهود ایهن‪ ،‬در‬ ‫تجاری طراحی شده است و هنهوز در بسهیاری از سیسهتمهای مهالی و اداری‬
‫برخی صنایع و سیستمهای قدیمی‪ ،‬هنوز هم از زبانهای قدیمی مانند کوبهول‬ ‫بزرگ استفاده میشود‪ .‬کوبول یکی از قدیمیترین زبانهای برنامهنویسی است‬
‫استفاده میشود‪.‬‬ ‫که هنوز در حال استفاده است‪.‬‬
‫شمارهگذاری بخشها از مقدمه شروع میشهود‪ .‬مقدمهه دارای شهماره ‪1‬‬ ‫یکی از ویژگیهای مهم کوبول‪ ،‬ساختار نحوی آن است که برای قابل فهم‬
‫است‪ .‬آخرین شماره نیز مربوض به بخش نتیجه است‪ .‬سایر بخشهای قبهل از‬ ‫و خوانا بودن برای افراد غیرمتخصص‪ ،‬به خصوص در دنیای تجهاری طراحهی‬
‫مقدمه و پس از نتیجه‪ ،‬دارای شماره نیستند‪ .‬هر بخش میتوانهد شهامل چنهد‬ ‫شده است‪ .‬این زبان از کلمهات کامهل بهرای توصهیف مفهاهیم برنامهنویسهی‬
‫زیربخش باشد‪ .‬زیربخشها نیز دارای شماره هستند که از ‪ 1‬شروع میشود‪.‬‬ ‫استفاده میکند که ممکن است کد را نسبت به زبانهای برنامهنویسی دیگهر‪،‬‬
‫در هر بخش یا زیربخش یک یا چند بنهد پپهاراگرافو وجهود دارد‪ .‬دقهت‬ ‫طوالنیتر و پیچیدهتر کند‪ .‬با این حال‪ ،‬این انتخاب طراحی‪ ،‬قصهد دارد کهد را‬
‫شود که جمالت هر بند زنجیروار به هم مربوض باشند و یک موضوع را دنبهال‬ ‫برای غیربرنامهنویسان قابل دسترسی و قابل فهم کند‪.‬‬
‫کنند‪ .‬اولین بند هر بخش یا زیربخش بدون تهورفتگی اسهت‪ .‬بهرای نوشهتن‬ ‫کوبول بهطور اساسی برای توسعه برنامههایی که حجم زیادی از دادههها را‬
‫اولین بند‪ ،‬از سبک ‪ Text1‬استفاده کنید‪ .‬سایر بندها دارای تورفتگی به انهدازه‬ ‫پردازش میکنند‪ ،‬مانند سیستمهای پهردازش حقهوقی‪ ،‬حسهابداری و مهدیریت‬
‫‪ ۰/۵‬سانتیمتر است که برای نوشتن آنها باید سبک ‪ Text‬را انتخاب کنیهد‪.‬‬ ‫موجودی استفاده میشود‪ .‬این زبان به خصوص برای پردازش دستهای کهه در‬
‫سعی کنید از نوشتن بندهای طوالنی پرهیز کنید‪ .‬یک بند حداکثر میتواند ‪1۰‬‬ ‫آن حجم زیادی از دادهها در یک بار پردازش شده‪ ،‬مناسب است‪ .‬با این حهال‪،‬‬
‫تا ‪ 1۵‬سطر را از یک ستون‪ ،‬به خود اختصاص دهد‪.‬‬ ‫کوبول نسبت به زبانهای برنامهنویسی جدیدتر‪ ،‬محدودیتهایی دارد و با توجه‬
‫به سرعت پایین و عدم پشتیبانی از برخی از مفاهیم برنامهنویسی‪ ،‬برای برخهی‬
‫‪ -1-3‬کمبود توسعه دهنده‬ ‫از کاربران ممکن است جذابیت کمتری داشته باشد‪ .‬بها ایهن حهال‪ ،‬بهه دلیهل‬
‫سرمایهگذاری بسیار زیادی که بسیاری از سازمانها در سیستمهای مبتنی بهر‬
‫عنوان کمبود توسعه دهنده های کوبول یکی از مشکالتی است که باعث شده‬
‫کوبول انجام دادهاند‪ ،‬هنوز این زبان در بسیاری از سیستمهای قدیمی استفاده‬
‫است این زبان به سمت منسوخ شدن برود‪ .‬در حال حاضر‪ ،‬تعداد کمی از نسل‬
‫میشود‪.‬‬
‫جدید توسعه دهندگان با این زبان آشنا هستند و اکثر توسعه دهندگانی که بهه‬
‫زبان برنامهنویسی کوبول از سال ‪ 1۹۶۰‬به بعد به طور مداوم بهروزرسانی و‬
‫این زبان مسلط هستند‪ ،‬افرادی با سابقه بلند در صنعت برنامه نویسی هستند‪.‬‬
‫توسعه یافته است‪ .‬در جهدول )‪ (1‬توضهیحاتی دربهارهی نسهخههای مختلهف‬
‫کوبول ارائه میشود‪:‬‬

‫‪Intend‬‬ ‫‪Lloyd, M. (2021). [12‬‬


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

‫‪ -4-3‬محدودیت در انعطافپذیری‬
‫زبان ‪ COBOL‬یکی از قدیمیترین زبانهای برنامهنویسی اسهت کهه بهرای‬ ‫نمودار (‪ : )1‬محدوده سنی توسعه دهندگان ‪][8‬‬
‫برنامهنویسی سیستمهای اداری و مالی توسعه داده شهده اسهت‪ .‬ایهن زبهان از‬
‫گذشته تا به امهروز همچنهان در بسهیاری از سیسهتمهای بهزرگ و کهاربردی‬ ‫افزایش میانگین سنی توسعهدهندگان ایهن زبهان برنامهه نویسهی باعهث‬
‫استفاده میشود‪ .‬با این حال‪ ،‬یکی از مشکالت این زبان عدم انعطافپذیری آن‬ ‫کاهش محبوبیت این زبان در نسل های جدید توسعه دهندگان شده است‪“ .‬‬
‫در مقابل نیازهای جدید برنامهنویسی است‪.‬‬ ‫توسعه دهنهدگان جدیهد بهه کوبهول عالقهمنهد نیسهتند و بسهیاری از توسهعه‬
‫محدودیتهای زبان ‪ COBOL‬مانعی برای توسهعه برنامهههای پویها و‬ ‫دهندگان کوبول در حال حاضر در سنین باالیی هسهتند‪ .‬ایهن موضهوع باعهث‬
‫قابل تغییر در آینده هستند‪ .‬در حالی که زبانهای برنامهنویسی جدیدی ماننهد‬ ‫شده است که توسعه دهندگان جدیدی به دنبهال زبهان ههای برنامهه نویسهی‬
‫جاوااسکریپت و پایتون این انعطافپذیری را دارند و میتواننهد بهه سهرعت بها‬ ‫مدرنتر باشند‪“.‬‬
‫تغییهههرات درخواسهههتی کهههاربران سهههازگار شهههوند‪ COBOL ،‬بهههه دلیهههل‬
‫محدودیتهایش در این زمینه ضعیف عمل میکند‪.‬‬ ‫یکی از مع الت باال رفتن میانگین سنی توسعه دهندگان کوبول مهرگ‬
‫در کتههاب "‪،"COBOL Programming: An Introduction‬‬ ‫آنها است‪ .‬برای نمونه در در همه گیری کرونا در سال های اخیهر کهه موجهب‬
‫نویسنده ‪ David T. Parke‬به این مسئله اشاره کرده است که "‪COBOL‬‬ ‫کشته شدن افراد زیادی در سرتاسر جهان شده است موجب مرگ بسهیاری از‬
‫یک زبان برنامهنویسی ساختاری اسهت کهه بهرای برنامهنویسهی سیسهتمهای‬ ‫متخصصین این حوزه شده است‪.‬‬
‫اداری و مالی طراحی شده است‪ .‬این زبان برای برنامهنویسانی کهه بهه دنبهال‬
‫یک زبان با قابلیت هماهنگی با سیستمهای قدیمی هستند‪ ،‬مناسب اسهت‪ .‬بها‬
‫این حال‪ ،‬در مقابل نیازهای جدید برنامهنویسی مانند ایجاد برنامهههای پویها و‬ ‫‪ -2-3‬ضعف در پردازشهای غير عددی‬
‫قابل تغییر‪ COBOL ،‬ضعیف عمل میکند‪".‬‬ ‫یکی از محدودیتهای زبان کوبول‪ ،‬عدم قابلیت پردازش دادههای غیر عددی‬
‫است‪ .‬به عبارت دیگر‪ ،‬کوبول برای کار بها دادهههایی ماننهد مهتن و رشهتهها‪،‬‬
‫‪ -5-3‬ویژگیهای نتيجهگيری‬ ‫قابلیت کافی را ندارد‪"[1] .‬کوبهول عمهدتاب بهرای پهردازش دادهههای عهددی‬
‫در بخش نتیجه گیری‪ ،‬نکات مهم انجام شده در کار بصورت خالصه مهرور و‬ ‫طراحی شده است و برخی از قابلیتهای مدرن مانند پهردازش دادهههای غیهر‬
‫نتایج به دست آمده توضیح داده شوند‪ .‬همچنین در این بخش باید سهم علمی‬ ‫عددی را ندارد‪".‬‬
‫مقاله بصورت واضح بیان شود‪ .‬هرگز عین مطالب چکیهده را در ایهن بخهش‬ ‫بنابراین‪ ،‬محدودیت کوبول در پردازش دادههای غیر عددی‪ ،‬باعث میشود‬
‫تکرار نکنید‪ .‬نتیجه میتواند به کاربردهای پهژوهش انجهام شهده اشهاره کنهد‬ ‫که این زبان در برخی موارد نسبت به زبانهای دیگر‪ ،‬مانند جهاوا یها پهایتون‪،‬‬
‫نکات مبهم و قابل پژوهش جدید را مطرح کند ویا گسترش موضوع بحهث را‬ ‫کمی از جایگاه خود از دست داده باشد‪ ،‬بهخصوص در برنامههایی که نیهاز بهه‬
‫به زمینههای دیگر پیشنهاد دهد‪ .‬برای نوشتن عنوانِ بخش چکیهده از سهبک‬ ‫پردازش دادههای غیر عددی دارند‪.‬‬
‫‪ Heading 1‬استفاده کنید‪.‬‬
‫‪ -3-3‬ساختار نحوی‬
‫‪ -6-3‬ویژگیهای مراجع‬ ‫یکی دیگر از معایب کوبول این است که ساختار نحوی آن بسیار ساده اسهت‪،‬‬
‫بخش مراجع در انتهای مقاله قرار میگیرد و عنوان آن دارای شماره نیست‪ .‬در‬ ‫به حدی که افرادی که با زبانهای برنامهنویسی آشنایی ندارند نیز میتوانند به‬
‫نوشتن مراجع ابتدا مراجع پارسی و بعد مراجع انگلیسی را ذکهر کنیهد‪ .‬شهماره‬ ‫راحتهی کههد کوبههول را درن کننههد‪ .‬ایههن موضههوع میتوانههد باعههث شههود کههه‬
‫توسعهدهندگان بیش از حد به کدنویسهی تکهراری و بهدون سهازماندهی روی‬
‫بیایند و کدهای طوالنی و پیچیدهای بسازند‪ .‬بنابراین‪ ،‬کدهای کوبول به طهور‬
‫معمول بلند و پیچیده هستند و این موضوع میتواند خوانایی و نگهداری کد را‬
‫‪Contribution‬‬
‫که کدهای پایتون در هر بار اجرا به زبان ماشهین ترجمهه میشهوند کهه ایهن‬ ‫مراجع به ترتیب الفبایی است‪ .‬تمام مراجع حتماب باید در متن مقاله مورد ارجهاع‬
‫موضوع ممکن است باعث کندی در اجرای کد شود‪.‬‬ ‫واقع شده باشند‪.‬‬
‫عنوان بخشِ مراجع را با سهبک ‪ Heading 0‬بنویسهید‪ .‬بهرای نوشهتن‬
‫مراجع به زبان پارسی از سبک ‪ REF‬و برای مراجع به زبان انگلیسی از سبک‬
‫‪ EN_REF‬استفاده کنید‪ .‬عنوان کتاب‪ ،‬پایاننامه‪ ،‬یا مقاله به زبان پارسهی را‬
‫‪ -2-4‬عدم سازگاری با نسخه های پيشين‬ ‫بصورت پررنگ بنویسید‪ .‬برای عناوین مراجع انگلیسی نیز از قلم کهج اسهتفاده‬
‫یکی از مشکالتی که در زبان پایتون و کوبول وجهود دارد‪ ،‬سهازگار نبهودن بها‬ ‫کنید‪ .‬نحوه نوشتن مراجع در بخش مراجع این مقاله عنوان شده است‪.‬‬
‫نسخههای پیشین است‪ .‬به عبارت دیگر‪ ،‬برنامهههای نوشهته شهده بها نسهخه‬ ‫برای ارجاع به یک مرجع تنها از شماره آن در داخل یهک جفهت قهالب‬
‫قدیمی این زبانها‪ ،‬ممکن است با نسخه جدید آنها سهازگار نباشهند و باعهث‬ ‫استفاده کنید ]‪ .[1‬مراجع انگلیسی را با شماره انگلیسی ارجاع دهید ]‪ .[6‬نیازی‬
‫بروز خطاها و اشکاالت شوند‪.‬‬ ‫به ذکر کلمه «مرجع» نیست‪ ،‬مگر آن که جمله با ایهن عبهارت شهروع شهود‪:‬‬
‫در زبان پایتون‪ ،‬با تغییر در نسخه‪ ،‬تغییراتی در ویژگیها‪ ،‬رفتارها و نحهوه‬ ‫«مرجع ]‪ .»... [1‬برای ارجاع به چند مرجع از ویرگول استفاده کنید ]‪ .[1,۲‬اگر‬
‫استفاده از برخی توابع صورت میگیرد‪ .‬به عنوان مثهال‪ ،‬در نسهخه ‪ ۲‬پهایتون‪،‬‬ ‫تعداد مراجع زیاد است از خط تیره استفاده کنید ]‪ .[1-۵‬مراجعی که در انتهای‬
‫تابع ‪ print‬بدون پرانتز استفاده میشد‪ ،‬اما در نسخه ‪ ،۳‬باید از پرانتهز اسهتفاده‬ ‫جمله میآیند قبل از نقطه قرار میگیرند‪.‬‬
‫کرد‪ .‬این موضوع ممکن است باعث بروز خطاها در برنامهههایی شهود کهه بها‬
‫نسخههای قدیمی پایتون نوشته شدهاند‪.‬‬ ‫‪ -4‬معایب زبان کوبول در مقایسه با پایتون‬
‫زبان برنامه نویسی کوبول و پهایتون در بع هی از معایهب مشهترن هسهتند و‬
‫عملکرد همسانی دارند‪ .‬برای نمونه میتوان به اجبار برنامه نویس بهه سهاختار‬
‫خاصی از برنامه نویسی که موجب تک بعدی شدن آن برنامه نویس میشود‪.‬‬
‫در ادامه می توان به کندی اجرای برنامه ها اشهاره کهرد امها علهت ایهن‬
‫ضعف در دو زبان به یک دلیل نمی باشد‪.‬‬
‫معایب دیگری که مشترن بهین کوبهول و پهایتون اسهت‪ ،‬عهدم سهازگاری بها‬
‫نسخههای پیشین آنها است‪ .‬به دلیل اینکه هر نسخه جدید از ایهن زبانهها‪،‬‬
‫تغییراتی در ساختار و ویژگیهای آنهها دارد‪ ،‬برنامهههایی کهه بها نسهخههای‬
‫قدیمیتر این زبانها نوشته شدهاند‪ ،‬ممکن است بها نسهخههای جدیهد آنهها‬
‫کد (‪)1‬‬
‫سازگار نباشند‪ .‬این مشکل میتواند باعث ایجاد مشکالتی در اجرای برنامههها‬
‫شود و برای برنامهنویسان‪ ،‬نگهداری و بهروزرسانی برنامهها را دشوارتر کند‪.‬‬
‫یکی از مثالهایی کهه نشهان میدههد چگونهه ناسهازگاری نسهخههای‬
‫مختلف کوبول ممکن است باعث بروز خطاها شود‪ ،‬مربوض به تغییهر در رفتهار‬
‫در این بخش به جزئیات این نقاض مورد بحث می پردازیم و راهکارهایی برای‬
‫تابع ‪ INSPECT‬در نسخههای مختلف کوبول است‪.‬‬
‫جلوگیری از آنها ارائه میدهیم‪.‬‬
‫در نسخههای قدیمی کوبول‪ ،‬تابع ‪ INSPECT‬به صورت زیهر تعریهف‬
‫میشد‪:‬‬
‫‪ -1-4‬کندی در اجرا‬
‫کی از نقاض ضعف کوبول‪ ،‬کند بودن آن است‪ .‬بهه دلیهل سهاختار اولیهه زبهان‬
‫کوبول‪ ،‬برنامهنویسان ممکن است بها سهرعت اجهرای کهد در مواجهه باشهند‪.‬‬
‫زبانهای کوبول و پایتون نسبت به زبانهای خانواده سی بهه دلیهل سهاختار و‬
‫ویژگیهای متفاوت‪ ،‬دارای کندی بیشتری هستند‪.‬‬
‫دالیل کندی در زبانهای پایتون و کوبول میتوانهد بهه دلیهل سهاختار و‬
‫ویژگیهای متفاوت این زبانها باشد‪ .‬در زبان کوبول‪ ،‬برنامهنویسهان بایهد بهه‬
‫صورت دستی حافهه را مدیریت کنند و بهه دلیهل اینکهه کوبهول یهک زبهان‬
‫پردازش دستورالعمل است‪ ،‬برنامههای کوبول در شرایطی که نیاز به پهردازش‬
‫کد )‪(2‬‬
‫محاسباتی باالیی دارند‪ ،‬ممکن است با کندی مواجه شوند‪ .‬در مقابل‪ ،‬در زبهان‬
‫پایتون‪ ،‬مدیریت حافهه به صورت خودکار انجام میشود‪ ،‬اما به دلیهل سهاختار‬
‫این تغییر در نحوه استفاده از تابع ‪ INSPECT‬ممکن است باعث بهروز‬
‫پویا و شیءگرای آن‪ ،‬پردازش دادههای بزرگ ممکن اسهت بها کنهدی همهراه‬
‫خطاههها در برنامههههای کوبههول بهها نسههخههای قههدیمی شههود کههه از تههابع‬
‫باشد‪ .‬همچنین‪ ،‬زبان پایتون از زبانهای تفسیری است که به معنای آن اسهت‬
‫‪ INSPECT‬برای جایگزینی کاراکترها استفاده میکردنهد‪ .‬در ایهن صهورت‪،‬‬
‫زبان همچنان قابل استفاده خواهد بود و برنامه های قدیمی باز هم پشهتیبانی‬ ‫برنامههای کوبول با نسخههای قدیمی‪ ،‬با نسخههای جدیهد کوبهول ناسهازگار‬
‫خواهند شد‪.‬‬ ‫هستند و اجرای آنها باعث بروز خطاها خواهد شد‪.‬‬
‫بنابراین‪ ،‬بهرای پیشهگیری از بهروز مشهکالت در برنامهههای پهایتون و‬
‫‪ -2-5‬جایگزینی زبان های جدیدتر‬ ‫کوبول‪ ،‬بهتر است همواره از آخرین نسخه این زبانها استفاده کرد و در صورت‬
‫رویکرد دیگر‪ ،‬رفتن به سمت تکنولوژی های جدیدتر است‪ .‬با توجه به پیشرفت‬ ‫نوشتن برنامههایی با نسخههای قدیمی‪ ،‬قابلیت سازگاری با نسخههای جدیهد‬
‫تکنولوژی و ظهور زبانهای جدیدتر‪ ،‬ممکن است برنامهه نویسهان بهه سهمت‬ ‫را در نهر داشت‪ .‬همچنین بهتر است در هنگام ارتقاء نسخه‪ ،‬بررسی دقیقهی از‬
‫استفاده از این زبان ها روی آورده باشند‪ .‬با تحوالتی که در حهوزه تکنولهوژی‬ ‫تغییرات روی داده و تاثیر آنها در برنامههای موجود صورت گیرد‪.‬‬
‫رخ میدهد‪ ،‬ممکن است ابزارهایی برای تبدیل کد کوبول به زبانهای جدیدتر‬
‫نیز ایجاد شود که به این صورت میتهوان برنامهههای قهدیمی را بهه صهورت‬
‫خودکار به زبانهای جدیدتر تبدیل کرد‪.‬‬ ‫‪ -3-4‬ساختار القایی ذهنی‬
‫زبان برنامه نویسی انتخابی تأثیر قابل توجهی بر ساختار ذهنی و نحوه تفکر او‬
‫‪ -3-5‬هزینه هر رویكرد‬ ‫خواهد داشت‪ .‬مانند اینکه زبانهای مختلف‪ ،‬از نحهوهی فکهر کهردن و انجهام‬
‫هرکدام از این رویکرد ها هزینه های جانبی مخصوص به خهود را بهرای‬ ‫کارهای مختلف تأثیر میگیرند‪ .‬برای مثهال‪ ،‬زبهان کوبهول بهه دلیهل سهاختار‬
‫شرکت ها و موسساتی که از زبان برنامه نویسی کوبول اسهتفاده میکننهد بهه‬ ‫پیچیدهای که دارد‪ ،‬میتواند ذهن برنامه نویس را فلج کند و باعهث شهود کهه‬
‫همراه دارند‪ .‬به این نکته باید اشاره کرد که هزینه هریک از رویکردهای مقابله‬ ‫آموزش آن به عنوان یک جرم جنایی در نهر گرفته شود‪ .‬به عبارت دیگر‪ ،‬این‬
‫با افول تعداد توسعه دهنده در زبهان کوبهول‪ ،‬بسهتگی بهه شهرایط و وضهعیت‬ ‫زبان میتواند باعث شود که برنامه نویس‪ ،‬از نهر ذهنی ناقص شده و قادر بهه‬
‫سیستم دارد‪.‬‬ ‫تغییر نسل هم کاری نشود‪.‬‬
‫بسیاری از شرکت ها درحال حاضر حتی با ظهور تکنولوژی ههای جدیهد‬ ‫از سوی دیگر‪ ،‬زبان پایتون به دلیل ساختار سادهای که دارد‪ ،‬میتواند به‬
‫نیز ترجیح می دهند سیستم های قدیمی فعلی که دچار مشکل نیسهتند حفه‬ ‫عنوان یک زبان برنامه نویسی مناسب برای آمهوزش برنامهه نویسهی‪ ،‬در نههر‬
‫کنند و به سمت پرداخت هزینه های گزاف برای مهاجرت به تکنولوژی ههای‬ ‫گرفته شود‪ .‬همچنین‪ ،‬تسلط به یک زبان برنامه نویسی خاص‪ ،‬میتواند باعهث‬
‫جدیدتر نروند‪.‬‬ ‫شود که مهارت برنامه نویس در زبانهای دیگر کاهش یابد‪ .‬به عبارت دیگهر‪،‬‬
‫از معروف ترین شهرکت ههایی کهه درحهال حاضهر هنهوز بهه توسهعه و‬ ‫الگوهای و اصطالحات زبان برنامه نویسی انتخابی‪ ،‬نحوه تفکر و ساختار ذهنی‬
‫نگهداری سیستم های کوبول مشغول هستند میتوان به بانهک ههای جیپهی‬ ‫برنامه نویس را به شدت تحت تأثیر قرار میدهد‪.‬‬
‫مورگان چیس و سیتیگروپ اشاره کرد‪.‬‬ ‫در نتیجه‪ ،‬انتخاب زبان برنامه نویسی ابزاری است که میتوانهد سهاختار‬
‫ذهنی و نحوه تفکر برنامه نویس را تحهت تهأثیر قهرار دههد‪ .‬بنهابراین‪ ،‬بهرای‬
‫انتخاب زبان برنامه نویسی‪ ،‬بهتر است با دقت و هوشمندی عمهل کهرده و بهه‬
‫این نکته توجه کنید که انتخاب زبان برنامه نویسی چگونه میتواند نحوه تفکر‬
‫‪ -6‬ساختارمندی ذهن‬
‫شما را تحت تأثیر قرار دهد‪.‬‬
‫به صورت کلی روند فکری و استدالل های برنامه نویسان با توجهه بهه اولهین‬
‫زبان برنامه نویسی که به آن تسلط پیدا کردند تعیین میشود‪ .‬بهه زبهان دیگهر‬ ‫‪ -5‬رویكرد در برخورد با افول تعداد توسعه دهنده‬
‫اصطالحات و الگوهای اولین زبان برنامه نویسی شما‪ ،‬حتی نوع طرز تفکرتهان‬
‫درمورد ساختار دادهها و الگوریتم ها را به شما القا میکند‪.‬‬ ‫مقابله با افول تعداد توسعه دهنده در زبهان کوبهول‪ ،‬یهک چهالش مههم بهرای‬
‫به همین علت اینکه توسعه دهندگان برنامهنویسی را با چه زبانی شهروع‬ ‫شرکتها و توسعه دهندگان است که در صنعت نرمافزار با آن روبرو هستند‪ .‬در‬
‫کنند بسیار اهمیت دارد برای نمونه در گذشته با زبان های کوبول یها فهورترن‬ ‫این شرایط‪ ،‬دو رویکرد استخدام توسهعه دهنهدگان جدیهد و رفهتن بهه سهمت‬
‫یادگیری برنامه نویسی را شروع میکردند در نسل های بعهد بها زبهان سهی و‬ ‫تکنولوژی های جدیدتر‪ ،‬به چشم میآیند‪ .‬در این دو رویکرد‪ ،‬هر یهک مزایها و‬
‫نسل حال حاضر یادگیری را با زبان هایی مانند پایتون یا جاوا شروع میکنند‪.‬‬ ‫معایب خود را دارند و باید با توجه به شرایط و محیط کاری‪ ،‬بهترین رویکرد را‬
‫این تفاوت در زبان ها موجب تفاوت در روند حل مسئله توسعه دهنهدگان‬ ‫انتخاب کرد‪ .‬در این مطلب‪ ،‬به بررسی هریک از این رویکردها و مزایا و معایب‬
‫و شیوه ی تفکر آنها در مورد ساختار هها میشهود‪ .‬بهرای نمونهه دایجسهترا از‬ ‫آنها میپردازیم‪.‬‬
‫معروف ترین مهندسین در حوزه کامپیوتر در این رابطه میگوید‪:‬‬
‫‪ -1-5‬اموزش و استخدام توسعه دهندگان جدید‬
‫“ابزار هایی که ما استفاده میکنیم دارای نفوذ زیادی بر عادت های تفکر ما و‬ ‫برای مقابله با افول تعداد توسعه دهنهده در زبهان کوبهول یکهی از رویکردهها‪،‬‬
‫همچنین توانایی تفکر ما دارند‪”.‬‬ ‫آموزش و استخدام توسعه دهندگان جدید است‪ .‬با استخدام توسهعه دهنهدگان‬
‫جدید با تجربه در کوبول‪ ،‬توانایی توسعه و پشهتیبانی از نرمافزارههای قهدیمی‬
‫بهبود خواهد یافت‪ .‬همچنین با آموزش کوبول به توسعه دهندگان جدید‪ ،‬ایهن‬
‫‪JPMorgan Chase‬‬
‫‪Citigroup‬‬
‫سایر موضوعهای مرتبط که جزء بخشهای اصلی مقاله نباشند‪.‬‬ ‫‪‬‬
‫زبان برنامه نویسی کوبول نیز از این قاعده استثنا نیست و برنامه نویسی‬
‫مراجع‬ ‫با آن و در مرحله بعد تسلط به آن موجب شهکل گیهری عهادت بهه سهاختار و‬
‫‪[1] Perry, Trevor and Putnam, Jason. "Modernizing IBM i‬‬ ‫ضعف ذهن در یادگیری روند های حل و قرار گرفتن در سهاختار ههای دیگهر‬
‫‪Applications from the Database up to the User Interface‬‬ ‫میشود‪ .‬درمورد یادگیری زبان کوبول دایجسترا آن را به عنوان جرم جنایی یاد‬
‫‪and Everything in Between", 2021.‬‬
‫میکند‪.‬‬
‫‪[2] Shareghi, Mohammad. "COBOL Programming: A‬‬
‫‪Journey from Basic to Advanced Programming", 2020.‬‬
‫‪[3] Nash, Libby. "COBOL Programming: A Practical‬‬ ‫“استفاده از کوبول ذهن را فلج می کند از این رو تدریس آن بایهد بهه عنهوان‬
‫‪Approach", 2020.‬‬
‫‪[4] Parke, David T. "COBOL Programming: An‬‬ ‫جرم جنایی در نهر گرفته شود‪”.‬‬
‫‪Introduction", 2019 .‬‬
‫‪[5] Carter, David A. "The COBOL Programming Language",‬‬ ‫در مورد یادگیری پایتون هم به عنوان اولین زبان برنامهنویسهی‪ ،‬برخهی‬
‫‪2018.‬‬
‫‪[6] Dark, Roy. "Mastering COBOL Programming", 2017.‬‬ ‫افراد معتقدند که این کار ممکن است ذهن را فلهج کنهد و توانهایی یهادگیری‬
‫‪[7] Robinson, Christopher. "COBOL and Visual Basic on‬‬ ‫زبانهای دیگر را کاهش دهد‪ .‬در ایهن صهورت‪ ،‬فهرد ممکهن اسهت بهه یهک‬
‫‪.NET: A Guide for the Reformed Mainframe‬‬ ‫محهدودیت در نگهاه بهه مسههائل برنامهنویسههی برخهورد کنههد و مشههکالتی در‬
‫‪Programmer", 2017.‬‬
‫‪[8] Drew, S. (2020). The Limitations of COBOL: Why This‬‬ ‫برنامهنویسی با زبانهای دیگر داشته باشد‪.‬‬
‫‪Old Language May Not Be Able to Keep Up with‬‬
‫‪Modern Needs. Business 2 Community.‬‬
‫‪[9] Haff, G. (2018). COBOL: The language that refuses to‬‬ ‫با این حال‪ ،‬اگر فرد به طور همزمان با این زبان ها‪ ،‬زبانهای دیگری را‬
‫‪die. TechBeacon.‬‬ ‫هم یاد بگیرد‪ ،‬این مشکالت قابل حل خواهند بهود و شهاید حتهی بهه تسهریع‬
‫‪[10] Srinivasan, R. (2015). The Limitations of COBOL: A‬‬
‫‪Critical Analysis. International Journal of Computer‬‬ ‫یادگیری زبانهای دیگر کمک کند‪ .‬به هر حال‪ ،‬انتخهاب زبهان برنامهنویسهی‬
‫‪Science and Mobile Computing.‬‬ ‫اولیه باید بر اساس نیاز و عالقه شخص باشد و برای یادگیری زبانهای دیگهر‬
‫‪[11] Tiwary, A. (2018). COBOL - A Dying Language or Still‬‬
‫‪Relevant? DZone.‬‬ ‫هم امکان وجود دارد‪.‬‬
‫‪[12] Lloyd, M. (2021). COBOL: A Language from the Past‬‬
‫‪with a Future. Infosecurity Magazine.‬‬
‫]‪[13‬‬
‫‪ -7‬نتيجه گيری‬
‫در این مقاله‪ ،‬الگهوی ارائهه کتبهی درس روش پهژوهش و ارائهه تبیهین شهد‪.‬‬
‫مهمترین مشخصات عبارتند از‪ :‬ابعاد و حاشیههای صفحه‪ ،‬نحوه آمهاده کهردن‬
‫صفحه اول‪ ،‬بخشهای اصلی مقاله‪ ،‬نحوه شمارهگذاریها‪ ،‬شکلها‪ ،‬جدولهها‪،‬‬
‫فرمولها‪ ،‬منابع‪ ،‬و باالخره چگونگی نگارش متن مقاله‪.‬‬
‫نویسندگان محترم سعی کنند تمام موارد ذکر شده را دقیقاٌ رعایت کننهد‪،‬‬
‫و از همین سند بعنوان الگوی نگارش مقاله خود استفاده کنند‪.‬‬
‫شکلها و جدولها باید در وسط ستونها قرار گیرند‪ .‬بهتر است شهکلها‬
‫در یک خط جداگانه با حالت وسطچین درج شوند‪ .‬شکل پ‪1‬و نمونهای از چنین‬
‫تنهیمی است‪ .‬چنانچه شکل یا جدولی در یک ستون جا نشهد‪ ،‬میتهوان آن را‬
‫بصورت تک ستونی رسم کرد‪ ،‬مشروض بر این که شکل یا جهدول در ابتهدا یها‬
‫انتهای صفحه و یا در انتهای مقاله درست قبل از بخش مراجع قرار گیرد‪ .‬می‪-‬‬
‫توان همه شکلها را در یک جا و قبل از مراجع نیز درج کرد‪.‬‬

‫پيوست ها‬
‫بخش پیوست ها یک بخش اختیاری است و دارای شماره نیست‪ .‬عنوان آن را‬
‫با سبک ‪ Heading 0‬بنویسید‪ .‬موضوعهای مرتبط بها مقالهه کهه در یکهی از‬
‫گروههای زیر قرار گیرند‪ ،‬میتوانند در بخش ضمایم آورده شوند‪.‬‬
‫‪ ‬اثبات ریاضی فرمولها یا الگوریتمها‬
‫‪ ‬دادهها و اطالعات مربوض به مطالعه موردی‬
‫‪ ‬نتایج کار دیگر محققان و دادههای مربوض به مقایسه آنها‬

You might also like