0% encontró este documento útil (0 votos)
77 vistas

Fundamentos de Programación - Algoritmos y Programas - Wikilibros

Este documento define algoritmos y programas, y describe los diferentes tipos de lenguajes de programación. Explica que un algoritmo es un conjunto de pasos ordenados para resolver un problema, y que un programa es un algoritmo escrito para ser ejecutado por una computadora. También describe los lenguajes de máquina, ensamblador y de alto nivel, así como los traductores e intérpretes que convierten los programas a un formato ejecutable por la computadora. Finalmente, contrasta los lenguajes interpretados frente a los compilados.

Cargado por

Jerson O. Rivera
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
77 vistas

Fundamentos de Programación - Algoritmos y Programas - Wikilibros

Este documento define algoritmos y programas, y describe los diferentes tipos de lenguajes de programación. Explica que un algoritmo es un conjunto de pasos ordenados para resolver un problema, y que un programa es un algoritmo escrito para ser ejecutado por una computadora. También describe los lenguajes de máquina, ensamblador y de alto nivel, así como los traductores e intérpretes que convierten los programas a un formato ejecutable por la computadora. Finalmente, contrasta los lenguajes interpretados frente a los compilados.

Cargado por

Jerson O. Rivera
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

15/08/13

Fundamentos de programacin/Algoritmos y programas - Wikilibros

Fundamentos de programacin Algoritmos y programas


De Wikilibros, la coleccin de libros de texto de contenido libre. Fundamentos de programacin/Algoritmos y programas

Contenido
1 Qu es un algoritmo? 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. El algoritmo es un conjunto de pasos, instrucciones o acciones que se deben seguir para resolver un problema. Existen una gran cantidad de algoritmos, hay que coger el ms efectivo. Hay dos tipos de algoritmos que son los cualitativos y cuantitativos, cualitativos son todos aquellos pasos o instrucciones descritos por medio de palabras que sirven para llegar a la obtencion de una respuesta o solucion de un problema, y cuantitativos son todos aquellos pasos o instrucciones que involucran calculos numricos para llegar a un resultado sastifactorio.
C a r a c t e r s t i c a s :

Tiene que ser preciso. Tiene que estar bien definido. Tiene que ser finito. La programacin es adaptar el algoritmo al ordenador. El algoritmo es independiente segn donde lo implemente.

es.wikibooks.org/w/index.php?title=Fundamentos_de_programacin/Algoritmos_y_programas&printable=yes

1/4

15/08/13

Fundamentos de programacin/Algoritmos y programas - Wikilibros

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. Se considera a los algoritmos al conjunto de pasos ordenados, que permiten resolver un problema bajo una secuencia lgica, es decir, que tenga inicio y fin (sentido concreto).

Programas: Algoritmos para ser ejecutados por un ordenador


Un ordenador o computadora est, desde que se enciende hasta que se apaga totalmente, ejecutando un algoritmo. Por lo general, estos algoritmos, escritos para que los entienda una mquina, terminan siendo vagos y confusos para la mayora de quienes no han estudiado programacin. Una mquina 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 el registro eax el nmero 0x23afb31), aunque nosotros no. Un ordenador es solo un circuito electrnico, no funciona a base de magia ni nada por el estilo. Debido a lo dificil que es escribir en lenguaje mquina, e incluso en ensamblador, se crearon diferentes lenguajes de programacin, ms o menos parecidos al ingls actual y a cmo se redacta un algoritmo. Estos lenguajes proveen de cosas tan complejas para una mquina como los bucles for. Los compiladores se encargan de traducir esos ficheros al lenguaje ensamblador que corresponda, el ensamblador de traducirlos a lenguaje mquina y el enlazador de juntar todo ese cdigo mquina en un solo archivo, el programa. Y el microprocesador, se encarga de ir encendiendo o apagando transistores segn lo que le diga el cdigo mquina. Es facil entender el lenguaje de alto nivel en comparacion al lenguaje maquina pero de la evolucion surgieron.

Qu instrucciones ejecuta un ordenador?


Lenguaje de mquina
es.wikibooks.org/w/index.php?title=Fundamentos_de_programacin/Algoritmos_y_programas&printable=yes 2/4

15/08/13

Fundamentos de programacin/Algoritmos y programas - Wikilibros

Cada tipo de microprocesador contiene un conjunto de instrucciones que realizan ciertas operaciones sobre una o ms palabras de bits; las instrucciones van tambin codificadas en bits. No queremos hacer aqu una discusin sobre arquitectura de ordenadores, por lo que con esto debe valer por ahora. Se entiende que escribir slo con dos teclas, el 0 y el 1, es incmodo. Histricamente, a la hora de disear un algoritmo para que el ordenador ejecutara, se escriba mediante unas etiquetas memotcnicas; ste fue el origen del lenguaje ensamblador. Por ejemplo quizs en una cierta arquitectura la instruccin de borrado de memoria (Memory Clear, en ingls) corresponda al cdigo 010. Pronto surgieron programas que lean, siguiendo el ejemplo, MC, y lo sustituan por 010.

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.

Programacin para seres humanos


Lenguajes de alto nivel
Sobre este lenguaje ensamblador inicial se fueron construyendo otros lenguajes de programacin de 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.

Lenguajes interpretados vs. lenguajes compilados


Los lenguajes interpretados son como respuesta a la dificultad de manejo de los compilados. Un lenguaje compilado es slo apto para un sistema operativo o formato de ejecutable (en GNU/Linux y Unix System V es ELF, en Windows o incluso en BSD es muy diferente), y es tedioso de manejar: para comprobar bugs o
es.wikibooks.org/w/index.php?title=Fundamentos_de_programacin/Algoritmos_y_programas&printable=yes 3/4

15/08/13

Fundamentos de programacin/Algoritmos y programas - Wikilibros

errores el computador debe: Compilar cada uno de los ficheros de cdigo. Ensamblarlos en ficheros objeto. Enlazar los ficheros objeto. Volverlos a ensamblar. 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)... Obtenido de http://es.wikibooks.org/w/index.php? title=Fundamentos_de_programacin/Algoritmos_y_programas&oldid=209064 Categora: Fundamentos de programacin Esta pgina fue modificada por ltima vez el 6 ago 2013, a las 14:19. El texto est disponible bajo la Licencia Creative Commons Atribucin/Compartir-Igual 3.0; pueden aplicarse trminos adicionales. Vase Trminos de uso para ms detalles.

es.wikibooks.org/w/index.php?title=Fundamentos_de_programacin/Algoritmos_y_programas&printable=yes

4/4

También podría gustarte