Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Virtu@l
Algoritmos y
Herramientas
de
Programacin
Tecsup
NDICE
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Introduccin ....................................................................................... 3
Objetivos ............................................................................................. 3
Historia de la programacin ............................................................ 3
Qu es programacin?..................................................................... 3
Qu es un Algoritmos?.................................................................... 3
Fundamentos de la programacin .................................................. 4
El valor del lenguaje .......................................................................... 7
Errores de los programas.................................................................. 7
Pasos para crear un programa ......................................................... 7
Caractersticas de los programas ..................................................... 7
Importancia relativa .......................................................................... 8
Representacin de la informacin ................................................... 8
Datos.................................................................................................... 8
Clasificacin de los lenguajes de programacin............................ 8
14.1. Lenguajes imperativos ......................................................... 8
14.2. Lenguajes declarativos....................................................... 15
Lenguajes de programacin ........................................................... 17
Interpretes y compiladores............................................................. 19
Compiladores ................................................................................... 20
Estructurado VS Objetos................................................................. 20
Glosario ............................................................................................. 21
Referencias Bibliogrficas............................................................... 21
Pgina 2
Tecsup
1. Introduccin
Esta unidad nos permite conocer los elementos fundamentales de
los lenguajes de programacin, la importancia de los algoritmos,
nos da un alcance de los diferentes lenguajes de programacin.
Tambin revisamos la diferencia entre los intrpretes y
compiladores.
2. Objetivos
3. Historia de la programacin
Al desarrollarse las primeras computadoras electrnicas, se vio la
necesidad de programarlas, es decir, de almacenar en memoria la
informacin sobre la tarea que iban a ejecutar. Las primeras se
usaban como calculadoras simples; se les indicaban los pasos de
clculo, uno por uno.
John Von Neumann desarroll el modelo que lleva su nombre,
para describir este concepto de "programa almacenado". En este
modelo, se tiene una abstraccin de la memoria como un conjunto
de celdas, que almacenan simplemente nmeros. Estos nmeros
pueden representar dos cosas: los datos, sobre los que va a
trabajar el programa; o bien, el programa en s.
Un programa es el arte
de:
- Seleccionar la parte que
nos interesa de la realidad.
- Sintetizarla en unos
pocos datos.
- Reproducir su
comportamiento.
Y analizar las
consecuencias.
4. Qu es programacin?
5. Qu es un Algoritmos?
Pgina 3
Tecsup
Actividad:
Qu es un programa?
Qu es un algoritmo?
6. Fundamentos de la programacin
Cmo es que describimos un programa como nmeros? Se tena
el problema de representar las acciones que iba a realizar la
computadora, y que la memoria, al estar compuesta por switches
correspondientes al concepto de bit, solamente nos permita
almacenar nmeros binarios.
La solucin que se tom fue la siguiente: a cada accin que sea
capaz de realizar nuestra computadora, asociarle un nmero, que
ser su cdigo de operacin (opcode). Por ejemplo, una
calculadora programable simple podra asignar los opcodes:
1 = SUMA
2 = RESTA
3 = MULTIPLICA
4 = DIVIDE
Podemos ver que con esta representacin, es simple expresar las
operaciones de las que es capaz el hardware (en este caso, nuestra
calculadora imaginaria), en la memoria.
La descripcin y uso de los opcodes es lo que llamamos lenguaje
de mquina. Es decir, la lista de cdigos que la mquina va a
interpretar como instrucciones, describe las capacidades de
programacin que tenemos de ella; es el lenguaje ms primitivo,
depende directamente del hardware, y requiere del programador
que conozca el funcionamiento de la mquina al ms bajo nivel.
Un Lenguaje de Programacin es aqul que es utilizado para
escribir programas de computadoras que puedan ser entendidos
por ellas.
Estos lenguajes se clasifican en tres grandes categoras:
Lenguaje Mquina
Pgina 4
Tecsup
Pgina 5
Tecsup
Necesitamos un lenguaje
Simple.
Conciso.
Preciso.
Abstracto.
Capaz.
Pgina 6
Tecsup
Disear la solucin
Editar un programa
Compilar el programa
Ejecutar el programa
Probar el programa
Mantener el programa
Correctos
Quin quiere un programa incorrecto?
Existe la perfeccin?
Ingeniera es el arte de lo posible.
Eficientes
Uso eficaz de recursos (memoria, disco ...)
Ingeniera es el arte de lo rentable.
Fcilmente modificables
Los clientes cambian.
Los problemas evolucionan.
La comprensin del problema y la solucin mejoran.
Ingeniera es el arte de lo adaptable.
Pgina 7
Tecsup
Aproximacin a la realidad
Nmeros enteros
Se representan en binario.
4, 8, 16, 23, 64 bits => rango limitado!
Reales -> conjunto finito
<mantisa, exponente> con nmero finito de cifras.
Hay un mnimo, un mximo y un granulado.
Caracteres
a-z, A-Z, 0-9, ?<=>,;... : nmero limitado.
13. Datos
Estructuras algebraicas
Conjunto de valores.
Propiedades y operaciones.
Las hay sencillas y compuestas.
Las estructuras de datos reflejan las estructuras de la realidad
Los datos concretos cuantifican la realidad
Lenguajes imperativos
Estos lenguajes se basan en comandos u rdenes que se les
da al computador para que hagan algo, con el fin de
organizar o cambiar valores en ciertas partes de la
memoria.
La ejecucin de estos comandos se realiza, en la mayor
parte de ellos, secuencialmente; es decir, hasta que un
comando no ha sido ejecutado no se lee el siguiente.
Pgina 8
Tecsup
14.1.2. Generales
Podramos decir que estos lenguajes son los que
no son especficos, englobando a un gran nmero
de lenguajes que pueden ser utilizados con
diferentes fines. Se pueden dividir en alto y bajo
nivel, segn la complejidad de su cdigo y del
nivel de abstraccin.
Lenguajes de Bajo Nivel
Son los lenguajes ms bsicos donde no existe casi
nivel de abstraccin, en los que cada instruccin
de mquina corresponde con una instruccin que
Pgina 9
Tecsup
Pgina 10
Tecsup
Pgina 11
Tecsup
Pgina 12
Tecsup
Orientados a objetos
Un objeto se puede definir como un grupo de
procedimientos que comparten un estado. Se
define al conjunto de datos como estado, y
mtodos como el conjunto de procedimientos
que pueden alterar ese estado. Un programa
orientado a objeto es un mtodo de
implementacin en el que los programas estn
organizados como colecciones de objetos, donde
cada uno es una instancia de alguna clase, y
donde todas las clases son miembros de una
jerarqua de clases conectadas por relaciones de
herencia.
Son aquellos en los que el lenguaje obliga a seguir
una determinada metodologa.
Son lenguajes recientes y como ejemplos de ellos
tendramos:
Pgina 13
Tecsup
Proceso paralelo
Pgina 14
Tecsup
Lenguajes declarativos
A diferencia de los lenguajes imperativos, los lenguajes
declarativos facilitan la escritura de relaciones y funciones
y en ellos no se hacen nunca asignaciones a variables.
Estn considerados como de ms alto nivel, ya que
un programador declarativo trabaja con conceptos ms
que con localizaciones dentro de la propia mquina, es
decir, est basado en el pensamiento humano y las
matemticas; y ms alejado del modelo de computador.
Si bien hay que ser consciente de que existen aplicaciones
ms idneas para el uso de otros estilos de programacin,
el paradigma declarativo ha demostrado su eficiencia en
campos como la inteligencia artificial, las bases de datos
relacionales, los sistemas expertos, los algoritmos
numricos, el desarrollo de compiladores y programas de
bsqueda y ordenamiento, as como sistemas para la
encriptacin de informacin.
Los lenguajes declarativos estn orientados a buscar la
solucin del problema, sin preocuparse por la forma de
llegar a ello; es decir, el programador debe concentrarse en
la lgica del algoritmo, ms que en el control de la
secuencia. Los programas estn formados por un conjunto
de definiciones o ecuaciones, las cuales describen lo que
debe ser calculado, no en s la forma de hacerlo. Las
variables slo pueden tener asignado un solo valor a lo
largo de la ejecucin del programa, lo cual implica que no
puede existir asignacin destructiva. Debido a esto, cobra
especial importancia el uso del anidamiento y la
recursividad.
14.2.1. Programacin funcional
Los lenguajes funcionales son modelos basados en
la nocin de las funciones matemticas, las cuales
pueden considerarse como un mecanismo para
aplicar ciertas operaciones sobre algunos valores
(argumentos), y con esto obtener un resultado
(valor de la funcin para dichos argumentos). En
los lenguajes funcionales puros no se permiten
asignaciones a variables globales ni efectos
laterales: slo operan sobre funciones.
Pgina 15
Tecsup
Pgina 16
Tecsup
Pgina 17
Tecsup
Pgina 18
Tecsup
Pgina 19
Tecsup
17. Compiladores
La mayora de los lenguajes actuales son compiladores, y suelen
incluir:
Un editor para escribir o revisar los programas.
El compilador propiamente dicho, que los convierte a cdigo
mquina.
Otros mdulos auxiliares, como enlazadores (linkers) para
unir distintos subprogramas, y depuradores (debuggers) para
ayudar a descubrir errores.
18. Estructurado VS Objetos
Pgina 20
Tecsup
19. Glosario
Informtica
http://www.algoritmia.net
http://docs.rinet.ru/KofeynyyPrimer/
Pgina 21