写代码的程序有哪些类别