Please enable JavaScript.
Coggle requires JavaScript to display documents.
Conceptos Generales y algoritmos - Coggle Diagram
Conceptos Generales y algoritmos
Compiladores e intérpretes.
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
se dividen en
Intérpretes
Es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta.
Compiladores
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.
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
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.
Bottom up
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.
Divide y vencerás
Consiste en descomponer un problema en subproblemas, resolver independientemente los subproblemas para luego combinar sus soluciones y obtener la solución al problema original.
Programa
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
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
Determinar claramente lo que se quiere resolver o a donde se quiere llegar. Leer el enunciado hasta entender lo que se quiere lograr.
Análisis del problema
Es importante considerar hacia donde se quiere llegar y con qué datos se cuentan, así como los procesos que se requieren para ello.
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.
Diseño del algoritmo
Elaborar un algoritmo con los elementos obtenidos en el paso anterior. Entrada, proceso, salida.
Prueba del algoritmo
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.
Codificación del algoritmo
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.
Traducción del programa
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.
Prueba y depuración del programa
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.
Ejecución del programa
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.
Documentación
Sirve para ayudar a comprender o usar un programa o para realizar modificaciones y/o mantenimientos futuros.
La documentación puede ser
Documentación Interna
1 more item...
Documentación Externa
1 more item...
Lenguaje
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)
Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la computadora, requiere una fase de traducción al lenguaje máquina.
ventajas
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,
desventajas
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.
Alto nivel
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
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
desventajas
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.
Lenguaje máquina
Conjunto de instrucciones codificadas que una computadora puede interpretar y ejecutar directamente
ventajas
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.
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
algoritmo
características de los algoritmos
Definido
Debe indicar el orden de realización de cada paso.
Preciso
Debe tener un fin en algún momento, debe tener un número finito de pasos.
Finito
Se debe obtener el mismo resultado al seguir un algoritmo dos o más veces, con los mismos datos de entrada.
Los algoritmos deben describir tres partes
Proceso
indicar claramente lo que se va a realizar a través de pasos lógicos y ordenados.
Salida
La información obtenida.
Entrada
Todos aquellos datos de entrada.
Paradigmas de programación
Tipos de paradigmas de programación
Estructurada
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.
Imperativa o por procedimientos
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.
Lógica
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.