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.