Paradigmas de La Programacion
Paradigmas de La Programacion
Paradigmas de La Programacion
Paradigmas
07/09/2012 Instituto Tecnolgico de Salina Cruz ~KorOniiTa~~
Paradigmas de la programacin
Tema:
Paradigmas de la Programacin
Carrera:
Fundamentos de Programacin
Profesor:
Primer Semestre
Grupo:
I-E
1
Fundamentos De Programacin
Paradigmas de la programacin
ndice
Introduccin .................................................................................................................................................. 3 Paradigmas de la programacin .................................................................................................................... 4 Programacin ............................................................................................................................................ 4 Lenguaje de programacin. ....................................................................................................................... 4 Historia de los lenguajes de programacin ............................................................................................... 6 Lenguajes clasificados por paradigmas de programacin: definiciones, ventajas y desventajas. ................ 7 Qu es un paradigma de programacin? ................................................................................................ 7 Tipos de paradigmas de programacin ..................................................................................................... 8 Programacin Imperativo o por Procedimientos. ..................................................................................... 8 Programacin Funcional ............................................................................................................................ 9 Programacin Lgico ............................................................................................................................... 10 Programacin Declarativa ....................................................................................................................... 11 Programacin Orientada a Objetos ......................................................................................................... 11 Conclusin ................................................................................................................................................... 12 Bibliografia................................................................................................................................................... 13
Fundamentos De Programacin
Paradigmas de la programacin
Introduccin
Edward Sapir, deni el lenguaje como un mtodo humano y no instintivo de comunicar ideas, emociones y deseos mediante un sistema de smbolos producidos voluntariamente. Esta denicin en principio se reere a un lenguaje natural, que es aquel lenguaje hablado o escrito que usamos para la comunicacin ms cotidiana y general. No obstante, en este trabajo nos es de inters otro tipo de lenguajes llamados lenguajes formales. Un lenguaje formal es un lengua je donde existe una gramtica que implementa el conjunto de concatenaciones (cadenas) posibles de un alfabeto nito particular. Esta gramtica provee al lenguaje de 3 elementos importantes: 1.Un vocabulario de smbolos; 2.Reglas sintcticas para combinar estos smbolos en cadenas y frmulas gramaticalmente correctas, y 3.Reglas semnticas para darle signicado e interpretacin a esas frmulas. Con esto, se obtiene un lenguaje en el que a diferencia de un lenguaje natural, sus sentencias no signican nada en particular, ya que su signicado aparece cuando les es dado un signicado a sus smbolos, que no da cabida a ambigedades y que carece del poder de crecer y evolucionar autnomamente. Los paradigmas de programacin son la forma que determinan los mtodos y las herramientas que un programador usara en la construccin de un software, es la manera en la que nos comunicamos con las maquinas hoy en da. Mayormente los lenguajes de programacin estn basados en uno o mas paradigmas, ha estos se les puede llamar multiparadigmas.
Fundamentos De Programacin
Paradigmas de la programacin
Paradigmas de la programacin
Programacin
Es el proceso de disear, codificar, depurar y mantener el cdigo fuente de programas computacionales. El cdigo fuente es escrito en un lenguaje de programacin. El propsito de la programacin es crear programas que exhiban un comportamiento deseado. Al desarrollarse las primeras computadoras electrnicas, se vio la necesidad de programarlas, es decir, de almacenar en memoria la informacin sobre la tarea que iban a ejecutar. Las primeras se usaban como calculadoras simples; se les indicaban los pasos de clculo, uno por uno. John Von Neumann desarroll el modelo que lleva su nombre, para describir este concepto de "programa almacenado". En este modelo, se tiene una abstraccin de la memoria como un conjunto de celdas, que almacenan simplemente nmeros. Estos nmeros pueden representar dos cosas: los datos, sobre los que va a trabajar el programa; o bien, el programa en s. Se tena el problema de representar las acciones que iba a realizar la computadora, y que la memoria, al estar compuesta por switches correspondientes al concepto de bit, solamente nos permita almacenar nmeros binarios. La solucin que se tom fue la siguiente: a cada accin que sea capaz de realizar nuestra computadora, asociarle un nmero, que ser su cdigo de operacin (opcode). La programacin debe perseguir la obtencin de programas de calidad. Algunos de los factores de calidad ms importantes son los siguientes:
Correccin. Un programa es correcto si hace lo que debe hacer tal y como se estableci en las fases previas a su desarrollo. Claridad. Es muy importante que el programa sea lo ms claro y legible posible, para facilitar as su desarrollo y posterior mantenimiento. Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente, as como cuidar el estilo en la edicin. Eficiencia. Se trata de que el programa, adems de realizar aquello para lo que fue creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible los recursos que utiliza. Portabilidad. Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma, ya sea hardware o software, diferente a aqulla en la que se elabor.
Lenguaje de programacin.
Para crear un programa, y que la computadora interprete y ejecute las instrucciones escritas en l, debe usarse un Lenguaje de programacin.
Fundamentos De Programacin
Paradigmas de la programacin
Un lenguaje de programacin es un lenguaje que puede ser utilizado para controlar el comportamiento de una mquina, particularmente una computadora. Consiste en un conjunto de reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programacin y lenguaje informtico como si fuesen sinnimos, no tiene por qu ser as, ya que los lenguajes informticos engloban a los lenguajes de programacin y a otros ms, como, por ejemplo, el HTML. Es difcil establecer una clasificacin general de los mismos, ya que en cualquiera que se realice habr lenguajes que pertenezcan a mas de uno de los grupos establecidos. Una clasificacin muy extendida, atendiendo a la forma de trabajar de los programas y a la filosofa con que fueron concebidos, es la siguiente:
Lenguajes imperativos. Utilizan instrucciones como unidad de trabajo de los programas (Cobol, Pascal, C, Ada). Lenguajes declarativos. Los programas se construyen mediante descripciones de funciones o expresiones lgicas (Lisp, Prolog). Lenguajes orientados a objetos. El diseo de los programas se basa mas en los datos y su estructura. La unidad de proceso es el objeto y en el se incluyen los datos (variables) y las operaciones que actan sobre ellos (Smalltalk, C++). Lenguajes orientados al problema. Diseados para problemas especficos, principalmente de gestin, suelen ser generadores de aplicaciones. Lenguajes naturales. Estn desarrollndose nuevos lenguajes con el principal objetivo de aproximar el diseo y construccin de programas al lenguaje de las personas.
Otra clasificacin que se puede hacer es la de atendiendo al desarrollo de los lenguajes desde la aparicin de las computadoras, que sigue un cierto paralelismo con las generaciones establecidas en la evolucin de las mismas:
Primera generacin. Lenguajes maquina y ensambladores. Segunda generacin. Primeros lenguajes de alto nivel imperativo (FROTRAN, COBOL). Tercera generacin. Lenguajes de alto nivel imperativo. Son los mas utilizados y siguen vigentes en la actualidad (ALGOL 8, PL/I, PASCAL, MODULA). Cuarta generacin. Orientados bsicamente a las aplicaciones de gestin y al manejo de bases de datos (NATURAL, SQL). Quinta generacin. Orientados a la inteligencia artificial y al procesamiento de los lenguajes naturales (LISP, PROLOG).
Fundamentos De Programacin
Paradigmas de la programacin
Para la mejor compresin se harn unas definiciones: Programa: es un conjunto de instrucciones escritas en un lenguaje de programacin que indican a la computadora la secuencia de pasos, para resolver un problema. Cdigo fuente: esta creado en algn lenguaje de alto nivel, por lo que es entendido 100% por el ser humano. Este debe estar complementado por su documentacin o manuales donde se indica el desarrollo lgico del mismo. Cdigo objeto: es creado por los compiladores y nos sirve como enlace entre el programa fuente y el ejecutable.
Fundamentos De Programacin
Paradigmas de la programacin
Los programas escritos en lenguajes de alto nivel son ms fciles de escribir por los programadores y realizar su mantenimiento, pueden ser ejecutados en distintos tipos de ordenadores sin tener que modificar el cdigo y no requieren un alto nivel de conocimiento del funcionamiento interno del ordenador. Pero las instrucciones escritas en esos lenguajes deben ser traducidas a lenguaje mquina para que puedan ser comprendidas por el procesador, por lo que es necesario utilizar programas traductores como los compiladores o intrpretes. Uno de los primeros lenguajes de alto nivel que aparecieron, sobre el ao 1955, y que tuvo una gran difusin fue Fortran. Este lenguaje se considera de propsito general, aunque estaba especialmente orientado al clculo numrico y cientfico. Otros lenguajes de propsito general que han sido amplamente utilizados: Basic (1964), Pascal (1970), C (1972), C++ (1983), Perl (1987), Java (1995), etc. Han aparecido tambin lenguajes que, en vez que tener un enfoque de propsito general, estn especializados en el desarrollo de aplicaciones de un determinado tipo. Por ejemplo, Cobol (1960) est orientado al sector empresarial, Prolog (1972) a la inteligencia artificial, SQL (1978) a la gestin de bases de datos, PHP (1995) al desarrollo web, etc.
Qu es un paradigma de programacin?
Los lenguajes de programacin son basados en uno o ms paradigmas. Por ejemplo: Smalltalk y Java son lenguajes basados en el paradigma orientado a objetos. El lenguaje de programacin Scheme, en cambio, soporta slo programacin funcional. En cambio Python, soporta mltiples paradigmas. Todos estos lenguajes pueden ser clasicados en una jerarqua de familias a partir del modelo que siguen para denr y operar informacin (Figura 1), es decir, que pueden ser jerarquiza-dos segn el paradigma que siguen. En una primera clasicacin, se encuentran dos grandes grupos en donde es posible englobar casi todos los paradigmas de programacin conocidos hasta ahora. Un paradigma de programacin provee (y determina) la visin y mtodos de un programador en la construccin de un programa o subprograma. Diferentes paradigmas resultan en diferentes estilos de programacin y en diferentes formas de pensar la solucin de problemas (con la solucin de mltiples problemas se construye una aplicacin).
Fundamentos De Programacin
Paradigmas de la programacin
Imperativo o por procedimientos: es considerado el ms comn y est representado, por ejemplo, por C, BASIC o Pascal Funcional: est representado por Scheme o Haskell. Este es un caso del paradigma declarativo. Lgico: est representado por Prolog. Este es otro caso del paradigma declarativo. Declarativo: por ejemplo la programacin funcional, la programacin lgica, o la combinacin lgico-funcional. Orientado a objetos: est representado por Smalltalk, un lenguaje completamente orientado a objetos.
Si bien puede seleccionarse la forma pura de estos paradigmas al momento de programar, en la prctica es habitual que se mezclen, dando lugar a la programacin multiparadigma. Actualmente el paradigma de programacin ms usado es el de la programacin orientada a objetos.
Fundamentos De Programacin
Paradigmas de la programacin
Deterministas: en el sentido de que se tienen siempre los mismos resultados del programa para las mismas entradas. Es decir, si se calcula el sueldo para un empleado varias veces, los resultados de salida siempre sern los mismos, puesto que los datos de entrada siempre son los mismos. Necesitan de la existencia de un proceso que traduzca el cdigo al lenguaje que entiende la computadora (lenguaje mquina). Algortmicos: como ya se ha visto, expresan cmo resolver el problema mediante un algoritmo.
Programacin Funcional
El paradigma funcional considera al programa como una funcin matemtica, donde el dominio representara el conjunto de todas las entradas posibles (inputs) y el rango sera el conjunto de todas las salidas posibles (outputs). En los lenguajes tradicionales, la programacin consiste en indicar cmo resolver un problema mediante sentencias; en la programacin lgica, se trabaja de una forma descriptiva, estableciendo relaciones entre entidades, indicando no cmo, sino qu hacer. La programacin lgica encuentra su hbitat natural en aplicaciones de inteligencia, artificial o relacionadas:
Sistemas expertos, donde un sistema de informacin imita las recomendaciones de un experto sobre algn dominio de conocimiento. Demostracin automtica de teoremas, donde un programa genera nuevos teoremas sobre una teora existente. Reconocimiento de lenguaje natural, donde un programa es capaz de comprender (con limitaciones) la informacin contenida en una expresin lingstica humana.
El lenguaje de programacin lgica por excelencia es Prolog, que cuenta con diversas variantes. La ms importante es la programacin lgica con restricciones (vase artculo sobre programacin con restricciones), que posibilita la resolucin de ecuaciones lineales adems de la demostracin de hiptesis. Estructuras bsicas: Prolog cuenta con dos tipos de estructuras: trminos y sentencias. Los trminos pueden ser constantes, variables o functores: > Las constantes, representadas por una cadena de caracteres, pueden ser nmeros o cualquier cadena que comience en minscula. > Las variables son cadenas que comienzan con una letra mayscula. Los functores son identificadores que empiezan con minscula, seguidos de una lista de parmetros (trminos) entre parntesis, separados por comas.
Fundamentos De Programacin
Paradigmas de la programacin
Las sentencias son reglas o clusulas. Hay hechos, reglas con cabeza y cola, y consultas. > Un hecho establece una relacin entre objetos, y es la forma ms objetos, y es la forma ms sencilla de sentencia. > Una regla permite definir nuevas relaciones a partir de otras ya existentes. Operadores MATEMATICOS Suma Resta Multiplicacin + * RELACIONALES < > >= Mayor que Menor que Mayor o igual que
=<
=:=
Aritmticamente Igual
=\= **
Aritmticamente diferente
Programacin Lgico
El paradigma lgico diere de forma importante de otros paradigmas. No slo en su sintaxis o semntica, sino que en l la lgica representa conocimiento, el cual es manipulado mediante inferencias. A diferencia de los dems paradigmas, trabajar en este signica especicar qu hacer y no cmo hacerlo, por ello son llamados lenguajes declarativos. El proceso general de la programacin lgica es que a partir de un conjunto de reglas (axiomas) e inferencias podamos comprobar nuevas proposiciones que nos sean relevantes. Este proceso est basado en reglas de lgica de primer orden. Al ser un paradigma bastante abstracto vale la pena esclarecerlo a travs de algunos ejemplos. Aunque Prolog es el lenguaje ms representativo en este paradigma, har los ejemplos en Structured Query Language (SQL), un lenguaje para operar bases de datos y el cual representa otra de las aplicaciones de la programacin lgica.
10
Fundamentos De Programacin
Paradigmas de la programacin
Programacin Declarativa
Un lenguaje declarativo es un tipo de lenguaje de programacin basado ms en las matemticas y en la lgica que los lenguajes imperativos, ms cercanos estos al razonamiento humano. Los lenguajes declarativos no dicen cmo hacer una cosa, sino, ms bien, qu cosa hacer. A diferencia de los imperativos, no suele haber declaracin de variables ni tipos.
11
Paradigmas de la programacin
software, porque, hasta cierto grado, cada componente es independiente de los dems, lo que permite que estos componentes puedan ser reutilizados y reciclados, incluso, a lo largo de distintos proyectos. Es posible que esta modularidad haya colocado a la programacin orienta da a objetos en la posicin dominante en la que se encuentra ahora, dado que le ha permitido a la industria encontrar nuevas formas de trabajo y patrones de diseo ms productivos. Gran parte de los lenguajes ms utilizados hoy en da estn orientados a objetos, entre ellos se encuentran: Java, C++, PHP, Python, C#, Delphi, Ruby, D y Actionscript, entre otros.
Conclusin
Como conclusin, slo quiero recalcar que en la actualidad no existe una frontera bien denida para cada paradigma. Los lenguajes actuales, como Ruby, Actionscript oC# pueden ser mejor denidos como multiparadigmas. Involucran caractersticas dems de uno solo. Tambin quiero mencionar que estos cuatro paradigmas no son los nicos que existen y hay muchos otros que parecen relevantes, como la programacin a aspectos, o que han sido ampliamente usados, como la programacin a eventos. De cualquier forma, cualquier tipo de programacin involucra los elementos mencionados en este traba- jo. Finalmente, pienso que la comprensin de todos estos conceptos es signicativamente ms sencilla al ponerlos en prctica. As que si hay algo que an te parece misterioso e inexplicable una buena forma de resolverlo es programando.
12
Fundamentos De Programacin
Paradigmas de la programacin
Bibliografia
http://html.rincondelvago.com/lenguajes-de-programacion_10.html http://www.slideshare.net/yamili7/paradigmas-de-programacion http://jorgesaavedra.wordpress.com/2007/05/05/lenguajes-de-programacion/ http://www.larevistainformatica.com/historia-lenguajes-programacion.htm http://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3n http://es.scribd.com/doc/9174723/Paradigmas-de-Programacion http://giannicicero-udec.angelfire.com/
13
Fundamentos De Programacin