Está en la página 1de 25

Algoritmos y Leguajes de

Programacin
Universidad Nacional de Ingeniera
FIEE
Autor: Mauricio Galvez Legua
(mgalvez@uni.edu.pe)

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
interpretes y compiladores.

Objetivos

Definir el concepto de programacin.


Definir los conceptos de programa y
algoritmo.
Enumerar y diferenciar los lenguajes de
programacin.
Definir la diferencia entre interpretes y
compiladores.

Porque es importante ?

Hoy en da la mayora de equipos electrnicos


estn
construidos
utilizando
un
microprocesador (uP) o microcontrolador
(uC), esto quiere decir que dichos equipos
son programables, esto significa que
podemos cambiar su comportamiento
variando el programa almacenado en dicho
equipo, esto le da flexibilidad de uso a los
equipos.

Que es Programacin ?

La programacin es el proceso de
disear, codificar, depurar y
mantener el cdigo fuente de
programas computacionales.
El cdigo fuente es escrito en un
lenguaje de programacin.
El propsito de la programacin
es crear programas que exhiban
un comportamiento deseado.

Que es Programacin ?

Un programa es el arte y la
tcnica de:

Seleccionar la parte que nos interesa


de la realidad.
Sintetizarla en unos pocos datos.
Reproducir su comportamiento.
Y analizar las consecuencias.

Es un soporte fundamental a la
ingeniera.
Las matemticas son la base para
la programacin.
6

Que es Programacin ?

La programacin nos brinda una


forma creativa para implementar
soluciones basadas en nuestro
ingenio y destreza.
La
programacin
apoya
a
fomentar la investigacin y el
autoaprendizaje.

Definiciones

Informtica

La Informtica es el tratamiento automtico de


informacin.

Computador

Es una maquina programable.


Ejecuta programas previamente almacenados.

Definicin : Algoritmos

Forma de escribir la solucin de


un problema.
Serie ordenada y finita de
instrucciones elementales que
trabaja
sobre
los
datos
modificndolos.

A partir de los valores iniciales.


Calcula los valores finales.

Definicin : Algoritmos

Es
un
conjunto
de
instrucciones o reglas bien
definidas,
ordenadas
y
finitas que permite realizar
una
actividad
mediante
pasos sucesivos que no
generen dudas a quien deba
realizar dicha actividad.

10

Fundamentos de Programacin

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

Lenguaje de Bajo nivel (ensamblador)

Lenguaje de Alto nivel


11

Fundamentos de Programacin

El primer gran avance se dio con


el Lenguaje Ensamblador, y con
l, el nacimiento de las primeras
herramientas automticas para
generar el cdigo mquina.
Exige un gran conocimiento del
procesador
(juego
de
instrucciones) y del hardware
que se esta programando.

12

Fundamentos de Programacin
PROG1.CPP
void main( )
{
printf(Hola);
}

PROG1.CPP

Lenguaje de Alto Nivel


(Programa Fuente)

void main( )
{
printf(Hola);
}

Compilador
PROG1.EXE

PROG1.EXE

55 1A 34 13 FB 45
33 25 C5 A3 00 F1
34 78 B1 C2 19 00
28 13 45 67 CC FF

55 1A 34 13 FB 45
33 25 C5 A3 00 F1
34 78 B1 C2 19 00
28 13 45 67 CC FF

Programa Ejecutable

Lenguaje de Mquina
34: Suma
75: Resta

75: Suma
34: Resta

13

Fundamentos de Programacin

Con el desarrollo en los 50s y 60s de


algoritmos de ms elevado nivel, y el
aumento de poder del hardware, los
cientficos
comenzaron
a
utilizar
las
computadoras; ellos conocan mucho de
Fsica, Qumica y otras ramas similares, pero
no de Computacin, y les era sumamente
complicado
trabajar
con
Lenguaje
Ensamblador en vez de frmulas.

14

Fundamentos de Programacin

As, naci el concepto de Lenguaje de Alto


Nivel, con el primer compilador de FORTRAN
(FORmula TRANslation), que, como su
nombre indica, inici como un "simple"
esfuerzo de traducir un lenguaje de frmulas,
al lenguaje ensamblador y por consiguiente al
lenguaje de mquina. A partir de FORTRAN,
se han desarrollado innumerables lenguajes,
que siguen el mismo concepto: buscar la
mayor abstraccin posible, y facilitar la vida al
programador.
15

Fundamentos de Programacin

Hay que notar la existencia de lenguajes que


combinan caractersticas de los de alto nivel y
los de bajo nivel (es decir, Ensamblador).
Un ejemplo es C, el cual contiene estructuras
de programacin de alto nivel pero su sintaxis
es relativamente completa.
Por ello, muchas personas consideramos a
lenguajes como C (que fue diseado para
hacer sistemas operativos), lenguajes de nivel
medio.
16

Lenguajes de Programacin Generaciones

Primera generacin: lenguaje maquina.


Segunda generacin: se crearon los primeros
lenguajes ensambladores.
Tercera generacin: se crean los primeros
lenguajes de alto nivel. Ej. C, Frontran,
Pascal, Cobol, Java, etc.

17

Lenguajes de Programacin Generaciones

Cuarta generacin: Son los lenguajes capaces de


generar cdigo por si solos, son los llamados RAD
(Rapid Application Development), con lo cuales se
pueden realizar aplicaciones sin ser un experto en el
lenguaje. Aqu tambin se encuentran los lenguajes
orientados a objetos, haciendo posible la reutilizacin
d partes del cdigo para otros programas. Ejemplo:
IBM Rational Application Developer
Quinta generacin: aqu se encuentran los lenguajes
orientados a la inteligencia artificial. Ejemplo: Prolog,
LISP, etc.
18

Interpretes y Compiladores

Se puede distinguir dos tipos de lenguajes,


segn se realice su ejecucin:

Interpretado, en donde cada instruccin que


contiene el programa se va convirtiendo a cdigo
mquina antes de ejecutarla, lo que hace que
sean ms lentos.
Compilado, en donde se convierte todo el
programa en bloque a cdigo mquina y despus
se ejecuta.

19

Interpretes y Compiladores

20

Compiladores

La mayora de los lenguajes actuales son


compiladores, y suelen incluir:

Un editor para escribir o revisar los programas.:


IDE (Integrated Development Environment).
Ejemplo: Eclipse, NetBeans, etc
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.
21

Conceptos: Programa

Es un archivo que contiene un conjunto de


instrucciones (rdenes) que el procesador
entiende y ejecuta para realizar una
determinada tarea.
Los programas son escritos utilizando
Lenguajes de Programacin como: Java, C,
Visual Basic, etc.
Una vez escritos tienen que ser ejecutados.

22

Crear un programa

Disear la solucin
Escribir un programa
Compilar el programa
Ejecutar el programa
Probar el programa
Mantener el programa

23

Caractersticas de los programas

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.

24

Fin

25