Está en la página 1de 40

Profesor: Freidy Nuñez

Email: fnunez@itla.edu.do
Pregúntate si lo que estás
haciendo hoy te acerca al
lugar en el que quieres
estar mañana.
 Lenguajes de bajo nivel
 Lenguajes de nivel intermedio
 Lenguajes de alto nivel
 Errores de sintaxis
 Dato -correcto
 Dat -incorrecto
 Errores en tiempo de ejecución: que es?
 Errores de lógica: se espera un resultado y da
otro, pero funciona.
 Suma=a+b
 Suma=a*B
 Estos son errores frecuentes cuando
programación
 La informática:
 actualmente aplicada en todo
 No es vitalmente importante
 Aprender un lenguaje de programación
 Importante:
 entrenar y tener fruto
 Capacidad de análisis
 Metodología para la resolución
 Análisis
 Diseño
 Codificación
 Compilación y ejecución
 Depuración
 Documentación
 verificación
 Se requiere definir que debe hacer la solución
y que resultado debe general.
 Que entradas se requiere?(cantidad y tipo)
 Cual es la salida deseada?
 Que método produce la salida deseada?
 Fase de análisis: que hace el programa.
 Busca, almacena, ejecuta.
 Fase de diseño. Como lo hace?
 Ingresan datos, procesa, visualizan
 Es mala practica no contemplar una fase de
análisis
 Iniciar programando sin un análisis y diseño
lleva resultados no deseados

 Planificar, analizar y diseñar llevan a la


solución correcta y optima.
 El mantenimiento del código es factible y
sencillo
 Para implementar se debe pasar por análisis
y diseño.
 PASOS EN LA FASE DE IMPLEMENTACION
▪ Donde entra un lenguaje de programación.
 Codificación
 Compilación y ejecución
 Verificación
 Depuración
 Documentación
 Se codifica en base a un análisis y un diseño
▪ Tendrá fácilmente que re codificar el código por no
tener resultados deseados.
 Ejemplo: sumar dos números.
algoritmo
Análisis
Proceso sumar
Respuesta=0 Respuesta<-0 Codificación en un
A=1 b=2 Leer a lenguaje
Respuesta=a+b Leer b
Presentar(respuesta) Respuesta <-a+b;
Escribir respuesta;
Fin proceso
 Métodos para resolver el problema a través
de un conjunto de pasos:
 Precisos, definidos y finito.
 Codificar es
 : escribir en un lenguaje de programación de la
representación del algoritmo
 Como el diseño del algoritmo es
independiente del lenguaje de programación
 El código puede ser escrito con facilidad en un
lenguaje u otro
 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
 Podremos verificar línea a línea el código.
 Lo haremos con las facilidades que nos de el
programa.
Transcripción
Este es el proceso a través del cual “convertimos” un algoritmo, escrito en términos muy
coloquiales e informales, en un listado de instrucciones entendibles a un computador y que
se ajustan a las reglas sintácticas de determinado lenguaje de programación. Podríamos
decir que es la “traducción” de un algoritmo con la “ortografía” de un Lenguaje de
Programación.
Qué son las reglas sintácticas de un Lenguaje de Programación..? Son todas las restricciones
técnicas (y algunas veces caprichosas) sobre las cuales está construído el Lenguaje. Por
ejemplo y solo con el ánimo de ilustrar lo que acabo de decir. Si estamos utilizando el
Lenguaje de Programación C, la orden para leer un dato se da con la instrucción cin así como
está escrito y sin ningún tipo de modificación por mas mínima que ésta sea. Será un error,
entonces, escribir esta orden así Cin ó así cim. El Lenguaje C solo entiende la instrucción cin
tal como sus creadores la diseñaron. De tal forma que para escribir un algoritmo
computacional en términos entendibles a uncomputador lo único que necesitamos saber son
las reglas sintácticas de un Lenguaje de Programación cualquiera. El algoritmo escrito con
dichas reglas se llamará Programa.
 ¿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.
Traducción de un algoritmo a un lenguaje de programación
Lenguaje de programación =
Léxico + Sintaxis + Semántica
Aspectos a considerar en el diseño e implementación de los
lenguajes de programación (I)

• Léxico
• Sintaxis
• Semántica
• Gestión de memoria
• Manejo de excepciones
• Implementación
• Pragmática
Aspectos a considerar en el diseño e implementación de los
lenguajes de programación (II)
Léxico
Es el conjunto de categorías gramaticales que definen el vocabulario del lenguaje
de programación. Comúnmente, el léxico de un lenguaje de programación posee
las siguientes categorías gramaticales:
• Identifier (nombre de variables, nombre de constantes, nombre de funciones,
etc.)
• Literal (números enteros y decimales)
• Operator (+, -, *, /. etc.)
• Separator (; . , etc.)
• Keyword (while, read, write, if, for, case, int, real, etc.)
Aspectos a considerar en el diseño e implementación de los
lenguajes de programación (III)

