Вы находитесь на странице: 1из 4

Two important concepts in Computer

Science
Arley R. Gutarra Inga
August 2018

1. Introduction
In this brief essay we are going to argue about two important concepts in Computer
Science: Algorithm and Programming language, these terms are sometimes confused
by people whose field of study is not specifically Computer Science or similar, and the aim
of this text is to clear some doubts and give some approaches of the mentioned terms.

2. Algorithm
First, we could analyze the origin of the word Algorithm, the word algorithm comes
from the late Latin ‘algobarismus’, and this comes from abbreviation of the classical Ara-
bic ‘hisabu lgubar’, which means “calculation using Arabic numerals”[9] ; on the other
hand, ‘algorithm’ also provides from the Al- Khwarizmi [2] (a famous Arab mathemati-
cian), whose name also derived into words like: arithmos, arithmetic, algebra, etc.

Next, will see the definitions provided by two dictionaries: Diccionario de la len-
gua española (DLE) and Cambridge Dictionary .
The Diccionario de la lengua española gives us the next both definitions:

1. m. Ordered and bounded set of operations that allows finding the solution to a problem.

2. m. Method and notation in the different forms of the calculation.

(From these two definitions, the first one is which have interest to us)

And the Cambridge Dictionary [10] gives us next definition:

1. A set of mathematical instructions or rules that, especially if given to a computer, will


help to calculate an answer to a problem.

As we can see, the first definition (DLE’s definition) shows a broader idea of algorithm,
instead the Cambridge’s definition shows a more specific definition which is focused on
the mathematical and computer science fields.
These two points of view show approximately the approaches that there is about the al-
gorithm definition.

1
Let’s define an algorithm as a sequence of bounded, ordered and well-defined steps
that we have to follow to accomplish an task (to solve a problem)[1]. Given an initial state
and and input (a problem), following the steps we can reach a final state and get and
output (the solution) [2] [15] [7]. Some examples of algorithms in everyday life could be:
an user manual, an algorithm to make us a salad, to take the bus to our study center,
etc. This could be our ‘general’ and informal definition, which gives us a first approach to
understand what an algorithm is, but when we want to get a more formal and rigorous
definition we notice that we have some troubles.

When we try to ‘formalize’ our definition we find several kind of algorithms, and that
is a problem. We can compare the algorithms with the numbers, throughout history many
kinds of numbers have appeared (natural numbers, integers, real numbers, complex num-
bers, etc) and this way the notion of “number”has expanded; the same way with the
algorithms, we have many kinds of algorithms (parallel, interactive, distributed, real-time,
analog, hybrid, quantum, etc), so we can’t generalize the concept and enclose it all in-
to one only definition. But, does that mean that we have to give up? the answer is NO.[12]

Perhaps we can not give a “general definition of algorithm”, but we can certainly fo-
cus on the first notion of algorithm: the “Sequential algorithm” (used from 1950s), and
starting from here we can define the algorithm (at least in it’s starts) in a similar way to
the first definition that we gave. [12]

Some considerations we can indicate are that the instructions (the algorithm) to a
computer should be very accurate, clear and computable so it can understand all the
steps and follow them without mistakes.
The technique used to quantify the effiency of an algorithm is the ‘asymptotic analysis’,
with this method the scientist can compare different algorithms regardless of the language
or computer where they are executed. [3]

3. Programming Language
We can begin the same way we done with ‘Algorithm’. If we search ‘programming
language’ in Cambridge Dictionary, it will redirect us to another link ‘computer langua-
ge’ which gives us the next definition: “a set of rules, words, etc. that are used for writing
computer programs”[11], and that is not bat at all, but it is not accurate, when we look
for ’programming language’ on the Internet we can find some definitions similar to this
one; the most common is “A programming language is a kind of language that allows us
to communicate with a computer[...]a programming language is used to write computer
programs”(a generic definition) [6] [8] [13], this is not correct for some reasons: first, we
can develop a program without the use of a programming language (or not directly), for
example, using Scratch or another similar platform and although we are developing a
program, we are not using a programming language because the graphic interface deals
with the embedded code; and second, when we write code in an specific programming lan-
guage we are not communicating with the computer, we are giving it a serie of instructions
instead, because computers only can understand ’machine code’ (binary, which is com-
posed of zeros and ones)[14] [5]. Taking these considerations into account, we can redefine
a programming language as a formal language where we specifies a set of instructions

