Introducción a la programación por computadora
Enviado por misuki • 19 de Noviembre de 2012 • 5.239 Palabras (21 Páginas) • 630 Visitas
Unidad 1.Introducción a la programación por computadora.
1.1. Desarrollo histórico.
1.2. Componentes básicos de una computadora.
1.3. Introducción a los Algoritmos.
1.4. Diagramas de flujo.
1.5. Metodología para la solución de problemas basados en computadora.
1.1 DESARROLLO HISTÓRICO.
“La computadora fue inventada para facilitar el trabajo intelectual. Si el hombre tiene algún problema, el diseñador define el algoritmo que resuelve el problema, el programador lo codifica en un lenguaje de programación, el cual la computadora es capaz de "entender", luego la computadora ejecuta el algoritmo expresado como programa en el lenguaje de programación en cuestión, y entrega al hombre la respuesta.
Los lenguajes de programación son el medio de comunicación entre el hombre y la máquina, por lo tanto son una forma de representación del conocimiento.”
Representación de conocimiento
Representación del conocimiento es escribir en un lenguaje descripciones del mundo.
Una de las ambiciones es poder llegar a representar el “sentido común”.
En general una representación debe:
• Ser capaz de expresar el conocimiento que deseamos expresar.
• Tener capacidad para resolver problemas.
• Dar simplicidad para acceder al conocimiento y facilidad de entendimiento.
Por lo tanto un lenguaje de representación tiene que ser expresivo, conciso, no ambiguo, y efectivo, pues es el que determina todas las características previas.
Tipos de lenguajes de programación
Los tipos más importantes de lenguajes de programación son:
• Lenguajes Imperativos
Su origen es la propia arquitectura de von Neumann, que consta de una secuencia de celdas (memoria) en las cuales se pueden guardar datos e instrucciones, y de un procesador capaz de ejecutar de manera secuencial una serie de operaciones (ó comandos) principalmente aritméticas y booleanas. En general, un lenguaje imperativo ofrece al programador conceptos que se traducen de forma natural al modelo de la máquina.
Ejemplos: FORTRAN, Algol, Pascal, C, Modula-2, Ada.
El programador tiene que traducir la solución abstracta del problema a términos muy primitivos, cercanos a la máquina, por lo que los programas son más "comprensibles" para la máquina que para el hombre. Esto es una desventaja para nosotros que hace que sea sumamente complicado construir código en lenguaje imperativo. Lo bueno de este lenguaje es que es tan cercano al lenguaje de la máquina que la eficiencia en la ejecución es altísima.
• Lenguajes Funcionales
Los matemáticos resuelven problemas usando el concepto de función, que convierte datos en resultados. Sabiendo cómo evaluar una función, usando la computadora, podríamos resolver automáticamente muchos problemas. Este fue el pensamiento que llevó a la creación de los lenguajes de programación funcionales. Además se aprovechó la posibilidad que tienen las funciones para manipular datos simbólicos, y no solamente numéricos, y la propiedad de las funciones que les permite componer, creando de esta manera, la oportunidad para resolver problemas complejos a partir de las soluciones a otros más sencillos. También se incluyó la posibilidad de definir funciones recursivamente.
Un lenguaje funcional ofrece conceptos que son muy entendibles y relativamente fáciles de manejar. El lenguaje funcional más antiguo y popular es LISP, diseñado por McCarthy en la segunda mitad de los años 50. Se usa principalmente en Inteligencia Artificial. En los 80 se añadió a los lenguajes funcionales la tipificación y algunos conceptos modernos de modularización y polimorfismo, un ejemplo es el lenguaje ML.
Programar en un lenguaje funcional significa construir funciones a partir de las ya
existentes. Por lo tanto es importante conocer y comprender bien las funciones que conforman la base del lenguaje, así como las que ya fueron definidas previamente. De esta manera se pueden ir construyendo aplicaciones cada vez más complejas. La desventaja es que está alejado del modelo de la máquina de von Neumann y, por lo tanto, la eficiencia de ejecución de los intérpretes de lenguajes funcionales es peor que la ejecución de los programas imperativos precompilados.
• Lenguajes Lógicos
Otra forma de razonar para resolver problemas en matemáticas se fundamenta en la lógica de primer orden. El conocimiento básico de las matemáticas se puede representar en la lógica en forma de axiomas, a los cuales se añaden reglas formales para deducir cosas verdaderas (teoremas). Gracias al trabajo de algunos matemáticos, de finales de siglo pasado y principios de éste, se encontró la manera de automatizar computacionalmente el razonamiento lógico -particularmente para un subconjunto significativo de la lógica de primer orden- que permitió que la lógica matemática diera origen a otro tipo de lenguajes de programación, conocidos como lenguajes lógicos.
También se conoce a estos lenguajes, y a los funcionales, como lenguajes declarativos, porque para solucionar un problema el programador solo tiene que describirlo con axiomas y reglas de deducción en el caso de la programación lógica y con funciones en el caso de la programación funcional.
En los lenguajes lógicos se utiliza el formalismo de la lógica para representar el
conocimiento sobre un problema y para hacer preguntas que se vuelven teoremas si se demuestra que se pueden deducir a partir del conocimiento dado en forma de axiomas y de las reglas de deducción estipuladas. Así se encuentran soluciones a problemas formulados como preguntas. Con base en la información expresada dentro de la lógica de primer orden, se formulan las preguntas sobre el dominio del problema y el intérprete del lenguaje lógico trata de encontrar la respuesta automáticamente.
El conocimiento sobre el problema se expresa en forma de predicados (axiomas) que establecen relaciones sobre los símbolos que representan los datos del dominio del problema.
El PROLOG surgió a principio de los 70 y es el primer lenguaje lógico. Las aplicaciones en la Inteligencia Artificial lo mantienen vivo y útil. En el caso de la programación lógica, el trabajo del programador es la buena descripción del problema en forma de hechos y reglas. A partir de ésta se pueden encontrar muchas soluciones dependiendo de cómo se formulen las preguntas (metas), que tienen sentido para el problema. Si el programa está bien definido, el sistema encuentra automáticamente las respuestas a las preguntas formuladas. En este caso ya no es necesario definir
...