0% found this document useful (0 votes)
4 views14 pages

Programming language. ESSAY

The document provides an overview of programming languages, explaining their necessity for communication between computers and humans. It categorizes programming languages into machine languages, low-level languages (assembly), and high-level languages, detailing their characteristics, advantages, and disadvantages. Additionally, it discusses the historical development of programming languages and their classifications based on functionality and evolution.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views14 pages

Programming language. ESSAY

The document provides an overview of programming languages, explaining their necessity for communication between computers and humans. It categorizes programming languages into machine languages, low-level languages (assembly), and high-level languages, detailing their characteristics, advantages, and disadvantages. Additionally, it discusses the historical development of programming languages and their classifications based on functionality and evolution.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Programming language

INTRODUCTION

Computers do not speak our language, they are machines and as such,
they need a specific language designed by humans for them.
In addition, they constantly need to interpret all instructions.
that they receive. Given the insurmountable difficulty of communication between the
computer and the programmer, soon programming languages appeared
programming that enables communication with the
microprocessor, using terms and symbols related to the type
of the problem to be solved, through the use of tools
what computing provides.

These languages allow, on the one hand, to write the operations that are
necessary to carry out to solve the problem in a similar way to
how it would be conventionally written (that is, to draft
adequately the problem-solving algorithm) and, on the other hand,
is responsible for translating the algorithm into machine language (process
known as compilation) with which the program is conferred the
ability to run (to be executed) on the computer. The computer is in
reality is just a virtual machine, capable of solving all the
problems that users are able to express through a
algorithm (program).

Currently, there are many types of programming languages, each


one of them with its own grammar, its special terminology and a
particular syntax. For example, there are some specifically created
for general scientific or mathematical applications (BASIC, FORTRAN,
PASCAL, etc.); others, on the other hand, are oriented towards the business field and to
text and file management, that is to say, they are fundamentally fundamentally
information managers (COBOL, PL/1, etc.), or closely related to the
machine language of the computer (such as C and ASSEMBLER).
Computers were programmed in machine language but the
difficulties that this involved, along with the enormous ease of
make mistakes, whose location was long and complex, made
concebir, en la década de los 40, la posibilidad de usar lenguajes
symbolic. The first to appear were the assemblers,
it fundamentally consisted of giving a name (mnemonic) to each type
of instruction and each direction (label). At first I know towards the
program about paper and then it was translated by hand with the help of
some tables, and they were introduced into the machine in numerical form, but
Soon programs that assembled automatically appeared.

DEFINITIONS

It is complicated to define what is and what is not a programming language.


It is generally assumed that the translation of the instructions to a
code that the computer understands must be complete
systematic. Normally it is the computer that performs the
translation.

Next, I am going to write a series of definitions of languages.


of programming:

1° A programming language is a notation for writing


programs through which we can communicate with the
hardware and thus give the appropriate orders for the realization of a
determined process. A language is defined by a grammar or
set of rules that apply to an alphabet made up of the
set of used symbols. The different levels of programming
existing ones allow us to access the hardware, in such a way that according to
let's use one level or another, thus we will have to use a certain one
language linked to its corresponding translators.

2nd Set of 'linguistic' norms (words and symbols) that allow


write a program and that it be understood by the computer and can
to be transferred to similar computers for their operation in others
systems.

3rd Set of instructions, orders, and recognizable symbols by


automaton, through its programming unit, which allows it to
execute the desired control sequence. To the total set of these
instructions, orders, and symbols that are available will be called
programming languages of the automaton. The program is made up of
a set of instructions, statements, functional blocks and
graphics that indicate the operations to be performed. The instructions
they represent the most basic task of a program: reading an input,
perform an operation, activate an output, etc. The statement represents the
minimum set of instructions or statements that perform a task or
complex function: find the value of a logical function in
combination of several variables, consult a set of conditions,
etc. The functional block is the set of instructions or statements that
they perform a complex task or function: counters, records of
displacements, information transfers, etc. All these
elements are related to each other by symbols or
graphics.

It is a set of words and symbols that allow the user


generate commands and instructions for the computer to execute.
Programming languages must have instructions that
belong to the already familiar categories of input/output,
calculation/manipulation, of texts, logic/comparison, and
storage/retrieval.

CLASSIFICATION OF PROGRAMMING LANGUAGES

MACHINE LANGUAGE:

Machine language is the only one that directly understands the


