You are on page 1of 39

Profesor: Freidy Nuez

Email: fnunez@itla.edu.do

Introduccion
Programacion

Lenguajes tipos
Lenguajes

de bajo nivel
Lenguajes de nivel intermedio
Lenguajes de alto nivel

Errores de programacin
Errores

de sintaxis

Dato
Dat

Errores
Errores

en tiempo de ejecucin
de lgica

Suma=a+b
Suma=a*B

Errores

frecuentes cuando
programacion

ambito
La

informtica:

actualmente aplicada

No

es vitalmente importante

Aprender un lenguaje de programacin

Importante:
entrenar y tener fruto
Capacidad de anlisis
Metodologa para la resolucin

Fases de proceso de
programacion
Anlisis
Diseo
Codificacin
Compilacin
Depuracin

y ejecucin

Documentacin
verificacin

Anlisis del problema


Se

requiere definir que debe hacer la


solucin y que resultado debe
general.
Que entradas se requiere?(cantidad y

tipo)
Cual es la salida deseada?
Que mtodo produce la salida deseada?

Fase de diseno
Fase

de anlisis: que hace el


programa.
Busca, almacena, ejecuta.

Fase

de diseo. Como lo hace?

Ingresan datos, procesa, visualizan

Anlisis del problema(mala


practica)
Es

mala practica no contemplar una


fase de anlisis
Iniciar programando sin un anlisis y
diseo lleva resultados no deseados
Planificar,

analizar y disear llevan a


la solucin correcta y optima.
El mantenimiento del cdigo es
factible y sencillo

Implementacin del
algoritmo
Para

implementar se debe pasar por


anlisis y diseo.
PASOS EN LA FASE DE IMPLEMENTACION
Donde entra un lenguaje de programacin.

Codificacin
Compilacin y ejecucin
Verificacin
Depuracin
Documentacin

codificacion
Se

codifica en base a un anlisis y un


diseo
Tendr fcilmente que re codificar el cdigo
por no tener resultados deseados.

Ejemplo:
Anlisis

algoritmo

sumar dos nmeros.

Respuesta=0
A=1 b=2
Respuesta=a+b
Presentar(respue
sta)

Proceso sumar
Respuesta<-0
Leer a
Leer b
Respuesta <a+b;
Escribir
respuesta;
Fin proceso

Codificacin en
un lenguaje

Codificacin
Mtodos

para resolver el problema a travs


de un conjunto de pasos:
Precisos, definidos y finito.

Codificar

es

: escribir en un lenguaje de programacin de la

representacin del algoritmo


Como

el diseo del algoritmo es


independiente del lenguaje de
programacin
El cdigo puede ser escrito con facilidad en un

lenguaje u otro

Compilacin y ejecucion
El

algoritmo convertido a programa


fuente debe ser traducido a
Lenguaje de maquina(esto lo realiza un

compilador y el S.O).
Si

el compilador genera errores el


usuario los corrige y vuelve a
compilar

Verificacin , depuracin y
documentacin
Podremos

verificar lnea a lnea el

cdigo.
Lo haremos con las facilidades que
nos de el programa.

Transcripcin
Este es el proceso a travs del cual convertimos un algoritmo, escrito en
trminos muy
coloquiales e informales, en un listado de instrucciones entendibles a un
computador y que se ajustan a las reglas sintcticas de determinado
lenguaje de programacin. Podramos decir que es la traduccin de un
algoritmo con la ortografa de un Lenguaje de Programacin.
Qu son las reglas sintcticas de un Lenguaje de Programacin..? Son todas
las restricciones
tcnicas (y algunas veces caprichosas) sobre las cuales est construdo el
Lenguaje. Por ejemplo y solo con el nimo de ilustrar lo que acabo de decir.
Si estamos utilizando el Lenguaje de Programacin C, la orden para leer un
dato se da con la instruccin cin as como est escrito y sin ningn tipo de
modificacin por mas mnima que sta sea. Ser un error, entonces,
escribir esta orden as Cin as cim. El Lenguaje C solo entiende la
instruccin cin tal como sus creadores la disearon. De tal forma que para
escribir un algoritmo computacional en trminos entendibles a
uncomputador lo nico que necesitamos saber son las reglas sintcticas de

Qu

es un programa?

Qu es un programa?
Un programa de ordenador es una secuencia de instrucciones
que el ordenador debe seguir para realizar una tarea.
Traduccin de un algoritmo a un lenguaje de
programacin

Lenguajes de programacin:
niveles, sintaxis y semntica (IV)

Lenguaje de programacin =
Lxico + Sintaxis + Semntica

