کبھی کبھی پروگرامنگ مشیننگ کرتے وقت، آپ کو ایسی صورتحال کا سامنا کرنا پڑ سکتا ہے جہاں پروگرام کے حصوں کا ایک گروپ ایک پروگرام میں کئی بار ظاہر ہوتا ہے، یا کئی پروگراموں میں استعمال ہوتا ہے۔ ہم پروگرام کے حصوں کے اس گروپ کو نکال سکتے ہیں، انہیں نام دے سکتے ہیں اور انہیں الگ سے ذخیرہ کر سکتے ہیں۔ پروگرام کے حصوں کے اس گروپ کو سب روٹین کہا جاتا ہے۔ سب روٹین ایک مشینی پروگرام سیگمنٹ ہے جسے مناسب مشین ٹول کنٹرول ہدایات کے ذریعے بلایا جا سکتا ہے، اور مشینی کے دوران اس کا عام طور پر آزاد معنی ہوتا ہے۔ مشینی پروگرام جس میں پہلے-سطح کے سب روٹین کو کال کرنے کی ہدایت ہوتی ہے اسے مین پروگرام کہا جاتا ہے۔ سب روٹین کو کال کرنے کی ہدایت بھی ایک پروگرام سیگمنٹ ہے، جو عام طور پر سب روٹین کال انسٹرکشن، سب روٹین کا نام، اور کالز کی تعداد پر مشتمل ہوتا ہے۔ مخصوص اصول اور فارمیٹس سسٹم کے لحاظ سے مختلف ہوتے ہیں۔ مثال کے طور پر، اسی ہدایت کے لیے "سب روٹین نمبر 55 پر ایک بار کال کریں"، FANUC سسٹم "M98 P55" استعمال کرتا ہے، جبکہ امریکی AB سسٹم "P55x" استعمال کرتا ہے۔
سبروٹینز کو نیسٹ کیا جا سکتا ہے، یعنی ایک سطح دوسرے کے اندر۔ اوپری اور نچلی سطحوں کے درمیان تعلق وہی ہے جو مرکزی پروگرام اور پہلے-سطح کے سب روٹین کے درمیان ہے۔ نیسٹڈ لیولز کی زیادہ سے زیادہ تعداد کا تعین مخصوص CNC سسٹم کے ذریعے کیا جاتا ہے۔ سبروٹین کی شکل اور ساخت بڑی حد تک مرکزی پروگرام کی طرح ہے: پہلی لائن سبروٹین نمبر (نام) ہے، اور آخری لائن "سبروٹائن اینڈ" ہدایت ہے، جس کے درمیان سبروٹین باڈی ہوتی ہے۔ تاہم، مرکزی پروگرام کے اختتام کی ہدایات مرکزی پروگرام کو ختم کرتی ہے اور CNC سسٹم کو دوبارہ سیٹ کرتی ہے۔ M02 یا M30 استعمال کرنے والے ہر سسٹم کے ساتھ اس کی ہدایات معیاری ہیں۔ دوسری طرف سب روٹین اینڈ انسٹرکشن، سب روٹین کو ختم کر دیتی ہے اور مین پروگرام یا پچھلے سب روٹین پر واپس آجاتی ہے۔ اس کی ہدایات تمام سسٹمز میں مختلف ہوتی ہیں۔ مثال کے طور پر، FANUC سسٹم M99 استعمال کرتے ہیں، سیمنز سسٹم M17 استعمال کرتے ہیں، اور AB (امریکی A/B) سسٹم M02 استعمال کرتے ہیں۔

