It would probably be a bad idea to separate these aspects into separate programs. Who would want an idl compiler implemented as six separate programs?!