Sunteți pe pagina 1din 13

Institucin Profesional Duoc Uc. Informtica Biomdica Sede Valparaso.

Fundamentos de Informtica.

Lenguajes Procedurales y No Procedurales.

Profesora: Isabel Alvarado Alumnos: ponelos tu Marcelo

Valparaso, Mayo del 2012.

ndice.
Introduccin ........................................................................................................................................ 3 Historia de la Informtica. ................................................................................................................... 3 Definicin ............................................................................................................................................ 4 Caractersticas Imperativas; ................................................................................................................ 6 Caractersticas Declarativas ................................................................................................................ 8 Diferencias entre Procedural y no Procedural .................................................................................... 9 Ejemplos en sentencias- .................................................................................................................... 10 Conclusin ......................................................................................................................................... 12 Bibliografa. ....................................................................................................................................... 13

Introduccin
En los que respecta a este informe, hemos buscado aclarar el Tema que nos toco de la forma mas explicativa posible. En nuestra bsqueda general nos encontramos con diferentes Tipologas que se le da a los lenguajes procedurales y ciertas confusiones en la divisin paradigmtica. Hemos logrado dilucidar entre estas confusiones centrndonos 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 transicin de estos paradigmas. Para estos, podremos identificar que los hace pertenecer a ambos y porque.

Historia de la Informtica.
Para crear un programa, y que la computadora interprete y ejecute las instrucciones escritas en l, debe usarse un Lenguaje de programacin 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 matemticas a Ada quien, despus de conocer a Charles Babbage, tradujo y ampli una descripcin de su mquina analtica. Incluso aunque Babbage nunca complet la construccin de cualquiera de sus mquinas, el trabajo que Ada realiz con stas le hizo ganarse el ttulo de primera programadora de computadoras del mundo. El nombre del lenguaje de programacin Ada fue escogido como homenaje a esta programadora. Los lenguajes de programacin 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 diseo 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 diseo del lenguaje; nuevos conceptos y paradigmas estn siendo desarrollados y el escenario de los lenguajes de programacin de los prximos diez aos podra ser un poco diferente al de hoy.

En sus inicios las computadoras interpretaban slo instrucciones en un lenguaje especfico, del ms bajo nivel, conocido como cdigo mquina, siendo ste

excesivamente complicado para programar. De hecho slo consiste en cadenas de nmeros 1 y 0 (Sistema binario). Para facilitar el trabajo de programacin, los primeros cientficos que trabajaban en el rea decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o letras provenientes del ingls; codificndolas 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 bsicamente lo mismo que hacerlo en lenguaje mquina, pero las letras y palabras son bastante ms fciles de recordar y entender que secuencias de nmeros binarios. A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un mtodo sencillo para programar. Entonces, se crearon los lenguajes de alto nivel. Mientras que una tarea tan trivial como multiplicar dos nmeros puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastar con solo una.

Definicin
Los paradigmas de programacin pueden clasificarse como procedurales y no procedurales, tambin se le llaman de procedimientos y no procedimientos; Imperativo y Declarativo; o Clsico y Moderno. Entre otras formas de Dividir la historia de la

programacin en dos partes. Una en la cual los mtodos de programacin eran rgidos y cada paso que daba el programa era especificado por el programador, y la nueva era programtica donde los lenguajes buscan la interrelacin de mdulos que dejan un cdigo elegante y simple. EL modelo procedural es un Metaparadigma (Divisin de un conjuntos de paradigmas) de la programacin. Muchas veces es aplicable tanto en lenguajes de programacin de bajo nivel como en lenguajes de alto nivel. En el caso de que esta tcnica se aplique en lenguajes de alto nivel, recibir el nombre de Programacin funcional. Esta tcnica consiste en basarse de un nmero muy bajo de expresiones repetidas, englobarlas todas en un procedimiento o funcin y llamarlo cada vez que tenga que ejecutarse.

Esta tcnica de programacin ofrece muy buena respuesta en relacin al tamao de los programas, y en bruto casi no se nota en la velocidad de ejecucin de los mismos (mientras que las variables, constantes o ndices de vector estn en memoria, como suele ser normal, estos se relacionarn entre s, sin una carga de memoria considerablemente alta para los procesadores modernos); aunque es muy complicado conseguir una Programacin por procedimientos pura El rasgo que distingue a un paradigma de procedimientos es que el programador debe especificar con exactitud cmo debe codificarse la solucin de un problema. Incluso los generadores de cdigo deben producir cdigo de procedimientos Ejemplo;.

