Está en la página 1de 4

FUNDAMENTOS DE PROGRAMACION

Se denomina algoritmo a una secuencia de instrucciones que permiten


obtener un resultado en particular. No necesariamente son programas de
computadora, una receta de cocina, o las instrucciones para cambiar un
neumtico son ejemplos de algoritmos de la vida real.

Las computadoras, son maquinas sin inteligencia propia, cuya nica


finalidad es interpretar el cdigo que se les provee.

El lenguaje de mquina es el nico lenguaje que la computadora


"entiende" y es capaz de ejecutar.

Los lenguajes de programacin son el medio de comunicacin entre el


programador y una computadora. El programador escribe en algn
lenguaje de programacin y utiliza las herramientas provistas por ese
lenguaje para transformarlo en lenguaje de mquina.

Finalmente, denominamos programa a una secuencia de rdenes a ser


ejecutadas por una computadora. Un programa debe estar escrito en
algn lenguaje de programacin, y puede incluir uno o ms algoritmos.

Tipos de lenguajes

Existe una gran cantidad de lenguajes de programacin, que estn pensados


para distintas finalidades, siguen distintos paradigmas, y de una u otra forma
se diferencian de los dems.

Esquemas de programacin
El esquema de programacin llamado Programacin Imperativa, consiste en
escribir una secuencia de instrucciones una detrs de la otra, que se ejecutarn
en orden. Algunas de esas instrucciones pueden hacer que la mquina pase a
una instruccin que no sea la siguiente, tal vez porque se cumpla una
condicin que hayamos establecido.

En los ltimos aos ha tomado fuerza otro paradigma de computacin,


llamado Programacin Orientada a Objetos , en el cual se intentan modelar
los sistemas creados como extensiones de la realidad mediante la definicin de
"objetos" que modelan entidades de la vida real y que interactan entre s
mediante "mensajes" llamadas mtodos.

El lenguaje C es un lenguaje imperativo, no orientado a objetos.

Alto o bajo nivel

Por otro lado, los lenguajes de programacin se clasifican en niveles. Un


lenguaje es de ms bajo nivel cuanto ms cercano est al cdigo de mquina,
y un lenguaje que es de ms alto nivel cuanto ms lejano est de la mquina y
ms cercano al lenguaje humano.

C es un lenguaje de alto nivel aunque tiene muchas caractersticas de lenguaje


de bajo nivel (como el uso que permite hacer de la memoria). Estas
caractersticas hacen que C sea un lenguaje muy potente, ya que permite
optimizar al mximo los recursos de la mquina. Por ende, esto tambin hace
que la dificultad y que los errores que se puedan cometer programando
aumenten. As que a C se le considera de nivel medio.

Lenguajes de ms alto nivel que C son aquellos en los que el programador no


necesita encargarse de manipular la memoria, como Java, C#, Python, Ruby,
entre otros.

Compilados o interpretados

Otra forma de clasificar a los lenguajes de programacin que es segn la


forma en que se ejecutan sus rdenes. Existen los lenguajes que son
interpretados, cuyas rdenes pasan a travs de un intrprete que se encarga
de ejecutarlas (a partir del cdigo fuente) en el mismo momento en que estn
siendo ledas. Algunos de los lenguajes interpretados son Python, Perl o Tcl,
entre muchos otros.
La contraparte de los lenguajes interpretados son los lenguajes compilados
(como el mismo C) que se diferencian en que las rdenes son transformadas a
lenguaje de mquina que se almacena en un archivo ejecutable. Ese archivo
puede ejecutarse luego, sin recurrir al compilador.

Los lenguajes compilados tienen la ventaja de la velocidad y la eficiencia,


pero los interpretados tienen la ventaja de que, generalmente, son muy
portables y de ms alto nivel.

Estructura de la memoria

Parte de esta potencia de C viene de que permite acceder con mucha libertad a
la memoria de la mquina. Para entender un poco cmo es posible, debemos
entender cmo se guardan los datos en la memoria.

Imaginemos que la memoria tiene un montn de casillas, una enorme fila de


casillas, cada una de las cuales contiene un dgito binario (bit):

010100101010000101010100101000010011101011001001010100101101011
0001101010110101010110111...

Es exactamente as, pero es ms cmodo recordar que esos bits se encuentran


agrupados de ocho en ocho, formando octetos (bytes):

.
0101 1010 0101 1010 0011 1100 0101 1101 0011 0110 1011
.
0010 0001 0100 0001 1010 1001 0010 0110 0101 1010 0111
.

Cada octeto puede contener combinaciones distintas de ceros y


unos, es decir, cualquier nmero entre 0 y 255:

82 161 84 161 58 201 82 214 181 106 183 ...

Tambin podemos representar estos nmeros en base hexadecimal:

0x52 0xA1 0x54 0xA1 0x3A 0xC9 0x52 0xD6 0x35 0x6A 0xB7 ...

O considerarlos caracteres:

R T : R 5 j ...
Este es el tipo de dato ms elemental que nos podemos encontrar en C: el
caracter. Un caracter ocupa exactamente un byte (8 bits) de memoria, y puede
contener un nmero entre 0 y 255, o entre -128 y 127, dependiendo si
queremos considerarlo como sin signo o con l.

También podría gustarte