PROGRAMMING LANGUAGES: DEFINITION,
ORIGIN, LIST, USES, POPULARITY & FULL DETAILS.
Definition
A programming language is a formal
language comprising a set of instructions that genrate various
kinds of output.
Programming languages are used in computer
programming to implement the algorithms.
Most programming languages consist
of instructions for computers to do things in a specific way.
For example Cobol, C++, SPSS, TORA, Python, Latex etc.
Most programming languages are not standardized
by an international (or national) standard, even widely used ones, such
as Perl or Standard ML .
Origin
Officially, the first programming language for a computer was Plankalkül
, developed by Konrad Zuse for the Z3 between 1943 and 1945. However,
it was not implemented until 1998.
In 1954, FORTRAN was invented at IBM by John Backus. It was the first widely used high-level general
purpose programming language to
have a functional implementation.
It is still a
popular language for high-performance computing and is used for programs that benchmark and rank the
world's fastest supercomputers.
Short Code, which was proposed by John Mauchly in 1949, is considered to
be the first high-level programming language.
It was designed to represent mathematical
expressions in a format readable by human beings.
However, because it had to be translated
into machine code before it could be executed, it had relatively
slow processing speeds.
Other early programming languages were
developed in the 1950s and 1960s, including Autocode, COBOL, FLOW-MATIC,
and LISP.
Early developments
Firstly Programming languages called as Machine languages.
They were later termed
as first-generation programming languages (1GL).
The next step was development of
so-called second-generation programming languages (2GL)
or assembly languages, These served to make the program much more
human-readable and relieved the programmer of tedious and error-prone address
calculations.
The first high-level programming languages,
or third-generation programming languages (3GL), were written in the
1950s.
Programming Language has 2 Elements:
1.Syntax
A programming language's surface form is known as
its syntax.
Most programming languages are purely textual; they use
sequences of text including words, numbers, and punctuation, much like written
natural languages.
On the other hand, there are some programming languages which
are more graphical in nature, using visual relationships between
symbols to specify a program.
2.Semantics
The term semantics refers to the meaning of languages,
as opposed to their form which called as syntax.
It also divided into Static Semantic and Dynamic Semantic.
Static Semantics: It means
that your programming statement definitely have zero chance of generating more
than one results according to the grammar rules.
Dynamic Semantics: It means that program will execute
according to the meaning of a syntax of programming language has potential to
update its context.
Dynamic semantics was originally developed
by Irene Heim and Hans Kamp in 1981.
e.g.-(relative clause): Every farmer who owns a donkey
beats it.
(conditional): If a farmer owns a donkey, he
beats it.
Difference Between Natural and Programming
Languages
·
Programming languages differ from natural languages in that natural languages are
only used for interaction between people, while programming languages also
allow humans to communicate with the machines.
·
More than 7000 Natural languages currently in the world and
Programming languages are currently around 500 to 2000 which very less in
number as compared to Natural languages.
·
All active computer languages is between 5,000 and 25,000.
·
The first programming
language for a computer was Plankalkül , developed by Konrad Zuse for
the Z3 between 1943 and 1945 and Egyptian is may be the oldest natural language
in world around 2690 B.C (because some people believe that Greek language is oldest and
some say Chinese).
How Prgramming languages Work?
Firstly, Work of Programming languages
depends on 3 Factors:
1.Function and target
For different targets
there are different functions or programs to execute and get the results. For
example PostScript programs are frequently created by
another program to control a computer printer or display.
2. Abstractions
Programming
languages usually contain abstractions for
defining and manipulating data structures or controlling the flow of execution.
3. Expressive power
The theory of computation classifies languages by the computations
they are capable of expressing. The
ability to express any possible algorithm is called Turing Complete.
The Language with more expressive power
is Turing Complete.
Turing-complete Language
In computability theory, a system of data-manipulation rules (such as
a computer's instruction set, a programming language, or a cellular automaton) is said to be Turing-complete or computationally
universal if it can be used to simulate any Turing machine.
This means that
this system is able to recognize or decide other data-manipulation rule sets.
Turing
completeness is used as a way to express the power of such a data-manipulation
rule set.
Virtually all
programming languages today are Turing-complete.
A related
concept is that of Turing equivalence – two computers P and Q
are called equivalent if P can simulate Q and Q can simulate P.
A
programming language is Turing complete if you can
implement any possible algorithm with it.
The concept is
named after English mathematician and computer scientist Alan Turing.
e.g.- C, Pascal, C#, C++, Java, Ada,
Python, R, Lisp, Fortron, Prolog etc.
Markup
Language
A markup
language is a system for annotating a document in a way that is syntactically
distinguishable from
the text, meaning when the document is processed for display, the markup
language is not shown, and is only used to format the text.
there is
increasing use of markup languages in the presentation of other types of
information, including playlists, vector graphics, web services, content syndication, and user interfaces.
e.g.- BBC, HTML, SGML, XML, Troff
, nroff, Postscript, Latex, Scribe etc.
Classification of Languages
according to Level
Low-Level
Programming Language
A low-level
programming language is a programming language that provides little or no abstraction from a computer's instruction set
architecture—commands or
functions in the language map closely to processor instructions.
Low level of language is near to the machine and far away from the
programmer.
The low-level language is not easy to understand, and it is machine
dependent language.
Because of the
low (hence the word) abstraction between the language and machine language,
low-level languages are sometimes described as being "close to the
hardware".
Low-level language is divided into two parts: Machine
language and Assembly Language.
Machine
Language
The
machine language is the mixture of binary digits or bits, which can be read and
interpreted by the computer.
The
machine language is the only language that is understood by the computer.
The
language is in the form of 0’s, and 1’s so, no one can understand this language
quickly.
The
machine language is the hardware-dependent programming language.
The
code in machine language is the only computer program which is understandable
by the computer and directly executed by the Central processing unit (CPU).
Assembly
Language
The
assembly language lies in between the machine language and high-level language.
It
is the low-level language for microprocessors and other programmable devices.
An assembly language is a batch of languages, and it is not a single language.
This
language implements the symbolic representation of the machine code. The
assemblers use in assembly language, and these are similar to the compiler.
The
assembler is capable of converting the assembly code into binary code with the
help of the basic commands and the operations.
Middle-Level
Language
The
middle-level language lies in between the low level and high-level language.
C
language is the middle-level language. Java
and C++ are also middle-level languages.
The
middle-level programming language interacts with the abstraction layer of a
computer system.
It
serves as the bridge between the raw hardware and programming layer of the
computer system.
The
middle-level language is also known as the intermediate programming language
and pseudo-language.
High-Level
Programming Language
A high-level
programming language is a programming
language with strong abstraction from the details of the computer.
In
contrast to low-level programming
languages, it may use natural language elements, be easier to use, or
may automate (or even hide entirely) significant areas of computing systems
(e.g. memory management), making
the process of developing a program simpler and more understandable than when
using a lower-level language.
Popular
Programming Language
What makes Programming languages
popular?
The following properties are key points that
makes a programming language.
1. Easy
of use
2. Versatileness
3. Basis
of other Languages
4. Flexibility
5. Fastness
or speed
6. Applicational
Uses
7. Simple
syntax languages
TIOBE Index
Since we will be ranking our most used programming languages on
the Tiobe Index, we need to build at least a general understanding of how it works and what it
takes into account.
The Tiobe Index takes data from hundreds of different sources, compiles it, and
spits it out in list form. The Tiobe Index rankings are
based on several metrics, including:
- The
number of experienced
engineers in the language worldwide. More skilled
developers in a language mean that the language is going to be more
popular.
- The
number of courses available
for a language. This indicates the demand for a
particular language, the number of people who are learning it, and how
widespread it is likely to be in the future.
- The search
engine popularity of the language. Again, this
indicates how popular a language is to the general public. More popular
languages are more likely to be used.
The Tiobe language rating is calculated by taking the percentage of programming
search engine hits that belong to that language.
List of Programming Languages
A
·
A.NET
·
A+
·
ABAP
·
ABC
·
ACC
·
Accent
·
Ace DASL (Distributed
Application Specification Language)
·
Action!
·
Actor
·
Ada
·
Adenine
·
Agda
·
Agora
·
AIMMS
·
Aldor
·
Alef
·
ALF
·
ALGOL
58
·
ALGOL
60
·
ALGOL
68
·
ALGOL
W
·
Alice
·
Alma-0
·
Amiga
E
·
AMOS
·
AMPL
·
Apex
·
APL
·
App Inventor for
Android's visual block language
·
APT
·
Arc
·
ARexx
·
Argus
·
AutoIt
·
Averest
·
AWK
·
Axum
B
·
Babbage
·
Bash
·
BASIC
·
bc
·
BCPL
·
Bertrand
·
BETA
·
BLISS
·
Blockly
·
BlooP
·
Boo
·
Bosque
C
·
C –
ISO/IEC 9899
·
C-- (C
minus minus)
·
C++ (C
plus plus) – ISO/IEC 14882
·
C*
·
C# (C
sharp) – ISO/IEC 23270
·
C/AL
·
Caml
·
Cayenne
·
CDuce
·
Cecil
·
Cesil
·
Céu
·
Ceylon
·
CFEngine
·
Cg
·
Ch
·
Chapel
·
Charm
·
CHILL
·
CHIP-8
·
chomski
·
ChucK
·
Cilk
·
CL (IBM)
·
Claire
·
Clarion
·
Clean
·
Clipper
·
CLIPS
·
CLIST
·
Clojure
·
CLU
·
CMS-2
·
COBOL –
ISO/IEC 1989
·
CobolScript –
COBOL Scripting language
·
Cobra
·
COMAL
·
Combined Programming Language (CPL)
·
COMIT
·
Common Intermediate Language (CIL)
·
Common
Lisp (also known as CL)
·
COMPASS
·
Constraint Handling Rules (CHR)
·
COMTRAN
·
Cool
·
Coq
·
Coral
66
·
COWSEL
·
CPL
·
Cryptol
·
Crystal
·
Csound
·
Curl
·
Curry
·
Cybil
·
Cyclone
·
Cython
·
CEEMAC
D
·
D
·
Dart
·
Darwin
·
DataFlex
·
Datalog
·
dBase
·
dc
·
DCL
·
DinkC
·
DIBOL
·
Dog
·
Draco
·
DRAKON
·
Dylan
·
DYNAMO
·
DAX (Data Analysis Expressions)
E
·
E
·
Ease
·
eC
·
EGL
·
Eiffel
·
ELAN
·
Elixir
·
Elm
·
Emerald
·
Epigram
·
EPL (Easy Programming Language)
·
EPL (Eltron Programming Language)
·
Erlang
·
es
·
Escher
·
ESPOL
·
Esterel
·
Etoys
·
Euclid
·
Euler
·
Euphoria
·
EusLisp Robot
Programming Language
·
CMS
EXEC (EXEC)
·
EXEC
2
·
Ezhil
F
·
F
·
F#
·
F*
·
Factor
·
Fantom
·
FAUST
·
FFP
·
fish
·
Fjölnir
·
FL
·
Flavors
·
Flex
·
FlooP
·
FOCAL
·
FOCUS
·
FOIL
·
FORMAC
·
@Formula
·
Forth
·
Fortran –
ISO/IEC 1539
·
Fortress
·
FP
·
Futhark
·
F-Script
G
·
Game Maker Language (Scripting language)
·
GAMS
·
GAP
·
G-code
·
GDScript
·
Genie
·
GDL
·
GEORGE
·
GLSL
·
GNU
E
·
Go
·
Go!
·
GOAL
·
Gödel
·
Golo
·
Gosu
·
GOTRAN
·
GPSS
·
GRASS
·
Groovy
H
·
Hack
·
HAGGIS
·
HAL/S
·
Halide (programming language)
·
Harbour
·
Haskell
·
Haxe
·
Hermes
·
HLSL
·
HolyC
·
Hop
·
Hope
·
Hugo
·
Hume
I
·
Io
·
Icon
·
IBM
RPG
·
IDL
·
Idris
·
Inform
J
·
J
·
J#
·
J++
·
JADE
·
JAL
·
Janus
(concurrent constraint programming language)
·
Janus
(time-reversible computing programming language)
·
JASS
·
Java
·
JavaScript(Scripting language)
·
JCL
·
JEAN
·
JOSS
·
Joule
·
JOVIAL
·
Joy
·
JScript
·
Julia
·
Jython
K
·
K
·
Karel
·
KEE
·
Kixtart
·
KIF
·
Kojo
·
Kotlin
·
KRC
·
KRL
·
KRL (KUKA Robot Language)
·
KRYPTON
·
Kodu
·
Kv
L
·
LabVIEW
·
Ladder
·
LANSA
·
Lasso
·
Lava
·
LC-3
·
LIL
·
LilyPond
·
Limbo
·
Limnor
·
LINC
·
Lingo
·
LINQ
·
LIS
·
LISA
·
Lisp –
ISO/IEC 13816
·
Lite-C
·
Lithe
·
Little b
·
LLL
·
Logo
·
Logtalk
·
LPC
·
LSE
·
LSL
·
LiveCode
·
Lua
·
Lucid
·
Lustre
·
LYaPAS
·
Lynx
M
·
M2001
·
M4
·
M#
·
MAD (Michigan
Algorithm Decoder)
·
MAD/I
·
Magik
·
Magma
·
Máni
·
Maple
·
MAPPER (now
part of BIS)
·
MARK-IV (now
VISION:BUILDER)
·
Mary
·
MATLAB
·
Max (Max
Msp – Graphical Programming Environment)
·
MaxScript internal
language 3D Studio Max
·
MDL
·
Mercury
·
Mesa
·
MHEG-5
(Interactive TV programming language)
·
MIIS
·
MIMIC
·
Mirah
·
Miranda
·
ML
·
Modelica
·
Modula
·
Modula-2
·
Modula-3
·
Mohol
·
MOO
·
Mortran
·
Mouse
·
MPD
·
MSL
·
MUMPS
·
MuPAD
·
Mutan
·
Mystic
Programming Language (MPL)
N
·
NASM
·
Napier88
·
Neko
·
Nemerle
·
NESL
·
Net.Data
·
NetLogo
·
NetRexx
·
NewLISP
·
NEWP
·
Newspeak
·
Nial
·
Nim
·
Nix (Systems configuration language)
·
NPL
·
Not
eXactly C (NXC)
·
Not
Quite C (NQC)
·
NSIS
·
Nu
·
NWScript
·
NXT-G
O
·
o:XML
·
Oak
·
Oberon
·
OBJ2
·
Obliq
·
OCaml
·
occam
·
occam-Ï€
·
Octave
·
OmniMark
·
Opa
·
Opal
·
OpenCL
·
OPL
·
OpenVera
·
OPS5
·
OptimJ
·
Orc
·
Oriel
·
Orwell
·
Oxygene
·
Oz
P
·
P
·
P4
·
P′′
·
ParaSail (programming
language)
·
PARI/GP
·
Pascal –
ISO 7185
·
PCASTL
·
PCF
·
PEARL
·
Perl
·
PDL
·
Pharo
·
PHP
·
Pico
·
Picolisp
·
Pict
·
Pike
·
PILOT
·
Pizza
·
PL-11
·
PL/0
·
PL/B
·
PL/C
·
PL/I –
ISO 6160
·
PL/M
·
PL/P
·
PL/SQL
·
PL360
·
PLANC
·
Planner
·
PLEX
·
PLEXIL
·
Plus
·
POP-11
·
POP-2
·
PortablE
·
PowerBuilder –
4GL GUI application generator from Sybase
·
PPL
·
Prograph
·
PROIV
·
Prolog
·
PROMAL
·
Promela
·
PROTEL
·
ProvideX
·
Pro*C
·
Pure
·
Python
Q
·
Q (programming
language from Kx Systems)
·
Q#
(Microsoft programming language)
·
Qalb
·
Quantum Computation Language
·
QtScript
·
QuakeC
·
QPL
·
.QL
R
·
R
·
R++
·
Racket
·
Raku
·
RAPID
·
Rapira
·
Ratfiv
·
Ratfor
·
rc
·
Reason
·
REBOL
·
Red
·
Redcode
·
REFAL
·
REXX
·
Rlab
·
ROOP
·
RPG
·
RPL
·
RSL
·
RTL/2
·
Ruby
·
Rust
S
·
S
·
S2
·
S3
·
S-Lang
·
S-PLUS
·
SA-C
·
SAIL
·
SAS
·
SASL
·
Sather
·
Sawzall
·
Scala
·
Scheme
·
Scilab
·
Scratch
·
Sed
·
Seed7
·
Self
·
Serpent
·
SETL
·
SIMPOL
·
SIGNAL
·
SiMPLE
·
Simula
·
Simulink
·
SISAL
·
SLIP
·
SMALL
·
SML
·
Snap!
·
Snowball
·
SOL
·
Solidity
·
Source
·
SPARK
·
SPIN
·
SP/k
·
SPS
·
SQL
·
SQR
·
Squeak
·
Squirrel
·
SR
·
S/SL
·
Starlogo
·
Strand
·
Stata
·
Subtext
·
SBL
·
Swift (Apple programming
language)
·
Swift (parallel
scripting language)
·
SYMPL
T
·
T
·
TACL
·
TACPOL
·
TADS
·
TAL
·
Tcl
·
Tea
·
TECO
·
TELCOMP
·
TeX
·
TEX
·
TIE
·
TMG,
compiler-compiler
·
Tom
·
Toi
·
Topspeed
·
TPU
·
Trac
·
TTM
·
T-SQL
·
TTCN
·
Turing
·
TUTOR
·
TXL
·
Tynker
U
·
Ubercode
·
Umple
·
Unicon
·
Uniface
·
UNITY
V
·
Vala
·
Verilog
·
VHDL
·
Viper
W
·
WebDNA
·
Whiley
·
Winbatch
·
Wyvern
X
·
X++
·
X10
·
xBase
·
xBase++
·
XBL
·
XC (targets XMOS
architecture)
·
xHarbour
·
XL
·
Xojo
·
XOTcl
·
Xod
·
XPL
·
XPL0
·
XQuery
·
XSB
·
XSharp
·
XSLT
·
Xtend
Y
·
YAML
·
Yorick
·
YQL
·
Yoix
·
YUI
Z
·
Zeno
·
ZetaLisp
·
Zig
·
ZOPL
·
ZPL
·
Z++
Comments
Post a Comment
Please subscribe to our blog by giving your name and email id to get notifications for upcoming blogs.You can also give topics on which i will write. Please keep comments respectful and peaceful.