computer, since it is written in directly intelligible languages
by the machine (computer), it uses the binary alphabet, which consists of
the only two symbols 0 and 1, called bits (English abbreviation of
binary digits). Their instructions are binary strings (strings or
series of characters of digits 0 and 1) that specify an operation and,
memory positions (direction) involved in the operation
they are called machine instructions or machine code. It was the first
language used in computer programming, but it stopped
to be used due to its difficulty and complexity, being replaced by others
easiest languages to learn and use, which also reduce the
possibility of making mistakes. Machine language is the known
binary code. Generally, in the coding of programs,
he used the hexadecimal system to simplify the writing work.
All instructions prepared in any machine language have
at least two parts. The first is the command or operation, which says
to the computers what function it is going to perform. All the
computers have an operation code for each of the
functions. The second part of the instruction is the operand, which indicates
to the computer where to find or store the data and others
instructions that will be manipulated, the number of operands of a
instruction varies on different computers.

Advantages of machine language: possibility of loading (transferring a


Program to memory) without the need for subsequent translation, what
it assumes a execution speed superior to any other language of
programming.

Disadvantages of machine language: difficulty and slowness in coding.


Little reliability. Great difficulty in verifying and fine-tuning the
programs. Programs can only be executed on the same processor
(CPU). Currently, the disadvantages outweigh the advantages, which
makes machine languages practically not recommendable.

LOW-LEVEL LANGUAGES (assembly):

They are easier to use than machine languages, but like


they depend on the particular machine. The low-level language by
excellence is assembly. The assembly language is the first
attempt to replace machine language with another more similar to the
used by people. This tries to unflexibilize the representation
from the different fields. That flexibility is achieved by not writing the
fields in binary and approximating writing to language. At the beginning of
the 1950s and in order to facilitate the work of programmers,
mnemonic codes were developed for the operations and
symbolic directions. The mnemonic codes are the symbols
alphabetical of the machine language. The computer continues to use the
machine language to process the data, but the programs
assemblers translate the operation code symbols first
specified to their equivalents in machine language. In the
current affairs programmers do not assign real address numbers to
the symbolic data simply specify where they want it to be
place the first location of the program and the assembler program is
takes care of the rest, assigns locations both for the instructions
like the data. These assembly programs or assemblers also
allow the computer to convert instructions into language
assembler of the programmer in its own machine code. A
instruction program written in assembly language by a
programmer is called source program. After the assembler
convert the source code into machine code this is called
object-oriented programming. For programmers, it is easier to write
instructions in an assembly language that in code of language
machine but it may require two computer runs
before the source program instructions can be used
to produce the desired outputs.

Low-level language is the programming language that the


computer can understand when executing programs, what
increases its execution speed, as it does not require an interpreter that
Translate each line of instructions.
At a very low level, microprocessors process exclusively
binary electronic signals. Give an instruction to a microprocessor
supone en realidad enviar series de unos y ceros espaciadas en el tiempo
in a determined way. This sequence of signals is called
machine code. The code typically represents data and numbers and
instructions for manipulating them. An easier way to understand the
machine code is giving each instruction a mnemonic, such as
example STORE, ADD or JUMP. This abstraction results in the
assembler, a very low-level language that is specific to each
microprocessor.

Low-level languages allow the creation of very fast programs, but


which are often difficult to learn. More important is the fact that
that programs written in a low level are highly specific
from each processor. If the program is taken to another machine, it must
rewrite the program from the beginning.

Advantages of assembly language over machine language: greater


coding ease and, in general, its calculation speed save
time and require less attention to detail. There is less incurred
errors and those that are made are easier to locate. Both the
machine language like assembly enjoys the advantage of minimal
memory occupancy and minimum execution time in comparison
with the result of the compilation of the equivalent program written in
other languages. Programs in assembly language are easier
to modify that programs in machine language.

Disadvantages of assembly language: total dependence on the machine


what prevents the portability of the programs (possibility of
run a program on different machines). The assembly language
the PC is different from the assembly language of the Apple Macintosh. The
the training of programmers is more complex than the
corresponding to high-level programmers, as it requires not only
the programming techniques, but also the knowledge of the inside
from the machine The programmer must have a perfect understanding of the hardware
of the team, as it directly handles memory positions,
processor registers and other physical elements. All the
instructions are elementary, that is, the program must include
describe in maximum detail all the operations that need to be
carry out on the machine for the realization of any process.

Assembly languages have very limited applications.


they focus mainly on real-time applications, process control
and electronic devices.

HIGH-LEVEL LANGUAGES:

These languages are the most used by programmers. They are


