G-code (også RS-274, EIA-274-D) findes i mange varianter og G-code er det mest anvendte navn for det mest udbredte og anvendte numerical control (NC) programmeringssprog. G-code bliver hovedsageligt anvendt indenfor computer-aided manufacturing til at styre automatiske maskinværktøj. G-code kaldes nogle gange for G programmeringssprog, men må ikke forveksles med LabVIEWs G programmeringssprog.
G-code er et sprog i hvilket folk får computeriserede maskinværktøj til at gøre noget. "Hvordan" er defineret af instruktioner som instruerer, hvor der skal flyttes til, hvor hurtig der skal flyttes - og hvilken sti som skal følges. Den almindeligste situation er indeni et maskinværktøj, et skæreværktøjshoved flyttes ifølge disse instruktioner gennem en sti og skærer samtidig materiale væk og efterlader kun det færdige objekt. Det samme begreb kan udvides til ikke-skærende værktøjshoved såsom formende eller brændende/smeltende værktøjshoved, fotoplotning, additive metoder såsom 3D-printning og måleinstrumenter.
Den første implementation af det numeriske styringsprogrammeringssprog blev udviklet ved MIT Servomechanisms Laboratory i de sene 1950'ere. I de efterfølgende årtier, er mange implementationer blevet udviklet af mange (kommercielle og ikke-kommercielle) organisationer. G-code er ofte blevet anvendt i disse implementationer. Hovedstandardingsversionen som anvendes i USA blev lavet af Electronic Industries Alliance i de tidlige 1960'ere.[kilde mangler] En endelig revision blev godkendt i februar 1980 som RS-274-D; EIA-274-D.[1] I andre lande, anvendes ofte standarden ISO 6983, men mange europæiske lande anvender andre standarder. For eksempel, DIN 66025 anvendes i Tyskland - PN-73M-55256 og PN-93/M-55251 anvendes i Polen.
Udvidelser og variationer er blevet tilføjet uafhængigt af control-fabrikanter og maskinværktøj fabrikanter - og operatører af en specifik controller må være designet til forskellige fabrikanters produkter.
En standardiseret version af G-code, kendt som BCL, anvendes kun på nogle få maskiner.[kilde mangler]
Gennem 1970'erne og 1990'erne, forsøgte mange CNC-maskinværktøjsbyggere at overvinde kompatibilitetsvanskeligheder ved at standardisere på maskinværktøj controllere bygget af Fanuc. Siemens var en anden markedsdominerende spiller indenfor CNC-control, specielt i Europa. I 2010'erne er controller forskellene og inkompatibiliteterne ikke så vanskelige, fordi maskinoperationer blev udviklet med CAD/CAM applikationerne, så disse kan udsende den rette G-code for et specifikt maskinværktøj.