Paradigma Imperativo
Los trminos imperativa y orientada a las afirmaciones se usan como sinnimos. Los lenguajes como FORTRAN, Ada, Pascal, COBOL y BASIC tienen las caractersticas 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 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, asignacin de operaciones y repeticin. EL Modelo no procedural a menudo se define como cualquier estilo de programacin que no es imprescindible . . En ciencias de la computacin , la programacin declarativa es un Metaparadigma que expresa la lgica de un cmputo sin describir su flujo de control . Muchos lenguajes de aplicacin de este intento de estilo para minimizar o eliminar los efectos

secundarios mediante la descripcin de lo que el programa debe cumplir, en lugar de describir cmo de ir sobre el cumplimiento de la misma. Esto est en contraste con la programacin imperativa , lo que requiere una descripcion, explcitamente algoritmos . La programacin declarativa considera a menudo los programas de las teoras de la lgica formal y clculos como deducciones en ese espacio de la lgica. La programacin

declarativa se ha convertido en un inters 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 programacin lgica y programacin funcional . Ejemplo;

Paradigma Funcional
La programacin funcional, y, en particular puramente funcional de programacin, los intentos para minimizar o eliminar los efectos secundarios, y tanto, se considera declarativo. Mayora de los lenguajes funcionales, como el Plan , OCaml , Standard ML , y Unlambda , sin embargo, no permiten efectos secundarios en la prctica. Mientras que los lenguajes funcionales tpicamente parecen indicar "cmo", un compilador para un lenguaje de programacin puramente funcional es libre para volver a escribir extensamente el comportamiento operacional de una funcin, siempre y cuando el mismo resultado se devuelve para las mismas entradas. Esto puede ser utilizado para, por ejemplo, hacer una funcin calcular su resultado en paralelo , o para realizar optimizaciones sustanciales (tales como la deforestacin ) que un compilador puede no ser capaz de aplicar con seguridad a un lenguaje con efectos secundarios.

Caractersticas Imperativas;
Debido a su relacin cerrada con las arquitecturas de las mquinas, los lenguajes de Programacin Imperativa pueden ser implementados eficientemente. La base de la programacin imperativa es la completa especificacin y manipulacin controlada de datos con nombre de una manera secuencial. Esta programacin se cree que se ajusta a la mente humana. En la Programacin imperativa se actualizan variables que estn en almacenamiento, en 1950, cuando los programadores reconocieron que las variables y comandos de asignacin constituyen una simple pero til abstraccin de memoria que se actualiza. Basado en el modelo de computador ms extendido, el llamado modelo de Von Neumann. Von Neumann define una mquina que es capaz de ejecutar una serie de instrucciones

secuencialmente, una tras de otra. Estas instrucciones deben estar almacenadas en memoria principal para poder ser ledas y ejecutadas por la unidad de control. Los dispositivos perifricos 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 mtodo preciso para resolver automticamente un problema. Consta de una representacin 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 caractersticas 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 nmero 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 asignacin: 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 razn de la importancia de la sentencia de asignacin en el paradigma imperativo. Las nociones de celda de memoria y asignacin en bajo nivel, se tienden a todos los lenguajes de programacin y fuerzan en los programadores un estilo de pensamiento basado en la arquitectura de Von Neumann. Las asignaciones poseen la forma siguiente: expresin1:=expresin2 donde: 1: denota la localidad de memoria y 2 : denota un valor. Repeticin: Un programa imperativo, normalmente realiza su tarea ejecutando repetidamente una secuencia de pasos elementales, ya que en este modelo

computacional la nica forma de ejecutar algo complejo es repitiendo una secuencia de instrucciones.