designed for people to write and understand programs of
a much easier way than machine languages and assembly language. A
program written in high-level language is independent of the
machine (the instructions do not depend on the hardware design or
a particular computer), so these programs are
portable or transportable. Programs written in high-level language
levels can be executed with little to no modification in
different types of computers. They are programming languages in the
that the instructions sent for the computer to execute certain
commands are similar to human language. Since the computer is not
able to recognize these commands, it is necessary to use an interpreter
to translate high-level language to a low-level language that he
system can understand.
Generally, it is thought that computers are machines that perform
calculation tasks or text processing. The previous description is
just a very schematic way of seeing a computer. There is a high
level of abstraction between what is asked of the computer and what
It truly understands. There is also a complex relationship between the
high-level languages and machine code.

High-level languages are usually easy to learn.


because they are formed by elements of natural languages, such as the
English. In BASIC, the most well-known high-level language, the commands
as 'IF COUNTER=10 THEN STOP' can be used to ask the
computer that stops if COUNTER is equal to ten. Unfortunately
for many people, this way of working is a bit frustrating,
given that despite the fact that computers seem to understand a
natural language, they actually do it in a rigid way and
systematic.

High-level languages, also known as languages


evolved, arise after the previous ones (language
machine, low-level languages or assembly) with the following
objectives, among others:

Achieve independence from the machine, being able to use the same
program on different devices with the only condition of having a
translator or compiler program, which is provided by the manufacturer,
to obtain the executable program in machine binary language
that it deals with. Furthermore, it is not necessary to know the specific hardware of
that machine. Approaching natural language, so that the program
it can be written and read in a simpler way, eliminating many
of the possibilities of making mistakes that occurred in the language
machine, since words (in English) are used instead of strings of
symbols with no apparent meaning.

Include frequently used routines, such as entry/exit functions


mathematics, handling of tables, etc., that appear in a kind of
language library, so that they can be used whenever they
want without the need to program them every time.

Advantages of high-level languages: the training time of the


programmers is relatively short compared to other languages.
The writing of programs is based on syntactic rules similar to those of
human languages, names of instructions such as READ,
WRITE, PRINT, OPEN, etc. The modifications and adjustments of the
programs are easier. Reduction of program costs.
Portability. They allow for better documentation. They are more
easy to maintain.

Disadvantages of high-level languages: increase in time of


tuning when different translations of the program are needed
source to obtain the final program. They do not take advantage of the
internal resources of the machine that are exploited much better in
machine languages and assemblers. Increase in employment of
memory. The execution time of the programs is much greater.

It can be said that the main problem presented by languages is


high level is the large number of them that currently exist in use,
In addition to the different versions or dialects that have developed.
of some of them. It is difficult to establish a general classification of the
same, since in any that is carried out there will be languages that
belong to more than one of the established groups. A classification
very widespread, attending to the way programs work and to the
the philosophy with which they were conceived is as follows:

Imperative languages. They use instructions as a unit of


work of the programs (Cobol, Pascal, C, Ada).
Declarative languages. Programs are built using
descriptions of functions or logical expressions (Lisp, Prolog).
Object-oriented languages. The design of programs is based on
but on the data and its structure. The unit of process is the object.
and it includes the data (variables) and the operations that
they act on them (Smalltalk, C++).
Problem-oriented languages. Designed for problems
specific, mainly management, tend to be generators of
applications.
Natural languages. New languages are being developed with
the main objective of bringing together design and construction of
programs to the language of the people.

Another classification that can be made is based on development.


of languages since the emergence of computers, which follows a
certain parallelism with the generations established in evolution of
the same

1.2. History of programming languages


Since 1954 to the present, more than 2,500 have been documented.
programming languages. Between 1952 and 1972, the first era of the
programming languages, around 200 languages were developed,
of which a dozen were truly significant and had
influence on the development of later languages.
A partial list of some of the most programming languages
important, along with their year of creation:

Predecessor(s) Year Name Lead Developer, the Company


