A computer is a machine that runs programs. Programs must be written in a language, called a programming language, which is either compiled or interpreted. Interpreted programming languages are also called scripting languages.
Interpreted programs such as scripts run when another program (for example, a browser) interprets the script, just like an actor interprets the script for a film. In other words, the program reads the script and outputs the results. The source code for scripts is mostly in the form of text-based commands that are easily accessible, so anyone can change them. This makes them an easy target for hackers (also known as 'script kiddies'). Because scripts are run and interpreted in real time, they require more resources, such as memory and bandwidth, to run them.
When the source code for a program has been compiled, it means that the code has been converted into an executable program for distribution and therefore it is not so easy to get hold of the source code. Compiled programs tend to run faster than scripts because the software used to compile the program will have used methods to improve efficiency. One such method is parsing, which breaks the code down into chunks for processing.
Procedural programming is when a program is interrelated from start to finish, almost like following a flow chart.
Object orientated programming (OOP) is when a program has been written in chunks, or reusable objects, that interact with each other. For example, a car can have attributes such as colour, engine size, make, model, and methods or events such as how fast it is travelling and fuel consumption. If we program the compiler to create these objects, the car's attributes and events can easily be changed during the running of the program by simply making a call to the object. For example, to reduce speed, a call would be made to the speed object. The object can also be easily copied into other programs.
Application Programmable Interfaces (APIs) rely on OOP methods to allow the creation of additional enhanced features (plug-ins) to be added to a program by other programmers.