Conceptos Generales y algoritmos

Compiladores e intérpretes.

Programa

Lenguaje

algoritmo

características de los algoritmos

Definido

Preciso

Finito

Se debe obtener el mismo resultado al seguir un algoritmo dos o más veces, con los mismos datos de entrada.

Debe tener un fin en algún momento, debe tener un número finito de pasos.

Debe indicar el orden de realización de cada paso.

Los algoritmos deben describir tres partes

Proceso

Salida

Entrada

Todos aquellos datos de entrada.

indicar claramente lo que se va a realizar a través de pasos lógicos y ordenados.

La información obtenida.

Los traductores de lenguaje son programas que traducen a su vez los programas fuente escritos en lenguajes de alto nivel a programas en código maquina

Es una secuencia de instrucciones que se ejecutan en una computadora en forma lógica y ordenada dando solución a un problema.


Programación

Un lenguaje es un conjunto de sonidos articulados con que el hombre manifiesta lo que piensa o siente y que está compuesto por un conjunto de signos y reglas que permite la comunicación.

Lenguaje de programación

Es un lenguaje artificial (formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones), diseñado para expresar procesos que pueden ser llevadas a cabo por máquinas como las computadoras.

clasificación de los lenguajes de programación

Bajo nivel (ensamblador)

Alto nivel

Lenguaje máquina

Conjunto de instrucciones codificadas que una computadora puede interpretar y ejecutar directamente

Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la computadora, requiere una fase de traducción al lenguaje máquina.

Lenguaje que facilita la comunicación con una computadora mediante signos convencionales cercanos a los de un lenguaje natural. Está orientado hacia el usuario

ventajas

ventajas

ventajas

desventajas

desventajas

desventajas

Dificultad y lentitud en la codificación
.
Poca fiabilidad


Gran dificultad para verificar y poner a punto los programas


Los programas solo son ejecutables en el mismo procesador

Facilidad de cargar (transferir un programa a la memoria) sin necesidad de traducción posterior, lo que conlleva una velocidad de ejecución superior a cualquier otro lenguaje de programación.

Dependencia total de la máquina, no existe portabilidad.


La formación de los programadores es más compleja que en los lenguajes de alto nivel, ya que exige no solo las técnicas de programación, sino también el conocimiento del interior de la máquina.

Velocidad. La ejecución de los programas es más rápida, proporcionando los resultados en menor tiempo que un lenguaje de alto nivel.


Eficiencia de tamaño. Se reduce el tamaño del ejecutable y mejora la utilización de la memoria,

Incremento del tiempo de puesta a punto, al requerirse diferentes traducciones del programa fuente para conseguir el programa definitivo.


No se aprovechan los recursos internos de la computadora, que se explotan mucho mejor en lenguajes máquina y ensambladores.

El tiempo de formación de los programadores es relativamente corto comparado con otros lenguajes.


La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos

se dividen en

es el proceso de diseñar, codificar, depurar y mantener el código fuente escrito en un lenguaje de programación.

pasos para llevarlo a cabo

Identificación del problema

Análisis del problema

Diseño del algoritmo

Prueba del algoritmo

Codificación del algoritmo

Traducción del programa

Prueba y depuración del programa

Ejecución del programa

Documentación

Paradigmas de programación

Tipos de paradigmas de programación

Estructurada

Imperativa o por procedimientos

Lógica

click to edit

Intérpretes

Compiladores

Análisis de problemas

Para poder dar solución a los problemas mediante el uso de las computadoras, es necesario contar con algunas técnicas para garantizar un buen resultado

dentro de ellas se pueden mencionar a:

Top down

Bottom up

Divide y vencerás

Se complementa con el uso de la técnica de divide y vencerás, para identificar cada uno de los procesos que se deben resolver, y después irlos integrando uno por uno hasta llegar a resolver el problema principal.


Es una técnica conocida como arriba–abajo (diseño descendente), consiste en establecer una serie de niveles de mayor a menor complejidad que den solución al problema.

objetivos básicos en la simplicacion del problema

Las diferentes partes del problema pueden ser programadas de modo independiente o bien por diferentes personas.

