G-Programming