Ce n'est pas un logiciel qu'il te faut mais un ensemble de logiciels.
-Un editeur de texte : pour taper le code.
-Un compilateur : pour transoformer le code en langage machine
-Un linker : pour adapter le programme au systeme d'exploitation.
Ceci est valable pour les programme dont le langage n'est pas managé.
Pour ceux s'executant en managé, le compilateur et le linker agissent de concert pendant l'execution du programme.
Ainsi certain programme java ou .NET voient leur code compilé et executé apres leur lancement.
Remarques que le langage qui constitu le programme avant sa compilation n'est pas la langage dans lequel il a été ecrit. Dans la majorité des cas c'est un langage intermediaire entre le langage de programmation et le code machine. Ainsi les programme java sont constitué de ByteCode et les programmes .NET de MSIL (microsoft intermediate language (platement calqué sur le model java)).
Maintenant si tu veux parler d'un ensemble logiciel qui va t'assister de la conception de ton programme jusqu'a sa distribution, alors c'est d'un IDE dont tu parles (integrated development environment). Microsoft Visual Studio, Java Studio Enterprise ne sont que quelques example d'ide parmis plusieur centaines disponibles.
Le choix de l'ide se fait en fonction du langage dans lequel tu veux programmer. Si tu veux programmer pour l'environement windows Visual Studio est tres simple et performant, par contre il n'est pas donné. Mais il existe d'autre alternatives, notament parmis les produits de chez Borland.