Institución Profesional Duoc Uc. Informática Biomédica Sede Valparaíso.
Fundamentos de Informática.
Lenguajes Procedurales y No Procedurales.
Profesora: Isabel Alvarado Alumnos: ponelos tu Marcelo
Valparaíso, Mayo del 2012.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Índice. Introducción ........................................................................................................................................ 3 Historia de la Informática. ................................................................................................................... 3 Definición ............................................................................................................................................ 4 Características Imperativas; ................................................................................................................ 6 Características Declarativas ................................................................................................................ 8 Diferencias entre Procedural y no Procedural ..................... .............................. ................... ................... .................. .................. .................. ................. ........ 9 Ejemplos en sentencias- .................................................................................................................... 10 Conclusión ......................................................................................................................................... 12 Bibliografía. ....................................................................................................................................... 13
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Introducción En los que respecta a este informe, hemos buscado aclarar el Tema que nos toco de la forma mas explicativa posible. En nuestra búsqueda general nos encontramos con diferentes Tipologías que se le da a los lenguajes procedurales y ciertas confusiones en la división paradigmática. Hemos logrado dilucidar entre estas confusiones centrándonos en el significado mismo de la palabra, como un conjunto de Lenguajes enfocados a los Procedimientos y otros que no. Así en este trabajo se aborda el tema de forma tal que a grandes rasgos podamos diferenciar un lenguaje Procedural de uno No procedural. Siempre recordando que nos encontraremos muchas veces con algunos que tienen un poco de ambos, ya que pueden tener ciertas especificaciones que los identifican con el proceso de transición de estos paradigmas. Para estos, podremos identificar que los hace pertenecer a ambos y porque.
Historia de la Informática. Para crear un programa, y que la computadora interprete y ejecute las instrucciones escritas en él, debe usarse un Lenguaje de programación Como Orgullo del Genero femenino la primera programadora de computadora conocida fue Ada Lovelace, hija de Anabella Milbanke Byron y Lord Byron. Anabella introdujo en las matemáticas a Ada quien, después de conocer a Charles Babbage, tradujo y amplió una descripción de su máquina analítica. Incluso aunque Babbage nunca completó la construcción de cualquiera de sus máquinas, el trabajo que Ada realizó con éstas le hizo ganarse el título de primera programadora de computadoras del mundo. El nombre del lenguaje de programación Ada fue escogido como homenaje a esta programadora. Los lenguajes de programación de hoy son el producto de un desarrollo que se inició en los 1950's. Numerosos conceptos de lenguajes han sido inventados, examinados e implementados en sucesivos lenguajes. Con muy pocas excepciones, el diseño de cada lenguaje ha sido fuertemente influenciado por la experiencia con los lenguajes iniciales. Los lenguajes de hoy no son el producto final del desarrollo del diseño del lenguaje; nuevos conceptos y paradigmas están siendo desarrollados y el escenario de los
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
En sus inicios las computadoras interpretaban sólo instrucciones en un lenguaje específico, del más bajo nivel, conocido como código máquina, siendo éste excesivamente complicado para programar. De hecho sólo consiste en cadenas de números 1 y 0 (Sistema binario). binario) . Para facilitar el trabajo de programación, los primeros científicos que trabajaban en el área decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o letras provenientes del inglés; codificándolas así y creando un lenguaje de mayor nivel, que se conoce como Assembly o lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). En realidad escribir en lenguaje ensamblador es básicamente lo mismo que hacerlo en lenguaje máquina, pero las letras y palabras son bastante más fáciles de recordar y entender que secuencias de números binarios. A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método sencillo para programar. Entonces, se crearon los lenguajes de alto nivel. Mientras que una tarea tan trivial como multiplicar dos números puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará con solo una.
Definición Los paradigmas de programación pueden clasificarse como procedurales y no procedurales, también se le llaman de procedimientos procedimiento s y no procedimientos; Imperativo y Declarativo; o Clásico y Moderno. Entre otras formas de Dividir la historia de la programación en dos partes. Una en la cual los métodos de programación eran rígidos y cada paso que daba el programa era especificado por el programador, y la nueva era programática donde los lenguajes buscan la interrelación de módulos que dejan un código elegante y simple. EL modelo procedural es un Metaparadigma (División de un conjuntos de paradigmas) de la programación. Muchas veces es aplicable tanto en lenguajes de programación de bajo nivel como en lenguajes de alto nivel. En el caso de que esta técnica se aplique en lenguajes de alto nivel, recibirá el nombre de Programación funcional. Esta técnica
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Esta técnica de programación ofrece muy buena respuesta en relación al tamaño de los programas, y en bruto casi no se nota en la velocidad de ejecución de los mismos (mientras que las variables, constantes o índices de vector estén en memoria, como suele ser normal, estos se relacionarán entre sí, sin una carga de memoria considerablemente alta para los procesadores modernos); aunque es muy complicado conseguir una Programación por procedimientos pura El rasgo que distingue a un paradigma de procedimientos es que el programador debe especificar con exactitud cómo debe codificarse la solución de un problema. Incluso los generadores de código deben producir código de procedimientos Ejemplo;.
Paradigma Imperativo Los términos imperativa y orientada a las afirmaciones se usan como sinónimos. Los lenguajes como FORTRAN, Ada, Pascal, COBOL y BASIC tienen las características predominante de que las afirmaciones son imperativos u órdenes que indican que a la computadora lo que tiene que hacer. Los lenguajes imperativos se desarrollan como una una forma de liberar al programador de la necesidad de codificar el lenguaje ensamblador en la arquitectura de Von Newman. En consecuencia, los lenguajes imperativos ofrecen gran soporte a variables, asignación de operaciones y repetición. EL Modelo “no procedural” a menudo se define como cualquier estilo de programación
que no es imprescindible . . En ciencias de la computación , la programación declarativa es un Metaparadigma que expresa la lógica de un cómputo sin describir su flujo de control . Muchos lenguajes de aplicación de este intento de estilo para minimizar o eliminar los efectos secundarios mediante la descripción de lo que el programa debe cumplir, en lugar de describir cómo de ir sobre el cumplimiento de la misma. Esto está en contraste con la programación imperativa , lo que requiere una descripcion, explícitamente algoritmos algoritmos .
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
declarativa se ha convertido en un interés particular recientemente, ya que en gran medida puede simplificar la escritura de programas paralelos . Comunes de los lenguajes declarativos son los de las expresiones regulares , la programación lógica y programación funcional . Ejemplo;
Paradigma Funcional La programación funcional, y, en particular puramente funcional de programación, los intentos para minimizar o eliminar los efectos secundarios, y tanto, se considera declarativo. Mayoría de los lenguajes funcionales, como el Plan , OCaml , Standard ML , y Unlambda , sin embargo, no permiten efectos secundarios en la práctica. Mientras que los lenguajes funcionales típicamente parecen indicar "cómo", un compilador para un lenguaje de programación puramente funcional es libre para volver a escribir extensamente el comportamiento operacional de una función, siempre y cuando el mismo resultado se devuelve para las mismas entradas. Esto puede ser utilizado para, por ejemplo, hacer una función calcular su resultado en paralelo , o para realizar optimizaciones sustanciales (tales como la deforestación ) que un compilador puede no ser capaz de aplicar con seguridad a un lenguaje con efectos secundarios.
Características Imperativas; Debido a su relación cerrada con las arquitecturas de las máquinas, los lenguajes de Programación Imperativa pueden ser implementados eficientemente. La base de la programación imperativa es la completa especificación y manipulación controlada de datos con nombre de una manera secuencial. Esta programación se cree que se ajusta a la mente humana. En la Programación imperativa se actualizan variables que están en almacenamiento, en 1950, cuando los programadores reconocieron que las variables y comandos de
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
secuencialmente, una tras de otra. Estas instrucciones deben estar almacenadas en memoria principal para poder ser leídas y ejecutadas por la unidad de control. Los dispositivos periféricos nos permiten obtener los resultados e introducir datos que queremos procesar en el sistema. El paradigma imperativo permite expresar algoritmos que se realizan de acuerdo a este modo de funcionamiento.
Recordemos que un Algoritmo, es un método preciso para resolver automáticamente un problema. Consta de una representación de los datos que se manejan y un conjunto de pasos tales que cada uno de ellos resuelve un problema menor. Es necesario describir el orden en el que se deben ejecutar estos pasos para poder introducirse en el ordenador Si se analizan las características fundamentales de este paradigma se detectan las siguientes: Concepto de celda de memoria ("variable") para almacenar valores. El componente principal de la arquitectura es la memoria, compuesto por un gran número de celdas donde se almacenan los datos. Las celdas tienen nombre (concepto de variable) que las diferencian, y sobre los que se producen efectos de lado y definiciones de alias. Operaciones de asignación: Estrechamente ligado a la arquitectura de la memoria, se encuentra la idea de que cada valor calculado debe ser "almacenado", es decir asignado a una celda. Esta es la razón de la importancia de la sentencia de asignación en el paradigma imperativo. Las nociones de celda de memoria y asignación en bajo nivel, se
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
computacional la única forma de ejecutar algo complejo es repitiendo una secuencia de instrucciones.
Características Declarativas Programación Imperativa es un paradigma de programación que está basado en el desarrollo de programas especificando o "declarando" un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen el problema y detallan su solución. La Programación Declarativa o “No procedural”, en contraposición a la
La solución es obtenida mediante mecanismos internos de control, sin especificar exactamente cómo encontrarla (tan sólo se le indica a la computadora que es lo que se desea obtener o que es lo que se está buscando). No existen asignaciones destructivas, y las variables son utilizadas con transparencia referencial Aunque en la Programación Declarativa cabe más de un paradigma de programación, se ha optado por centrarla en el estudio de la denominada Programación Lógica, el cual está basado en el cálculo de proposiciones y sus relaciones lógicas. La programación declarativa es un estilo de programación en el que el programador especifica qué debe computarse más bien que cómo deben realizarse los cómputos. "programa = lógica + control" (Kowalski) "algoritmos + estructuras de datos = programas" (Wirth) El componente lógico determina el significado del programa mientras que el
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Disponer de una semántica operacional (un mecanismo de cómputo que permita ejecutar los programas) y por ultimo una semántica declarativa que permita dar un si.
Diferencias entre Procedural y no Procedural En la Programación Procedural se describe paso a paso un conjunto de instrucciones que deben ejecutarse para variar el estado del programa y hallar la solución, es decir, un algoritmo en el que se describen los pasos necesarios para solucionar el problema. La programación no procedural dice QUÉ, en lugar de CÓMO Cuando las cosas se pueden ordenar en una serie, es natural preguntar si hay un primer elemento o un último elemento en la serie. Por ejemplo, una vez que un programa se puede hacer más pequeño que otro y desarrollar la misma función, es natural preguntarse si hay una manera de hacer el programa más pequeño que haga esa misma función. De manera similar, la noción de un programa rápido nos permite buscar el programa más rapido, y la noción de un mejor programa (por cualquier criterio) nos permite buscar el mejor programa. Una manera de juzgar un lenguaje de programación e s verificar que ese lenguaje sea de más alto-nivel que otro. Un lenguaje es de más alto nivel que otro si podemos expresar el mismo programa con menos detalle. Otra manera de expresar esto es que un lenguaje es de más alto nivel cuando es menos procedural. En otras palabras, en un lenguaje de más alto nivel nos podemos concentrar más en QUÉ se está haciendo y no en CÓMO se está haciendo. El paradigma Funcional esta en el borde de esta clasificación En Cambio en la programación declarativa las sentencias que se utilizan lo que hacen es describir el problema que se quiere solucionar, pero no las instrucciones necesarias
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
responsabilidad del sistema no procedural determinar cómo crear un arreglo B que es una permutación ordenada de un arreglo dado A. Programación local y deducción automática La programación no procedural es un área de investigación de inteligencia artificial (AI Artificial Intelligence): La prueba automática de
teoremas. El objetivo es desarrollar programas que puedan construir pruebas formales de proposiciones establecidas en un lenguaje simbólico Entonces a modo de síntesis podemos decir que en la programación imperativa se describe paso a paso un conjunto de instrucciones que deben ejecutarse para variar el estado del programa y hallar la solución, es decir, un algoritmo en el que se describen los pasos necesarios para solucionar el problema. En contraste en la programación declarativa las sentencias que se utilizan lo que hacen es describir el problema que se quiere solucionar, pero no las instrucciones necesarias para solucionarlo. Esto último se realizará mediante mecanismos internos de inferencia de información a partir de la descripción realizada.
Ejemplos en sentenciasProgramación imperativa: pasos de ejecución y estado de variables int x = x + 1; int y = y + 3; (define (cuadrado x)
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
} contador(): 1 contador(): 2 contador(): 3
Programación declarativa: Dentro del ámbito de declaración de las variables x1 … xn en todas las ocurrencias de una expresión “e” que contiene únicamente las variables x1 … xn tienen el mismo valor. aparece en varios lugares dentro de un mismo ámbito, sólo es necesario evaluarla una vez. Consecuencia Si una expresión “e”
Ejemplo: (define (f x) ...) (+ (f 2) (f 2)) En programación declarativa no existen referencias
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Conclusión. En los ámbitos de la evolución de los Lenguajes de programación existe una fuerte Tendencia a simplificar los códigos y buscar desafíos que le dan mas autonomía a la maquina. Esto por un lado es la fuerte influencia de la teoría de Sistemas en el mundo de la programación así como en todos los ámbitos de la Ciencias Tecnológicas. Francamente es motivador pensar en lo que podría llegar a hacer un programa que logre aprender y tener funciones de lógica que creen nuevos programas que nos ayuden a superar la barrera de creación y construcción de las grandes mentes de este siglo; La mortalidad. Me lleno de referencias anecdóticas al pensar si quiera que aun no podemos ver todos los resultados por los pocos años que llevan activos muchos de los programas de inteligencia Artificial. Como ejemplo; La película “EL Hombre bicentenario” me lleva a un viaje por los
futuros potenciales de estos lenguajes de programación También podemos concluir que en el aprendizaje de la programación es estrictamente necesario que se comience con los lenguajes procedurales, pues un profesional debe
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Bibliografía. Lenguajes de Programación. Recuperado el día 17 de mayo del 2012; http://ocw.usal.es/ensenanzas-
tecnicas/informatica-ingeniero-tecnico-en-obraspublicas/contenidos/course_files/Temas/Tema_7_-_Lengu publicas/contenidos /course_files/Temas/Tema_7_-_Lenguajes_de_Programacion.PDF ajes_de_Programacion.PDF Paradigmas que no son de Procedimientos.
Recuperado el día 15 de Mayo del 2012 de;
http://inteligenciaartificial.jimdo.com/sistemas-expertos/paradigmas-que-no-son-de-procedimientos/ Paradigma de Procedimiento.
Recuperado el día 15 de Mayo del 2012 de;
http://inteligenciaartificial.jimdo.com/sistemas-expertos/paradigmas-de-procedimientos/ (2012) Programación por Procedimientos . Recuperado el día 15 de Mayo del 2012 de; http://es.wikipedia.org/wiki/Programaci%C3%B3n_por_procedimientos.. http://es.wikipedia.org/wiki/Programaci%C3%B3n_por_procedimientos (2012) Programación Declarativa . Recuperado el día 15 de Mayo del 2012 de; http://www.ecured.cu/index.php/Programaci%C3%B3n_Declarativa (2012 ) Programación. Recuperado el día 15 de Mayo del 2012 de; http://es.wikipedia.org/wiki/Programaci%C3%B3n
Departamento de Ciencia de la Computación e Inteligencia Artificial (2011) El paradigma funcional.