Computer programmers, like everybody else, are not perfect. This means the programs they write sometimes have small errors, called “bugs,” in them. These bugs can be minor, such as not recognizing user input, or more serious, such as a memory leak that crashes the program. Before releasing their software to the public, programmers “debug” their programs, eliminating as many errors as possible. This debugging process often takes a long time, as fixing some errors may introduce others.
When programmers create software programs, they first write the program in source code, which is written in a specific programming language, such as C or Java. These source code files are saved in a text-based, human-readable format, which can be opened and edited by programmers. However, the source code cannot be run directly by the computer. In order for the code to be understood by the computer’s CPU, it must be compiled into an executable program.
Most software development programs include a compiler, which compiles source code files into machine code. This code sometimes referred to as object code, can be executed directly by the computer’s processor. Therefore, the resulting application is often referred to as an executable file. Windows executable files have a .EXE file extension, while Mac OS X programs have .APP extension, which is often hidden.
So the conclusion is a compiled program may have errors or bugs but not a successfully debugged program cannot have any.
So for a perfect program, you need to debug and compile a program