Programming languages

Contents
Programming languages are the method used to instruct a computer in how to accomplish a task.

A programming language is a collection of operators and instructions, with specific rules or syntax regarding how the instructions are placed together. Various operations can be combined in an almost infinite number of ways to achieve the tasks we want the computer to perform.

Low-Level Languages
Some programming languages are bound to a particular set of hardware, commonly called Low-Level languages. Low-level languages will consist of a very small amount of abstraction to no abstraction from the computers set architecture. This language is able to covert to machine code, without the need of an interpreter. It will run the program straight on the processor. Typically, low-level languages are simple and will run very quickly. An example of a low-level language is Assembly, where the target is for a particular CPU instruction set. See Low-level programming language for more information.

High-Level Languages
Other languages are more abstract from the hardware, and are known as High-Level languages. High-Level languages will consist of a large amount of abstraction from the computers set architecture. A lot of the time, High-Level languages will use natural language aspects, which makes it easier to use and can automate areas found in the computing systems. This language can make the development of programs simpler and significantly easier to understand, compared to a Low-Level language. An example of a high level language is Java. See High-level programming language for more information.

Other Information
Early generations of computer languages were mostly procedural in nature. Theory taught that code should be logically divided, but left that division up to the programmer. More recently, Object Oriented languages have become more prominent. These languages encourage a more logical division of code.

One thing that should be noted is that programming languages are tools, and every tool has its strengths and weaknesses. While a high level language isolates a programmer from hardware, the programmer loses the ability to directly control that hardware. Choosing the right tool for a problem is very important.

Questions for self-test

 * Next lesson
 * Back to course contents

Multimedia

 * YouTube: The First Programming Languages
 * YouTube: Low-Level vs High-Level Programming Languages
 * YouTube: Machine Code and High Level Languages using Interpreters and Compilers

See also: programming languages
Category:Programming languages - An overview of many different languages
 * Ada
 * Assembly
 * Bash
 * C
 * C++
 * Go
 * Haskell
 * Java
 * JavaScript
 * Lua
 * mKR
 * Pascal
 * PowerShell
 * Processing
 * Prolog
 * Python
 * Rust
 * Smalltalk