A program is usually bundled along with documentation and any dependent data and libraries. This bundle is collectively referred to as software. Such software is further classified into system software and application software.
A program is an ordered set of operations that implements one or more algorithm in order to solve some problem or complete a task. Programs are usually written by a programmer using a programming language, however they may also be created automatically using specialized code generators. Programming involves the writing of source code, testing, and modifying the code appropriately. Software engineering is the discipline under which program development is done which involves the design, construction, testing, and maintenance.
Types of programs
Traditionally, programs in human-readable form (source code) were converted into an executable file which could be executed directly by the underlying hardware. Over time a number of other alternatives were developed:
- Compiled Program is a machine code version of the of the original program that was in source code form. The machine code was generated by a compiler which performed the conversion. Machine code can be executed directly by the underlying hardware. This is the kind of process that goes along with languages such as C, C++, Fortran, and Lisp (see compiled language). Compiled programs can take advantage of the raw performance capabilities of the
- Emulated Program is a p-code (or bytecode) version of the original program that was in source code form. The portable code was generated by a compiler, however, unlike machine code, p-code cannot typically be executed directly by the hardware and instead needs the assistance of a virtual machine in order to process such code. This is the idea behind languages such as Java and MATLAB.
- Interpreted Program is a program that is identical to the original source code. In this kind of methodology, the code is interpreted and executed on the fly. This is the idea behind languages such as , Python, and PHP (see interpreted language).