Sintaxis
La sintaxis de un lenguaje de programación es la definición gramatical de lo que
constituye un programa en dicho lenguaje. La sintaxis se especifica en términos
de un conjunto de reglas que rigen la construcción de los programas. La
definición de la sintaxis de un lenguaje de programación debe ser clara, concisa y
formal. La sintaxis del lenguaje de programación se describe a partir de otros
lenguajes, llamados metalenguajes. Uno de los metalenguajes más difundidos es
el formalismo BNF (Backus-Naur Form), una gramática libre de contexto.
Aspectos a considerar en el diseño e implementación de los
lenguajes de programación (IV)
Semántica
Se refiere al significado de los programas. Es el conjunto de reglas que permiten
determinar el significado de cualquier construcción del lenguaje. La semántica
asocia un significado a cada posible construcción gramatical del lenguaje.

Gestión de memoria
La gestión de memoria se refiere al proceso de asignar valores a la memoria,
considerando tanto las características estáticas como dinámicas de dichos
valores. Los valores pueden ser asignados a una de tres categorías de memoria:
memoria estática, la pila en tiempo de ejecución y el montículo.
Aspectos a considerar en el diseño e implementación de los
lenguajes de programación (V)
Manejo de excepciones
Una excepción es una condición detectada por una operación la cual no se puede
resolver en el contexto de la operación. Dos procesos básicos se asocian al
manejo de excepciones: (1) lanzamiento de la excepción y (2) captura de la
excepción. El lanzamiento de una excepción es señalar que se ha producido una
excepción, mientras que la captura de la excepción consiste en proporcionar una
forma de manipular dicha excepción, transfiriéndose el control del programa al
manipulador de la excepción.
Aspectos a considerar en el diseño e implementación de los
lenguajes de programación (VI)

Implementación
Cómo se ejecutan los programas.

Pragmática
Se refiere a los aspectos prácticos del uso de los programas.
Lenguaje natural
Aplicación
Lenguaje de programación
Compilador/Intérprete

Contexto en el Máquina virtual


que se ubican los Sistema operativo

lenguajes de Lenguaje de
máquina
programación
Traductores de lenguaje

Intérpretes Compiladores

Un traductor de lenguaje es un programa que traduce a código de máquina un


programa fuente escrito en un lenguaje de alto nivel.
Intérpretes
Un intérprete es un traductor que recibe como entrada un programa fuente, lo
traduce y lo ejecuta. Un intérprete traduce y ejecuta una instrucción en código
fuente, a la vez. Los programas interpretados generalmente son más lentos en
ejecución que los programas compilados.

Traducción y
Programa fuente Intérprete ejecución línea a
línea
Compiladores
Un compilador traduce un programa fuente escrito en lenguaje de alto nivel al
lenguaje de máquina de la computadora. El programa traducido a lenguaje de
máquina es almacenado como código objeto.

Programa fuente Compilador Programa objeto


Fases de la compilación de un programa

Programa
Programa Programa ejecutable en
fuente Compilador objeto Linker
lenguaje de
máquina

Analizador Analizador Analizador Generador de Optimizador Generador de


léxico sintáctico semántico código de código código
intermedio objeto
Fases de construcción de un programa

Descripción y
análisis del
problema
Diseño del
algoritmo

Codificación del
programa

Ejecución del
programa

Validación del
programa
 Definición y análisis del problema
 Diseñó del algoritmo
 Codificación del programa
 Depuración y verificación

 documentación
 mantenimiento
 Entrada
 Salidas
 Algoritmo de solución
 Técnicas para obtener las salidas a partir de las
entradas.
Entradas
leer. Carlos
Programa (algoritmo de resolución)
María= Carlos
Salida
Escribir María
 Algunas personas van directamente a un
lenguaje de programación y no desarrollan un
algoritmo de resolución
En nuestro caso, y mas que nunca, podemos decir que para llegar a la solución de un
problema la clave de ello está en Tener muy claro cuál es el objetivo y No perderlo
nunca de Vista. Tal vez usted tendrá alguna inquietud en cuanto a la insistencia de este
tópico pero la realidad es que muchas veces creemos tener claro el objetivo y solo
cuando nos empeñamos 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 romántica, 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 lógico para llegar hasta él.
Qué es un Algoritmo?
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 después de otro y que sean pasos ordenados quiere decir que
deben llevar un orden casi-obligatorio (u obligatorio en la mayoría
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, cuándo podemos visualizar claramente el
algoritmo..? Cuando el objetivo está realmente claro. Siempre que
usted, en el desarrollo de la solución de un problema, vea que en
algún momento no sabe por donde coger, no sabe qué hacer o se
siente perdido, no busque mas simplemente quiere decir que
realmente usted no tenía tan claro el objetivo como había
 Algoritmos Informales: ejemplo
 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 números primos,
recordando que un número primo es aquel que solo puede
ser dividido exactamente entre la unidad y entre si mismo,
que si bien podrían ser calculados utilizando un papel y un
lápiz, la utilización de un computador en unión con el
algoritmo adecuado nos va a dar un resultado mucho mas
rápido 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
García Márquez.
Objetivo: Adquirir el libro El Coronel no tiene quien le escriba de Gabriel García
Márquez. Mucha atención al objetivo. Solamente es adquirirlo en ningún momento el
objetivo es leerlo o resumirlo ni nada, solamente adquirirlo.

Algoritmo : Salimos del lugar en donde estemos y nos dirigimos hacia una librería. 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 librería en donde repetimos el
proceso.
Algoritmo Adquisicion_Libro
Inicio
1. Saber cuál es el libro que se quiere adquirir
2. Desplazarnos hacia una librería
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
Fin

También podría gustarte