Debugging: -Computer programmers, like everyone else, are not perfect. This means that the programs they write sometimes have small errors, called “bugs.” These errors 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, removing as many bugs as possible. This debugging process is often time consuming, as fixing some bugs can introduce others.

Compilation: 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 directly executed by the computer. For the computer’s CPU to understand the code, 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 called object code, can be executed directly by the computer’s processor. Therefore, the resulting application is often called an executable file. Windows executable files have an .EXE file extension, while Mac OS X programs have an .APP extension, which is often hidden.

So the conclusion is that a compiled program can have bugs or crashes, but a successfully debugged program can’t have any.

So for a perfect program you need to debug and compile a program