Lenguajes de programacin:
niveles, sintaxis y semntica (V)
Aspectos a considerar en el diseo e implementacin
de los lenguajes de programacin (I)

Lxico
Sintaxis
Semntica
Gestin de memoria
Manejo de excepciones
Implementacin
Pragmtica

Lenguajes de programacin:
niveles, sintaxis y semntica (VI)
Aspectos a considerar en el diseo e implementacin
de los lenguajes de programacin (II)
Lxico
Es el conjunto de categoras gramaticales que definen el
vocabulario del lenguaje de programacin. Comnmente, el
lxico de un lenguaje de programacin posee las siguientes
categoras gramaticales:
Identifier (nombre de variables, nombre de constantes, nombre
de funciones, etc.)
Literal (nmeros enteros y decimales)
Operator (+, -, *, /. etc.)
Separator (; . , etc.)
Keyword (while, read, write, if, for, case, int, real, etc.)

Lenguajes de programacin:
niveles, sintaxis y semntica (VII)
Aspectos a considerar en el diseo e implementacin
de los lenguajes de programacin (III)
Sintaxis
La sintaxis de un lenguaje de programacin es la definicin
gramatical de lo que constituye un programa en dicho lenguaje.
La sintaxis se especifica en trminos de un conjunto de reglas
que rigen la construccin de los programas. La definicin de la
sintaxis de un lenguaje de programacin debe ser clara, concisa y
formal. La sintaxis del lenguaje de programacin se describe a
partir de otros lenguajes, llamados metalenguajes. Uno de los
metalenguajes ms difundidos es el formalismo BNF (BackusNaur Form), una gramtica libre de contexto.

Lenguajes de programacin:
niveles, sintaxis y semntica (VIII)
Aspectos a considerar en el diseo e implementacin
de los lenguajes de programacin (IV)
Semntica
Se refiere al significado de los programas. Es el conjunto de
reglas que permiten determinar el significado de cualquier
construccin del lenguaje. La semntica asocia un significado a
cada posible construccin gramatical del lenguaje.
Gestin de memoria
La gestin de memoria se refiere al proceso de asignar valores a
la memoria, considerando tanto las caractersticas estticas como
dinmicas de dichos valores. Los valores pueden ser asignados a
una de tres categoras de memoria: memoria esttica, la pila en
tiempo de ejecucin y el montculo.

Lenguajes de programacin:
niveles, sintaxis y semntica (IX)
Aspectos a considerar en el diseo e implementacin
de los lenguajes de programacin (V)
Manejo de excepciones
Una excepcin es una condicin detectada por una operacin la
cual no se puede resolver en el contexto de la operacin. Dos
procesos bsicos se asocian al manejo de excepciones: (1)
lanzamiento de la excepcin y (2) captura de la excepcin. El
lanzamiento de una excepcin es sealar que se ha producido
una excepcin, mientras que la captura de la excepcin consiste
en proporcionar una forma de manipular dicha excepcin,
transfirindose el control del programa al manipulador de la
excepcin.

Lenguajes de programacin:
niveles, sintaxis y semntica (X)
Aspectos a considerar en el diseo e implementacin
de los lenguajes de programacin (VI)
Implementacin
Cmo se ejecutan los programas.

Pragmtica
Se refiere a los aspectos prcticos del uso de los programas.

Lenguajes de programacin:
niveles, sintaxis y semntica (XI)
Lenguaje natural
Aplicacin
Lenguaje de programacin
Compilador/Intrprete

Contexto en el
que se ubican
los lenguajes
de
programacin

Mquina virtual
Sistema operativo
Lenguaje
de
mquina

Lenguajes de programacin:
traductores de lenguajes (I)

Traductores de
lenguaje

Intrpretes

Compiladores

Un traductor de lenguaje es un programa que traduce a cdigo


de mquina un programa fuente escrito en un lenguaje de alto
nivel.

Lenguajes de programacin:
traductores de lenguajes (II)
Intrpretes
Un intrprete es un traductor que recibe como entrada un
programa fuente, lo traduce y lo ejecuta. Un intrprete traduce y
ejecuta una instruccin en cdigo fuente, a la vez. Los programas
interpretados generalmente son ms lentos en ejecucin que los
programas compilados.

Programa
fuente

Intrprete

Traduccin y
ejecucin
lnea a lnea

Lenguajes de programacin:
traductores de lenguajes (III)
Compiladores
Un compilador traduce un programa fuente escrito en lenguaje de
alto nivel al lenguaje de mquina de la computadora. El programa
traducido a lenguaje de mquina es almacenado como cdigo
objeto.

