Joskus koneistusta ohjelmoitaessa saatat kohdata tilanteen, jossa ohjelmasegmenttien ryhmä esiintyy useita kertoja yhdessä ohjelmassa tai sitä käytetään useissa ohjelmissa. Voimme poimia tämän ryhmän ohjelmasegmenttejä, nimetä ne ja tallentaa ne erikseen; tätä ohjelmasegmenttien ryhmää kutsutaan aliohjelmaksi. Aliohjelma on koneistusohjelman segmentti, joka voidaan kutsua sopivilla työstökoneen ohjauskäskyillä ja jolla on yleensä itsenäinen merkitys koneistuksen aikana. Koneistusohjelmaa, joka sisältää käskyn kutsua ensimmäisen-tason aliohjelma, kutsutaan pääohjelmaksi. Aliohjelman kutsumiskäsky on myös ohjelmasegmentti, joka koostuu yleensä aliohjelman kutsukäskystä, aliohjelman nimestä ja kutsujen määrästä. Erityiset säännöt ja muodot vaihtelevat järjestelmästä riippuen. Esimerkiksi samalle käskylle "soita alirutiinille numero 55 kerran" FANUC-järjestelmä käyttää "M98 P55.", kun taas amerikkalainen AB-järjestelmä käyttää "P55x".
Aliohjelmat voivat olla sisäkkäisiä eli yhden tason sisällä. Ylemmän ja alemman tason välinen suhde on sama kuin pääohjelman ja ensimmäisen-tason aliohjelman välinen suhde. Sisäkkäisten tasojen enimmäismäärä määräytyy tietyn CNC-järjestelmän mukaan. Aliohjelman muoto ja koostumus ovat suurelta osin samat kuin pääohjelman: ensimmäinen rivi on aliohjelman numero (nimi), ja viimeinen rivi on "alirutiinin loppu" -käsky, jonka välissä on aliohjelman runko. Pääohjelman lopetuskäsky kuitenkin lopettaa pääohjelman ja nollaa CNC-järjestelmän; sen ohjeet ovat standardoituja, ja jokainen järjestelmä käyttää M02:ta tai M30:a. Aliohjelman lopetuskäsky puolestaan lopettaa aliohjelman ja palaa pääohjelmaan tai edelliseen aliohjelmaan. Sen ohjeet vaihtelevat eri järjestelmissä; Esimerkiksi FANUC-järjestelmät käyttävät M99:ää, Siemensin järjestelmät M17:ää ja AB (American A/B) -järjestelmät M02:ta.