Las diferentes partes del problema pueden ser programadas de modo independiente o bien por diferentes personas.

Consiste en descomponer un problema en subproblemas, resolver independientemente los subproblemas para luego combinar sus soluciones y obtener la solución al problema original.

Es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta.

Es un programa que traduce los programas fuente escritos en lenguaje de alto nivel a lenguaje máquina.

compilación

es el proceso de traducción de los programas fuente a programas objeto.

Es una técnica para realizar programas, en los cuales solo se pueden utilizar tres estructuras: de secuencia, selección y repetición y el uso de la estructura goto (transferencia incondicional) no está permitida. El lenguaje representativo es Pascal.

el programador se concentra en el procesamiento, en el algoritmo requerido para llevar a cabo el cómputo deseado.
Los lenguajes apoyan este paradigma proporcionando recursos para pasar argumentos a las funciones y devolviendo valores de las funciones.


Los lenguajes más representativos son Fortran, Pascal y C.

Su concepto principal es el predicado, o relación entre elementos. El lenguaje de programación lógica por excelencia es Prolog.

Se utiliza en aplicaciones de Inteligencia Artificial o relacionadas como:

En la Demostración automática de teoremas, donde un programa genera nuevos teoremas sobre una teoría existente.

En el reconocimiento de lenguaje natural donde un programa es capaz de comprender (con limitaciones) la información contenida en una expresión lingüística humana.

Los Sistemas Expertos en donde un sistema de información imita las recomendaciones de un experto sobre algún dominio de conocimiento.

Determinar claramente lo que se quiere resolver o a donde se quiere llegar. Leer el enunciado hasta entender lo que se quiere lograr.

Es importante considerar hacia donde se quiere llegar y con qué datos se cuentan, así como los procesos que se requieren para ello.

Elaborar un algoritmo con los elementos obtenidos en el paso anterior. Entrada, proceso, salida.

Esto se hace con el objetivo de comprobar que el algoritmo realiza las tareas para las que ha sido diseñado y también proporciona los resultados esperados.
Se realiza la ejecución manual llamada prueba de escritorio, usando datos significativos.

Consiste en tomar el algoritmo y pasarlo a un lenguaje de programación generalmente de alto nivel, al cual se le conoce como programa fuente.

Utilizando un compilador, para generar a partir del programa fuente el programa objeto cuando ya no contenga errores, de tal forma que pueda ser ejecutable.

Debido a que se pueden presentar errores humanos dentro de la programación, y que éstos pueden aumentar dependiendo de la complejidad del problema, es necesario realizar la depuración de los mismos.

Cuando se ha realizado la traducción del programa fuente y se genera el programa objeto, este puede ser ejecutado, y así se puede verificar si está dando los resultados esperados.

Sirve para ayudar a comprender o usar un programa o para realizar modificaciones y/o mantenimientos futuros.

Se requiere:

Obtener toda la información necesaria disponible, ya sea en el enunciado del problema o a través de técnicas de recolección de datos, como pueden ser la observación, los cuestionarios y las entrevistas.

Hacer explicitas las reglas y los datos que aparezcan implícitos (se puede hacer uso de la notación matemática)


Dividir el problema complejo en subproblemas más simples que se puedan resolver en forma independiente.

La documentación puede ser

Documentación Interna

Documentación Externa

Son todos aquellos comentarios o mensajes que se le colocan al código fuente que permite sea más claro el proceso.

Consiste en un documento escrito, la cual proporciona información sobre la elaboración del programa, desde su concepción hasta su desarrollo y mantenimiento.

Existen dos tipos de documentación externa

Manual Técnico

Describe paso a paso la forma cómo funciona el programa, con el fin de que el usuario obtenga el resultado deseado. Le indica al usuario que hacer en caso de que suceda algo inesperado como un mensaje de error.

Se elabora para aquellas personas que necesitan conocer a fondo su funcionamiento para poder realizar modificaciones o mejoras

Deben contar con la siguiente información

click to edit

Descripción del problema

Nombre del autor

Fecha de elaboración

Análisis del problema

Diseño de los algoritmos

Elaboración de los programas (código fuente)

Pruebas de los programas

Mantenimiento.