Programa
fuente

Compilador

Programa
objeto

Lenguajes de programacin:
traductores de lenguajes (IV)
Fases de la compilacin de un
programa
Programa
fuente

Analizado
r lxico

Compilado
r

Analizado
r
sintctico

Programa
objeto

Analizado
r
semntico

Generado
r de
cdigo
intermedi
o

Linker

Optimizad
or de
cdigo

Programa
ejecutable
en
lenguaje
de
mquina

Generado
r de
cdigo
objeto

Estrategias de construccin de
programas (I)
Fases de construccin de un programa
Descripci
n y anlisis
del
problema
Diseo del
algoritmo
Codificacin
del
programa
Ejecucin
del
programa
Validacin
del
programa

Fases del proceso


optimo
Definicin

y anlisis del problema


Dise del algoritmo
Codificacin del programa
Depuracin y verificacin

documentacin
mantenimiento

Partes de un programa
Entrada
Salidas
Algoritmo

de solucin

Tcnicas para obtener las salidas a partir

de las entradas.
Entradas
leer. Carlos
Programa (algoritmo de resolucin)
Mara= Carlos
Salida
Escribir Mara

PROBLEMAS
COMPLICACIONES
Algunas

personas van directamente


a un lenguaje de programacin y no
desarrollan un algoritmo de
resolucin

objetivo

En nuestro caso, y mas que nunca, podemos decir que para llegar a la
solucin de un problema la clave de ello est en Tener muy claro cul
es el objetivo y No perderlo nunca de Vista. Tal vez usted tendr
alguna inquietud en cuanto a la insistencia de este tpico pero la
realidad es que muchas veces creemos tener claro el objetivo y solo
cuando nos empeamos en lograrlo vemos que no era as.
Tener claro el objetivo nos permite algo adicional. Aqu voy a utilizar
una frase que, aunque un poco romntica, nos va a ilustrar a que me
refiero: El objetivo es el faro que solo cuando est bien claro nos
ilumina el camino para lograrlo. Cuando el objetivo est
suficientemente claro podemos vislumbrar un camino lgico para llegar
hasta l.

Qu es un
Algoritmo?

Algoritmos
Qu es un Algoritmo...? Es un conjunto de pasos
secuenciales y ordenados que permiten lograr un
objetivo.
Que sean pasos secuenciales significa que deben
ser ejecutados uno despus de otro y que sean pasos
ordenados quiere decir que deben llevar un orden
casi-obligatorio (u obligatorio en la mayora de los
casos). Como puede notar el algoritmo permite lograr
un objetivo. O sea que ste es el camino que
necesitamos para lograrlo.
De nuevo, cundo podemos visualizar claramente
el algoritmo..? Cuando el objetivo est realmente
claro. Siempre que usted, en el desarrollo de la
solucin de un problema, vea que en algn momento

Tipos:
Algoritmos

Informales
Algoritmos Computacionales
Se consideran como tales todos aquellos algoritmos que

deben ser preferiblemente implementados en un


computador para aprovechar su velocidad de
procesamiento. Un ejemplo de estos puede ser el
algoritmo que genere los primeros 100 nmeros primos,
recordando que un nmero primo es aquel que solo puede
ser dividido exactamente entre la unidad y entre si mismo,
que si bien podran ser calculados utilizando un papel y un
lpiz, la utilizacin de un computador en unin con el
algoritmo adecuado nos va a dar un resultado mucho mas
rpido y absolutamente confiable (de hecho depende de
que el algoritmo igualmente sea muy confiable).

Veamos

entonces ejemplo:
Desarrollar un algoritmo que nos
permita adquirir el libro El Coronel
no tiene quien le escriba de
Gabriel Garca Mrquez.

Objetivo: Adquirir el libro El Coronel no tiene quien le escriba de


Gabriel Garca Mrquez. Mucha atencin al objetivo. Solamente es
adquirirlo en ningn momento el objetivo es leerlo o resumirlo ni nada,
solamente adquirirlo.
Algoritmo : Salimos del lugar en donde estemos y nos dirigimos hacia
una librera. En caso de quena estemos en una pues sencillamente
solicitamos si tienen el libro, si lo tienen lo adquirimos y si no lo tienen
vamos a otra Algoritmo
librera en Adquisicion_Libro
donde repetimos el proceso.
Inicio
1. Saber cul es el libro que se quiere adquirir
2. Desplazarnos hacia una librera
3. Preguntar si tienen el libro que
necesitamos
4. Si lo tienen
adquirirlo y Parar all (dentro de este
algoritmo)
Si no lo tienen
ir al paso 2

You might also like