Beruflich Dokumente
Kultur Dokumente
¿Qué es un algoritmo?
Si se consulta la definición de algoritmo, se entiende que éste es un conjunto
finito de instrucciones que se deben seguir para resolver un problema. No
obstante, desde el punto de vista de la programación de ordenadores, la
definición del algoritmo como la especificación de una serie de pasos, es
incompleta. Debe observarse que los ordenadores son equipos que tienen
limitaciones físicas en cuanto a capacidad de almacenamiento y procesamiento.
Por consiguiente debemos refinar un poco más nuestra definición de algoritmo
para hacerla aplicable de manera efectiva en el ámbito de la informática.
Definición:
Un algoritmo se entiende como una sucesión finita de pasos que deben cumplir
las siguientes especificaciones:
1. Cada paso del algoritmo debe estar bien definido: Esto significa que
la definición de un paso debe ser suficientemente clara, para que una
persona pueda entenderla y realizarla. Si bien no se puede dar un criterio
determinístico para decidir si un paso está bien definido, debemos apelar
al sentido común para decidir que un paso está especificado sin
ambigüedades.
2. Un algoritmo debe tener un principio y un fin: Un programa es un
algoritmo escrito con un objetivo: conseguir un resultado. No tiene sentido
crear un programa que espere infinitos segundos y luego escriba en
pantalla "Hola Mundo!", del mismo modo que un algoritmo debe tener un
principio bien definido (tampoco tiene sentido el algoritmo "haz nada, y
luego escribe Hola Mundo!").
Modelos computacionales
Un modelo computacional es un modelo matemático en las ciencias de la
computación que requiere extensos recursos computacionales para estudiar el
comportamiento de un sistema complejo por medio de la simulación por
computadora
Ejemplos de modelos computacionales comunes son modelos de el pronóstico
del tiempo, modelos del Earth Simulator, modelos de simulador de vuelo, y
modelos de red neural.
Programas: Algoritmos para ser ejecutados por un ordenador
Un computador está, desde que se enciende hasta que se apaga totalmente,
ejecutando un algoritmo. Por lo general, estos algoritmos, escritos para que los
entienda una máquina, terminan siendo vagos y confusos para la mayoría de
quienes no han estudiado programación. Una máquina no puede entender
"escribe Hola Mundo!" porque no sabe lo que es "escribe" ni lo que es una letra
o un espacio, ni lo que es una pantalla. En cambio, puede entender "mov eax,
0x23afb31" (escribir en la dirección de memoria eax el número 0x23afb31 en
hexadecimal) aunque nosotros no. Un computador es solo un circuito
electrónico, no funciona a base de magia ni nada por el estilo, no entiende
nuestro idioma, no nos ve ni nos escucha. Para lograr eso, necesitamos
programas que integrados a los diferentes hardware, nos permita la interacción
entre humano máquina, pero estos lenguajes suelen ser muy complicados.
Debido a lo difícil que es escribir en lenguaje máquina, e incluso en ensamblador,
se crearon diferentes lenguajes de programación, más o menos parecidos al
inglés actual y a cómo se redacta un algoritmo. Estos lenguajes proveen de
cosas tan complejas para una máquina como los bucles. Los compiladores se
encargan de traducir esos ficheros al lenguaje ensamblador que corresponda, el
ensamblador de traducirlos a lenguaje máquina y el enlazador de juntar todo ese
código máquina en un solo archivo, el programa. Y el microprocesador, se
encarga de ir encendiendo o apagando transistores según lo que le diga el
código máquina. Es fácil entender el lenguaje de alto nivel en comparación al
lenguaje máquina pero de la evolución surgieron.
¿Qué instrucciones ejecuta un computador?
Lenguaje de máquina