Pre 1950
* ~ 1840program booklet Ada Lovelace
* 1945Plan calcConcept Konrad Zuse
1950
* 1952 A-0 Grace Hopper
* 1954Mark I Autocode Tony Brooker
1954
A-0 FORTRAN "0"Concept John W. BackusinIBM
1955
A-0 1954Arithmetic Grace Hopper
A-0 1954MATH-MATIC Grace Hopper
* 1954 IPL V(Concept) Allen Newell, Cliff Shaw, Herbert Simon
A-0 1955FLOW-MATIC Grace Hopper
1956-
IPL LISP(Concept) John McCarthy
1958
FLOW-MATIC 1957 COMTRAN Bob Bemer
1960
ALGOL 58 1960ALGOL 60
FLOW-MATIC
1960COBOL 61(Implementation) The CommitteeCODASYL
COMTRAN
* 1961COMMIT(Implementation)
FORTRAN II 1962FORTRAN IV
* 1962APL(Concept) Kenneth E. Iverson
ALGOL 58 1962MAD Bruce Arden, and Others
ALGOL 60 1962SimulaConcept
II FORTRAN, COMIT 1962SNOBOL Ralph GriswoldAnd Others
SNOBOL 1963SNOBOL3 Ralph Griswoldand Others
ALGOL 60 1966CORAL66
CPL 1967 BCPL Martin Richards
FORTRAN, TELCOMP 1967Mumps Massachusetts General Hospital
* 1967APLImplementation Kenneth E. Iverson
Johan Dahl Ole, Myhrhaug Bjørn, Kristen
ALGOL 60 1967Simula 67(Implementation)
NygaardinNorwegian Computing Center
SNOBOL3 1967SNOBOL4 Ralph Griswoldand Others
WM McKeemanand others in theUniversity
from CaliforniaSanta Cruz, California
PL / I 1967XPL
JJ Horningand Others in theUniversity of
Stanford
DIBOL 1968DIBOL-8 December
COWSEL 1968 POP-1 Burstall Vara, Popplestone Robin
1968Forth(Concept) Chuck Moore
LISP 1968LOGO Seymour Papert
* 1968REFALImplementation Valentin Turchin
ALGOL 60 1969ALGOL 68(Implementation)Adriaan van Wijngaarden, and Others
ALGOL 60, COBOL,
1969PL / 1Implementation IBM
FORTRAN
1970
1970Forth(Implementation) Chuck Moore
POP-1 1970POP-2
ALGOL 60 1971Pascal Niklaus Wirth, Kathleen Jensen
Pascal, XPL 1971Sue Holty Otrosen laUniversity of Toronto
SIMULA 67 1972Smalltalk-72 Xerox PARC
B, BCPL, ALGOL 68 1972 C Dennis Ritchie
* 1972INTERCAL
2-level of W-
1972Prologue Alain Colmerauer
Grammar
Pascal, BASIC 1973 COMAL Børge Christensen, Benedicto Löfstedt
Pascal, Sue 1973LIS IchbiahOther yenCII Honeywell Bull
BASIC 1974 GRASS Tom DeFanti

Mumps 1977Norma PAPERAS


