كوبول السمات
قد يتوقع المرء أن يكون الناتج "1 2 3 END END END"، وهذا بالفعل ما قد تنتجه بعض مترجمات كوبول. لكن مترجمات أخرى، مثل آي بي إم كوبول، ستنتج كودًا يطبع "1 2 3 END END END END ..." وهكذا، تطبع "END" مرارًا وتكرارًا في حلقة لا نهائية. نظرًا لوجود مساحة محدودة لتخزين عناوين الاستمرار الاحتياطية، يتم الكتابة فوق النسخ الاحتياطية أثناء الاستدعاءات التكرارية، وكل ما يمكن استعادته هو القفز مرة أخرى إلى DISPLAY 'END'.
تحتوي كوبول 2014 على 47 عبارة (تُسمى أيضًا أفعال), يمكن تجميعها ضمن الفئات التالية: تدفق التحكم، الإدخال/الإخراج، معالجة البيانات، وكاتب التقارير. تُغطي عبارات كاتب التقارير في قسم كاتب التقارير.
التعبيرات الشرطية في كوبول هي IF وEVALUATE. EVALUATE هو حالة تبديل مع القدرة الإضافية على تقييم عدة قيم وشروط. يمكن استخدامه لتنفيذ جدول قرارات. على سبيل المثال، قد يُستخدم التالي للتحكم في مخرطة سي إن سي:
تُستخدم عبارة PERFORM لتعريف حلقات تُنفذ حتى يتحقق شرط (وليس طالما يتحقق، كما هو شائع في لغات أخرى). كما تُستخدم لاستدعاء إجراءات أو نطاقات من الإجراءات (انظر قسم الإجراءات لمزيد من التفاصيل). CALL وINVOKE تستدعيان برامج فرعية وطرقًا على التوالي. يحتوي اسم البرنامج الفرعي/الطريقة على سلسلة نصية قد تكون حرفية أو عنصر بيانات. يمكن تمرير المعاملات بطرق تقييم مختلفة، إما بالمحتوى (حيث يتم تمرير نسخة بالإشارة) أو بالتقييم (ولكن فقط إذا كان نموذج متاحًا). تقوم عبارة CANCEL بإزالة البرامج الفرعية من الذاكرة. تؤدي عبارة GO TO إلى قفز البرنامج إلى إجراء محدد.
تعليمة GOBACK هي تعليمة إخراج ناتج وتعليمة STOP توقف البرنامج. تحتوي تعليمة EXIT على ستة صيغ مختلفة: يمكن استخدامها كتعليمة إرجاع، أو انسياب التحكم، أو انسياب التحكم، أو علامة نهاية، أو للخروج من إجراء.
تدبير الحالات الاستثنائية يتم رفعها بواسطة تعليمة RAISE ويتم التقاطها بمعالج، أو declarative، يتم تعريفه في جزء DECLARATIVES من قسم الإجراءات. تبدأ الـ declaratives بقسم USE يحدد الأخطاء التي يجب معالجتها. يمكن أن تكون الاستثناءات أسماء أو كائنات. تستخدم تعليمة RESUME في declarative للقفز إلى التعليمة التي تلي تلك التي رفعت الاستثناء أو إلى إجراء خارج DECLARATIVES. على عكس لغات أخرى، قد لا تؤدي الاستثناءات غير الملتقطة إلى إنهاء البرنامج، ويمكن للبرنامج أن يستمر دون تأثر.
يتم التعامل مع إدخال وإخراج الملفات بواسطة تعليمات ذات وصف ذاتي OPEN، CLOSE، READ، وWRITE إلى جانب ثلاث تعليمات إضافية: REWRITE التي تحدث السجل؛ START التي تختار السجلات التالية للوصول عبر إيجاد سجل بمفتاح معين؛ وUNLOCK التي تحرر قفل على آخر سجل تم الوصول إليه.
يتم التفاعل مع المستخدم باستخدام تعليمتي ACCEPT وDISPLAY.
يتم ترتيب الملفات والجداول باستخدام SORT، وتعليمة MERGE تدمج وتفرز الملفات. تعليمة RELEASE توفر سجلات للفرز وRETURN تسترجع السجلات المرتبة حسب الترتيب.
بعض التعليمات، مثل IF وREAD، قد تحتوي على تعليمات بداخلها. يمكن إنهاء هذه التعليمات بطريقتين: بواسطة نقطة (implicit termination)، التي تنهي كل التعليمات غير المنتهية المحتواة، أو بواسطة محدد نطاق، الذي ينهي أقرب تعليمة مفتوحة مطابقة.
التعليمات المتداخلة المنتهية بنقطة هي مصدر شائع للأخطاء. على سبيل المثال، افحص الشيفرة التالية:
هنا، القصد هو عرض y وz إذا كانت الحالة x صحيحة. ومع ذلك، سيتم عرض z مهما كانت قيمة x لأن تعليمة IF تم إنهاؤها بخطأ بنقطة بعد DISPLAY y.
خطأ آخر هو نتيجة لمشكلة "إيلس" المعلقة، حيث يمكن لتعليمتي IF أن ترتبطا بـELSE واحدة.
في المقطع أعلاه، ترتبط تعليمة ELSE بتعليمة  IF y  بدلاً من تعليمة  IF x ، مما يسبب خطأ. قبل إدخال محددات النطاق الصريحة، كان منع ذلك يتطلب وضع  ELSE NEXT SENTENCE  بعد التعليمة الداخلية IF.
دعم مواصف كوبول الأصلية (1959) التعليمة الشهيرة  ALTER X TO PROCEED TO Y ، التي أنتجت في العديد من المترجمات كود معدل ذاتياً. X وY هما ملصقا إجراء، وتعليمة  GO TO  الوحيدة في الإجراء X التي تنفذ بعد مثل هذه التعليمة ALTER تعني تنفيذ  GO TO Y  بدلاً من ذلك. لا تزال العديد من المترجمات تدعم ذلك، لكن تم اعتباره قديم في معيار كوبول 1985 وحُذف في 2002.
كانت تعليمة ALTER موضع نقد لأنها تقوض "محلية السياق" وتجعل منطق البرنامج العام صعب الفهم. كما كتب مؤلف الكتاب الدراسي دانيال د. ماكراكين في عام 1976، عندما "يجب على شخص لم يرَ البرنامج من قبل أن يتعرف عليه بأسرع ما يمكن، أحيانًا تحت ضغط وقت حرج لأن البرنامج قد فشل ... فإن رؤية تعليمة "قو تو" في فقرة بمفردها، مما يشير إلى وجود عدد غير معروف من تعليمات ALTER في مواقع غير معروفة في جميع أنحاء البرنامج، يثير الخوف في قلب أشجع المبرمجين."
عندما نُشر لأول مرة مثال البرنامج الشهير "أهلًا بالعالم!" في كتاب لغة البرمجة سي عام 1978، كان من المرجح أن يتم تقديم مثال برنامج رئيسي مشابه بلغة كوبول على الحواسيب الكبيرة عبر لغة التحكم في الوظائف، غالباً باستخدام قارئ بطاقات مثقوبة وبطاقات مثقوبة ذات 80 عموداً. القائمة التالية، مع وجود درجة بيانات فارغة، تم اختبارها باستخدام نظام لينوكس ومحاكي نظام/370 محاكي هيركولز يعمل بنظام إم في إس 3.8J. تم اشتقاق JCL، المكتوبة في يوليو 2015، من دروس وعينات هيركولز التي يستضيفها جاي موزلي. ووفقاً لأسلوب برمجة كوبول في تلك الحقبة، يتم عرض HELLO, WORLD بأحرف كبيرة.
بعد تقديم لغة التحكم في الوظائف، عرضت وحدة التحكم في إم في إس ما يلي:
السطور العاشرة من قائمة وحدة التحكم أعلاه مُظللة للتأثير، والتظليل ليس جزءًا من إخراج وحدة التحكم الفعلي.
أنتجت قائمة المترجم المرتبطة أكثر من أربع صفحات من التفاصيل التقنية ومعلومات تشغيل الوظيفة، مقابل السطر الواحد فقط من الإخراج الناتج عن 14 سطراً من كود كوبول.