G-Code ist ja CNC-Programmcode.
Der ist in ISO 6983 definiert (Befehlswörter, syntax, etc.)

Ob Matlab oder Labview ein ISO6983 Programm erstellen kann, lässt sich googlen: z.B. "matlab g-code generator".

Normalerweise erstellt man ja ein 3D-Volumenmodell von dem Werkstück mit einem CAD Programm.
Dann nimmt man eine Software für CAD-CAM Kopplung mit der man den Maschinenspezifischen Programmcode erstellt.
Im Fall von 3D-Druckern sind das Slicer, denen man als Paramter die Schichtdicke der Layer, Dicke der Außenkontour und Angaben zum Füllverhalten des Volumens eines Körpers mit gibt.
Der erzeugt dann das G-Code Programm.
Marlin z.B. stellt den G-Code Interpreter, die Bahnsteuerung und noch einiges Mehr zur Verfügung.

Man kann z.B. auch eine PC basierte CNC Steuerung aufbauen.
Üblicherweise nimmt man dann entweder ein Singletask oder ein echtzeitfähiges Betriebssystem um sicherzustellen das man auch die Bahn abfährt die man haben will.
In dem Bereich gäbe es z.B. Mach3 als weit verbreitete Steuersoftware. Wegen dem Umfang, wird Mach 3 aber erher für CNC Fräsen genutzt als zum 3D-Druck (was aber laut Handbuch auch unterstützt wird)

Im RepRap Wiki gibt es eine Liste von Firmware (Marlin etc.) und auch von unterstützten Boards.
http://reprap.org/wiki/List_of_Firmware
http://reprap.org/wiki/List_of_electronics

Im RepRap Wiki findest Du auf die meisten Fragen rund um 3d-Printer Antworten.
Zusätzlich kann man dann mit den verschiedenen Schlagworten noch Google bemühen.