SNOBOL 1977ICON(Concept) Ralph Griswold
IchbiahOther yenCII Honeywell Bullparagraph
ALGOL 68, LIS 1977 Green TheDepartment of Defense of the United States
United
Benjamin M. Brosgoly
ALGOL 68, CS-4 1977Red OthersenIntermetricsparagraph TheDepartment
Department of Defense of the UNITED STATES
Goodenoughand OthersSoftechcouple
ALGOL 68, 1977Blue TheDepartment of Defense of the
UNITED STATES
TopsOther yenSRI InternationalFor
ALGOL 68, 1977Yellow TheDepartment of Defense of the United States
United
FORTRAN IV 1978FORTRAN 77
Modula 1978?Modula-2 Niklaus Wirth
* 1978?MATLAB Molein theUniversity of New Mexico
Dr. Nevil Brownleein theUniversity of
Algol60 1978?SMALL
Auckland
* 1978VisiCalc Dan Bricklin, Bob FrankstoninVisiCorp
PL / I, Basic, EXEC
1979REXX Mike Cowlishaw
2
C, SNOBOL 1979Awk Hello,
Weinberger, Brian Kernighan
SNOBOL 1979 ICONImplementation Ralph Griswold
* 1979Vulcano dBase II Ratliff
1980
C, SIMULA 67 1980C With Classes Bjarne Stroustrup
Smalltalk-76 1980Smalltalk-80 Xerox PARC
Smalltalk, C 1982Objective-C Brad Cox
Department of Defense of the UNITED STATES
Green 1983There are 83
UNITED
C With Classes 1983C + + Bjarne Stroustrup
John Kemeny George, Thomas Kurtzinthe
BASIC 1983It's true BASIC
Dartmouth College
SH 1984?Korn Shell(ksh) Dave Korn
* 1984Standard ml
dBase 1984CLIPPER Nantucket
Smalltalk 1987 CarConcept Sun Microsystems Inc.
* 1987HyperTalk Apple Computer
* 1987SQL-87
C, sed, awk, SH 1987Pearl Larry Wall
MATLAB 1988Eighth
dBase-III 1988dBase IV
Awk, Lisp 1988Tcl John Ousterhout
REXX 1988Object REXX Simon Nash
Ada 1988SPARK Bernard A. Carré
Turbo Pascal programming
Turbo Pascal 1989 Borland
object-oriented
ANSIC3.159-1989 (approved by ISO in
C 1989Standard C89/90
1990
Modula-2 1989Modula-3 Cardeli and Others
Modula-2 1989Oberon Niklaus Wirth
VisSim 1989VisSim Pedro A. Darnell
1990
Oberon 1990Oberon Object Niklaus Wirth
Kenneth Iverson, Roger HuiSoftware
APL, FP 1990 J
Iverson in
Miranda 1990 Haskell
1984 PAPERAS 1990 1990 MUMPS
Fortran 77 1991 Fortran 90
Oberon Object 1991Oberon-2 Niklaus Wirth
ABC 1991Python Van Rossum
1991 Q
QuickBASIC 1991Visual Basic Alan CooperinMicrosoft
SQL-87 1992 SQL-92
Turbo Pascal
programming 1992Borland Pascal
object-oriented
ksh 1993?Shell of Z(zsh)
Smalltalk 1993?Car(Implementation) Sun Microsystems Inc.
1995ColdFusion Allaire
C, Simula67 or C++
1995Java James GoslinginSun Microsystems
Smalltalk
1990MUMPS 19951995 MUMPS
I, from Java 1995?LiveScript Brendan EichinNetscape
Fortran 90 1996Fortran 95
Karl Glazebrook, Brinchmann Jarle, Tuomas
APL, Perl 1996Perl Data Language(PDL)
Luke, andChristian sister
REXX, Java 1996NetREXX Cowlishaw
LiveScript 1997?JavaScript Brendan EichinNetscape
SML 84 1997 SML 97
PHP 3 1997PHP
Scheme 1997Peak Free University ofBrussels
Smalltalk-80, of
1997Squeak Smalltalk Alan Kay,Others yenApple Computer
vacation
JavaScript 1997?ECMAScript ECMATC39-TG1
C + +, C standard 1998C++ Standard ANSIISO standard of C++
Prologue 1998 Erlang Open Source ErlangEricsson
Standard C89/90 1999Norm C99 ISO/ IEC9899:1999
2000
C, C++, Java, Eiffel 2000 D Brilliant Walterin digital Mars
C, C++, Delphi,
2000C # Anders HejlsberginMicrosoft( ECMA)
Java
2005Seed7 Thomas Mertes
Ada 95 2007 Ada 2005 There is a Group of Reporter

First generation. Machine languages and assemblers.


Second generation. First high-level imperative languages
(FORTRAN, COBOL).
Third generation. High-level imperative languages. They are the most
used and still in force today (ALGOL 8, PL/I,
PASCAL, MODULA).
Fourth generation. Basically oriented towards applications of
management and handling of databases (NATURAL, SQL).
Fifth generation. Oriented towards artificial intelligence and
natural language processing (LISP, PROLOG).

The first known computer programmer was Ada Lovelace.


daughter of Anabella Milbanke Byron andLord ByronAnabella introduced into the
mathematics to Ada who, after meetingCharles Babbage,
He translated and expanded a description of his analytical machine. Even though
Babbage never completed the construction of any of his machines.
the work that Ada did with these earned her the title of first
computer programmer of the world. The name of thelanguage of
Ada programmingwas chosen as a tribute to this programmer.
At the end of1953, John Backussubmitted a proposal to his superiors
inIBMto develop a more practical alternative tolanguage
assemblerto program thecentral computerIBM 704The
the historical Fortran team of Backus consisted of the programmers
Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy
Nutt, Robert Nelson, Irving Ziller, Lois Haibt and David Sayre.

The first manual for the languageFortranappeared in October of1956,


with the firstcompilerFortran delivered in April1957This was a
optimized compiler, because customers were reluctant to use one
high-level languageunless your compiler could generate code
whose performance would be comparable to that of hand-written code in
assembly language.

In1960, it was createdCOBOL, one of the languages still used in 2010 in


management information systems.

As the complexity of the tasks they performed increased


As computers increased, it became necessary to have a more methodical approach.
efficient for programming them. Then, the were createdhigh languages
level, as it wasBASICin the versions introduced in the
microcomputers of the decade of1980While a task like this
as simple as adding two numbers may require several instructions
in assembly language, in a high-level language it will be enough to just
one.

You might also like