Cobol
Cobol
چكيده
در این مقاله ،به بررسی کوبول که یک زبان برنامهنویسی قدیمی و پرکاربرد در موضوعات تجاری و مالی است میپرردازی امرا ایرن
زبان دارای محدودیتهایی در انعطافپذیری ،پردازش دادههای غيرعددی ،کمبود توسعهدهنده و ساختارمندی سخت مواجره اسرت
همين موضوعات آموزش و استخدام توسعهدهندگان جدید را دشوارتر میکند یادگيری این زبان مانند زبران پرایتون ذهرن توسرعه
دهندگان خود را محدود به ساختار خاص خود می کند
کلمات کليدی
کوبول ،معایب کوبول ،سخت گيری در ساختار ،معایب مشترک با پایتون ،کمبود توسعه دهنده ،ضعف در پردازش غيرعددی ،نزدیكری
بسيار به زبان انگليسی ،کندی در اجرا
-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بنویسید .موضوعهای مرتبط بها مقالهه کهه در یکهی از
گروههای زیر قرار گیرند ،میتوانند در بخش ضمایم آورده شوند.
اثبات ریاضی فرمولها یا الگوریتمها
دادهها و اطالعات مربوض به مطالعه موردی
نتایج کار دیگر محققان و دادههای مربوض به مقایسه آنها