Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2 Modelos computacionales 3 Programas: Algoritmos para ser ejecutados por un ordenador 4 Qu instrucciones ejecuta un ordenador? 4.1 Lenguaje de mquina 4.2 Lenguaje ensamblador 5 Programacin para seres humanos 5.1 Lenguajes de alto nivel 5.2 Traductores e intrpretes 5.3 Lenguajes interpretados vs. lenguajes compilados
Qu es un algoritmo?
Si se consulta en la Wikipedia la definicin 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 programacin de ordenadores, la definicin del algoritmo como la especificacin de una serie de pasos, es incompleta. Debe observarse que los ordenadores son equipos que tienen limitaciones fsicas en cuanto a capacidad de almacenamiento y procesamiento. Por consiguiente debemos refinar un poco ms nuestra definicin de algoritmo para hacerla aplicable de manera efectiva en el mbito de la informtica. Definicin: Un algoritmo se entiende como una sucesin finita de pasos que debe cumplir las siguientes especificaciones: Cada paso del algoritmo debe estar bien definido: Esto significa que la definicin de un paso debe ser suficientemente clara, para que una persona pueda entenderla y realizarla. Si bien no se puede dar un criterio determinstico para decidir si un paso est bien definido, debemos apelar al sentido comn para decidir que un paso est especificado sin ambigedades. 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 ~ segundos (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 matemtico en las ciencias de la computacin que requiere extensos recursos computacionales para estudiar el comportamiento de un sistema complejo por medio de la simulacin por computadora. El sistema bajo estudio es a menudo un sistema complejo no lineal para el cual las soluciones analticas simples e intuitivas no estn fcilmente disponibles. En lugar de derivar una solucin analtica matemtica para el problema, la experimentacin es hecha con el modelo cambiando los parmetros del sistema en la computadora, y se estudian las diferencias en el resultado de los experimentos. Las teoras de la operacin del modelo se pueden derivar/deducir de estos experimentos de computacionales. Ejemplos de modelos de computacionales comunes son modelos de el pronstico del tiempo, modelos del Earth Simulator, modelos de simulador de vuelo, modelos de plegamiento molecular de protenas, y modelos de red neuronal.
Lenguaje ensamblador
El cdigo mquina tena dos grandes inconvenientes para los programadores: las instrucciones eran difciles de recordar, ya que no guardaban relacin con la operacin que se est realizando. puede haber, y de hecho hay, diferencias entre las instrucciones de un procesador a otro. Todo esto ha llevado a "poner nombre" a las instrucciones de cdigo mquina de manera que a una secuencia concreta de bits que realiza una operacin se le pone un nombre sencillo que identifique la operacin. Esta traduccin a un lenguaje ms sencillo para las personas resulta en una mayor comodidad para el programador, adems el proceso de traduccin inverso de lenguaje ensamblador a cdigo mquina puede ser realizado por un sencillo programa.
ms alto nivel; esto significa que ocultan ciertos aspectos de manera que el programador no se ha de preocupar sobre si en la mquina que quiere que se ejecute el algoritmo el MC corresponde a la instruccin 101 o 010. Se produce, por tanto, una abstraccin de datos, muy deseable para poder utilizar el trabajo de otros para avanzar un paso ms en vez de tener que "reinventar la rueda", como se suele decir. Estos textos en los que se codifican los algoritmos son los cdigos fuente; siguen las reglas sintcticas de un determinado lenguaje de programacin. Existen numerosos lenguajes de programacin, y se utiliza uno u otro segn sus caractersticas se adecen ms o menos a la resolucin de nuestro problema.
Traductores e intrpretes
Tras la escritura del algoritmo, un compilador o un intrprete (otros programas) transformarn el texto en cdigo mquina que el procesador es capaz de ejecutar. Toda esta abstraccin permite resolver problemas alejados de sumar nmeros binarios, como pueden ser la consulta de esta misma enciclopedia o jugar a un videojuego en 3D.
Todo eso no es gran derroche de recursos para un ordenador medio actualmente, pero dura sus 10 o 15 segundos. En cambio, con un lenguaje interpretado, el programa intrprete analiza el fichero de cdigo y lo va ejecutando en tiempo real, sin compilarlo ni ensamblarlo. Otra de las ventajas de los lenguajes interpretados es que son multiplataforma: un programa en Perl, por ejemplo, no debe ser compilado dos veces (una para Unix y otra para Windows). Con que haya diferentes versiones del intrprete en cada uno de esos ordenadores, especficamente compilados para ellos, basta. Sus desventajas: Consume muchos recursos de memoria, sobre todo RAM. Se depende del intrprete: si no tienes instalado el intrprete que corresponda, no podrs ejecutar el programa. Ejemplos de lenguajes interpretados son PHP, Perl, Python, Tcl/Tk, BASIC, LISP (en algunas de sus versiones)...