Caractersticas Declarativas
La Programacin Declarativa o No procedural, en contraposicin a la Programacin Imperativa es un paradigma de programacin 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 solucin. La solucin es obtenida mediante mecanismos internos de control, sin especificar exactamente cmo encontrarla (tan slo 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 Programacin Declarativa cabe ms de un paradigma de programacin, se ha optado por centrarla en el estudio de la denominada Programacin Lgica, el cual est basado en el clculo de proposiciones y sus relaciones lgicas. La programacin declarativa es un estilo de programacin en el que el programador especifica qu debe computarse ms bien que cmo deben realizarse los cmputos. "programa = lgica + control" (Kowalski) "algoritmos + estructuras de datos = programas" (Wirth) El componente lgico determina el significado del programa mientras que el componente de control solamente afecta a su eficiencia. La tarea de programar consiste en centrar la atencin en la lgica dejando de lado el control, que se asume automtico, al sistema. La caracterstica fundamental de la programacin declarativa es el uso de la lgica como lenguaje de programacin: Un programa es una teora formal en una cierta lgica, esto es, un conjunto de frmulas lgicas que resultan ser la especificacin del problema que se pretende resolver, y la computacin se entiende como una forma de inferencia o deduccin en dicha lgica. Los principales requisitos que debe cumplir la lgica empleada son: Disponer de un lenguaje que sea suficientemente expresivo;

Disponer de una semntica operacional (un mecanismo de cmputo que permita ejecutar los programas) y por ultimo una semntica declarativa que permita dar un si.

Diferencias entre Procedural y no Procedural


En la Programacin Procedural se describe paso a paso un conjunto de instrucciones que deben ejecutarse para variar el estado del programa y hallar la solucin, es decir, un algoritmo en el que se describen los pasos necesarios para solucionar el problema. La programacin no procedural dice QU, en lugar de CMO 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 ms

pequeo que otro y desarrollar la misma funcin, es natural preguntarse si hay una manera de hacer el programa ms pequeo que haga esa misma funcin. De manera similar, la nocin de un programa rpido nos permite buscar el programa ms rapido, y la nocin de un mejor programa (por cualquier criterio) nos permite buscar el mejor programa. Una manera de juzgar un lenguaje de programacin es vericar que ese lenguaje sea de ms alto-nivel que otro. Un lenguaje es de ms alto nivel que otro si podemos expresar el mismo programa con menos detalle. Otra manera de expresar esto es que un lenguaje es de ms alto nivel cuando es menos procedural. En otras palabras, en un lenguaje de ms alto nivel nos podemos concentrar ms en QU se est haciendo y no en CMO se est haciendo. El paradigma Funcional esta en el borde de esta clasificacin En Cambio en la programacin 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 informacin a partir de la descripcin realizada. Considere el siguiente ejemplo: Suponga que queremos ordenar un arreglo.Cmo podemos expresar este problema en un lenguaje no procedural? Tenemos que describir qu signica Ordenar un arreglo. Por ejemplo, decimos que B es un orden de A si y solo si B es una permutacin de A y B esta ordenado. Tambin tenemos que describir lo que signica una permutacin de un arreglo y lo que signica un arreglo ordenado. Para este ltimo podemos decir que B esta ordenado si B[i]<=B[j] para cada i<j. Entonces ser

responsabilidad del sistema no procedural determinar cmo crear un arreglo B que es una permutacin ordenada de un arreglo dado A. Programacin local y deduccin automtica La programacin no procedural es un rea de investigacin de inteligencia articial (AI Articial Intelligence): La prueba automtica de teoremas. El objetivo es desarrollar programas que puedan construir pruebas formales de proposiciones establecidas en un lenguaje simblico Entonces a modo de sntesis podemos decir que en la programacin imperativa se describe paso a paso un conjunto de instrucciones que deben ejecutarse para variar el estado del programa y hallar la solucin, es decir, un algoritmo en el que se describen los pasos necesarios para solucionar el problema. En contraste en la programacin 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 informacin a partir de la descripcin realizada.

Ejemplos en sentenciasProgramacin imperativa: pasos de ejecucin y estado de variables


int x = x + 1; int y = y + 3; (define (cuadrado x) (* x x)) Ejemplo de estado local (no existe en programacin declarativa): int function contador () { static int c = 0;

c++; return c;

} contador(): 1 contador(): 2 contador(): 3

Programacin

declarativa:

Dentro

del

mbito

de

declaracin

de

las

variables x1 xn en todas las ocurrencias de una expresin e que contiene nicamente las variables x1 xn tienen el mismo valor. Consecuencia Si una expresin e aparece en varios lugares dentro de un mismo mbito, slo es necesario evaluarla una vez. Ejemplo: (define (f x) ...) (+ (f 2) (f 2)) En programacin declarativa no existen referencias

Conclusin.
En los mbitos de la evolucin de los Lenguajes de programacin existe una fuerte Tendencia a simplificar los cdigos y buscar desafos que le dan mas autonoma a la maquina. Esto por un lado es la fuerte influencia de la teora de Sistemas en el mundo de la programacin as como en todos los mbitos de la Ciencias Tecnolgicas. Francamente es motivador pensar en lo que podra llegar a hacer un programa que logre aprender y tener funciones de lgica que creen nuevos programas que nos ayuden a superar la barrera de creacin y construccin de las grandes mentes de este siglo; La mortalidad. Me lleno de referencias anecdticas al pensar si quiera que aun no podemos ver todos los resultados por los pocos aos que llevan activos muchos de los programas de inteligencia Artificial. Como ejemplo; La pelcula EL Hombre bicentenario me lleva a un viaje por los futuros potenciales de estos lenguajes de programacin Tambin podemos concluir que en el aprendizaje de la programacin es estrictamente necesario que se comience con los lenguajes procedurales, pues un profesional debe estar al tanto de las tareas que hay detrs de cada orden que se le da a la maquina y de la lgica que esta maneja. As el programador podr encontrar soluciones a sintaxis de error y otros tpicos problemas algortmicos. Cabe destacar que en este trabajo no hicimos mencin de los lenguajes de programacin mas comunes en la actualidad, esto es porque no vimos la necesidad de abarcar temas en los cuales sabemos que nuestros compaeros harn duro hincapi. Para el futuro, dilucidamos nuevos paradigmas programticos enfocados a esta relacin modular que se da entre los lenguajes no procedurales, esto permitir lneas de cdigo aun ms elegantes, y una lgica cada vez mas matemtica de la programacin.

Bibliografa.
Lenguajes de Programacin. Recuperado el da 17 de mayo del 2012;

http://ocw.usal.es/ensenanzas-

tecnicas/informatica-ingeniero-tecnico-en-obraspublicas/contenidos/course_files/Temas/Tema_7_-_Lenguajes_de_Programacion.PDF
Paradigmas que no son de Procedimientos. Recuperado el da 15 de Mayo del 2012 de; http://inteligenciaartificial.jimdo.com/sistemas-expertos/paradigmas-que-no-son-de-procedimientos/ Paradigma de Procedimiento. Recuperado el da 15 de Mayo del 2012 de; http://inteligenciaartificial.jimdo.com/sistemas-expertos/paradigmas-de-procedimientos/ (2012) Programacin por Procedimientos. Recuperado el da 15 de Mayo del 2012 de; http://es.wikipedia.org/wiki/Programaci%C3%B3n_por_procedimientos. (2012) Programacin Declarativa. Recuperado el da 15 de Mayo del 2012 de; http://www.ecured.cu/index.php/Programaci%C3%B3n_Declarativa (2012) Programacin. Recuperado el da 15 de Mayo del 2012 de;

http://es.wikipedia.org/wiki/Programaci%C3%B3n
Departamento de Ciencia de la Computacin e Inteligencia Artificial (2011) El paradigma funcional. Universidad de Alicante, Espaa. Recuperado el da 15 de mayo del 2012 de;

http://www.dccia.ua.es/dccia/inf/asignaturas/LPP/2010-2011/clases-domingo/sesion5.html
Facultad de Ciencias Exactas y Naturales (2000) Algoritmos y Estructuras de Datos. Universidad de Buenos Aires. Recuperado el da 15 de Mayo del 2012 de; http://www.alipso.com/monografias/2260_practica4/ Laborda, Javier; Josep Galimany, Rosa Mara Pena, Antoni Gual (1985). Software. Biblioteca prctica de la computacin Barcelona: Ediciones Ocano-xito, S.A..

Snchez Andrs, Mara ngeles (1996) (en espaol). Programacin estructurada y fundamentos de programacin (1 edicin). McGraw-Hill / Interamericana de Espaa, S.A..

S-ar putea să vă placă și