2
used to produce several kind of outputs. [5] [6]; this language is composed of a series of
characteristic rules, definitions and structures of each one, which define the structure and
meaning of their elements and expressions. These rules and structures are split into two
different categories: ‘Syntax’ (form, the way to write) and ‘Semantics’ (meaning)[5]; si-
milar to natural languages (Spanish, English, Portuguese...). As natural languages, there
are many programming languages too, each one of them is used in different fields. One last
consideration (or warning) we should take care is do not confuse a programming language
with an computer language, a programming language is an computer language but a
computer language is not necessarily a programming language[5], there are different kinds
of computer languages: programming languages, markup languages, modeling languages,
style sheet languages, etc[4]. For example, a markup language is a computer language
used to format the overall view of a page and the data it contains (Front-end), the-
se languages (HTML, CSS, XML, etc)[13] [5] are computer languages but they are not
programming languages because they do not meet to the main aim of a programming
language: giving instructions to a computer and accomplish a process.

4. Final words
I hope this brief discussion have been useful to whoever has read this article and have
been cleared some doubts about these both terms.

Referencias
[1] Khan Academy. What is an algorithm and why should you care?
url https://www.khanacademy.org/partner-content/dartmouth-college/dartmouth-
algorithms/v/what-are-algorithms, 2018. Accedido el 28-08-2018.
[2] Severeal aouthors. Algorithm. url https://en.wikipedia.org/wiki/Algorithm, 2018.
Accedido el 28-08-2018.
[3] Several authors. Asymptotic analysis. url
https://en.wikipedia.org/wiki/Asymptotic analysis, 2018. Accedido el 29-08-2018.
[4] Several authors. Computer languages. url
https://en.wikipedia.org/wiki/Computer language, 2018. Accedido el 31-08-2018.
[5] Several authors. Lenguaje de programación. url
https://es.wikipedia.org/wiki/Lenguaje de programación, 2018. Accedido el
30-08-2018.
[6] Several authors. Programming language. url
https://en.wikipedia.org/wiki/Programming language, 2018. Accedido el 30-
08-2018.
[7] BBC. What is an algorithm? url https://www.bbc.com/bitesize/articles/z3whpv4,
2018. Accedido el 30-08-2018.
[8] David Bolton. What is a programming language? url
https://www.thoughtco.com/what-is-a-programming-language-958332, 2018. Acce-
dido el 31-08-2018.

3
[9] Diccionario de la lengua española. algoritmo. url http://dle.rae.es/?id=1nmLTsh,
2018. Accedido el 26-08-2018.

[10] Cambridge Dictionary. algorithm. url https://dictionary.cambridge.org/es/diccionario/


ingles/algorithm, 2018. Accedido el 26-08-2018.

[11] Cambridge Dictionary. Programming language. url


https://dictionary.cambridge.org/es/diccionario/ingles/programming-language,
2018. Accedido el 28-08-2018.

[12] Yuri Gurevich. What is an algorithm? SOFSEM 2012: Theory and Practice of
Computer Science, pages 31–42, 2012.

[13] Computer Hope. Programming language. url


https://www.computerhope.com/jargon/p/proglang.htm, 2018. Accedido el
31-08-2018.

[14] Computer Science. Computer programming languages. url


https://www.computerscience.org/resources/computer-programming-languages/,
2018. Accedido el 31-08-2018.

[15] Ronald L. Rivest Thomas H. Cormen, Charles E. Leiserson and Clifford Stein. In-
troduction to Algorithms. MIT Press, 2009.