Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Algunos lenguajes han sido diseados por personas nicas, como por ejemplo Pascal. Otros, han sido diseados por un grupo grande de personas, tales como PL/l y Ada. La experiencia sugiere que aquellos lenguajes diseados por personas nicas o grupos pequeos, tienden a ser ms compactos y coherentes que aquellos lenguajes diseados por grandes grupos.
Un lenguaje de programacin, digno de su nombre, debe reunir ciertos requisitos. El lenguaje de programacin debe ser universal. Es decir, cualquier problema debe tener una solucin que puede ser programada en el lenguaje y dicha solucin ser implementada en cualquier computador. Este requisito es uno de los ms fuertes y pocos lenguajes lo poseen. Se dice que cualquier lenguaje en el cual pueden definirse funciones recursivas se considera universal. De otro lado, un lenguaje sin recursin ni iteracin no puede ser universal. Existen ciertos lenguajes de aplicacin que no son universales, pero s podran ser razonablemente descritos as mismos, como lenguajes de programacin. El lenguaje de programacin debe ser implementable en una computadora, es decir; debe ser posible ejecutar un programa en trminos del lenguaje en cualquier mquina. La notacin matemtica generalmente no es implementable porque en su notacin es posible formular problemas que no pueden ser resueltos por cualquier computador. Los lenguajes naturales tampoco son implementables por razones totalmente diferentes: ellos son tan imprecisos y tienden a ser muy ambiguos. SINTAXIS Y SEMNTICA Cada lenguaje tiene sintaxis y semntica: La sintaxis de un lenguaje de programacin est relacionada con la forma de los programas, por ejemplo, como es que las expresiones, comandos, declaraciones, etc. son puestos juntos en un programa. La semntica de un lenguaje de programacin est relacionada con el significado de los programas; por ejemplo, cmo ellos se comportarn cuando se ejecutan en una computadora.
La sintaxis de un lenguaje influye en cmo los programas son escritos por el programador, ledos por otro programador y traducidos por el computador. La semntica de un lenguaje determina como los programas son compuestos por el programador, entendidos por otros programadores e interpretados por el computador. La sintaxis es importante; pero la semntica es ms importante an
PARADIGMAS DE LA PROGRAMACIN Para que una computadora realice una tarea, debe programrsela para que lo haga colocando en la memoria principal un algoritmo apropiado el cual es expresado en lenguaje mquina. En los inicios de la programacin, esta tarea era gravosa por lo laborioso y difcil de disear cada algoritmo. Sin contar los errores en que se podra incurrir. El gran paso se dio cuando se empez a dar el uso fcil de las operaciones de memoria a los diversos cdigos de operacin y a los operandos del lenguaje de mquina. Con esto, los programadores pudieron aumentar considerablemente la comprensibilidad de las secuencias de instrucciones mquina.
Un paradigma de programacin es una propuesta tecnolgica que es adoptada por una comunidad de programadores cuyo ncleo central es incuestionable en cuanto a que explcitamente trata de resolver uno o varios problemas claramente delimitados. La resolucin de estos problemas debe suponer consecuentemente un avance significativo en al menos un parmetro que afecte a la ingeniera de software. Tiene una estrecha relacin con la formalizacin de determinados lenguajes en su momento de definicin. Un paradigma de programacin est delimitado en el tiempo en cuanto a aceptacin y uso ya que nuevos paradigmas aportan nuevas o mejores soluciones que la sustituyen parcial o totalmente. Ejemplo: Probablemente el paradigma de programacin que actualmente es el ms usado a todos los niveles es la orientacin a objeto. El ncleo central de este paradigma es la unin de datos y procesamiento en una entidad llamada "objeto", relacionable a su vez con otras entidades objeto.
Programacin declarativa
La Programacin Declarativa, es un paradigma de programacin que est basado en el desarrollo de programas especificando 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. No existen asignaciones destructivas, y las variables son utilizadas con Transparencia referencial Programacin estructurada La programacin estructurada es una forma de escribir programas de ordenador (programacin de computadora) de manera clara. Para ello utiliza nicamente tres estructuras: secuencia, seleccin e iteracin; siendo innecesario el uso de la instruccin o instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION, EXIT SUB o mltiples RETURN). Hoy las aplicaciones informticas son mucho ms ambiciosas que las necesidades de programacin existentes en los aos atrs, principalmente debido a las aplicaciones grficas, por lo que las tcnicas de programacin estructurada no son suficientes. Ello ha llevado al desarrollo de nuevas tcnicas, tales como la programacin orientada a objetos y el desarrollo de entornos de programacin que facilitan la programacin de grandes aplicaciones. Programacin dirigida por eventos La programacin dirigida por eventos es un paradigma de programacin en el que tanto la estructura como la ejecucin de los programas van determinados por los sucesos que ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen. Para entender la programacin dirigida por eventos, podemos oponerla a lo que no es. El creador de un programa dirigido por eventos debe definir los eventos que manejarn su programa y las acciones que se realizarn al producirse cada uno de ellos, lo que se conoce como el administrador de evento. Los eventos soportados estarn determinados por el lenguaje de programacin utilizado, por el sistema operativo e incluso por eventos creados por el mismo programador. En la programacin dirigida por eventos, al comenzar la ejecucin del programa se llevarn a cabo las inicializaciones y dems cdigo inicial y a continuacin el programa quedar bloqueado hasta que se produzca algn evento. Cuando alguno de los eventos esperados por el programa tenga lugar, el programa pasar a ejecutar el cdigo del correspondiente administrador de evento. Por ejemplo, si el evento consiste en que el usuario ha hecho clic en el botn de play de un reproductor de pelculas, se ejecutar el cdigo del administrador de evento, que ser el que haga que la pelcula se muestre por pantalla. Programacin modular La programacin modular es un paradigma de programacin que consiste en dividir un programa en mdulos o subprogramas con el fin de hacerlo ms legible y manejable. Se presenta histricamente como una evolucin de la programacin estructurada para solucionar problemas de programacin ms grandes y complejos de lo que sta puede resolver. Al aplicar la programacin modular, un problema complejo debe ser dividido en varios subproblemas ms simples, y estos a su vez en otros subproblemas ms simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser resueltos fcilmente con algn lenguaje de programacin. sta tcnica se llama refinamiento sucesivo, divide y vencers o anlisis descendente (Top-Down). Programacin orientada a objetos La programacin orientada a objetos o POO es un paradigma de programacin que usa objetos y sus interacciones, para disear aplicaciones y programas informticos. Est basado en varias tcnicas, incluyendo herencia, abstraccin, polimorfismo y encapsulamiento. Su uso se populariz a principios de la dcada de los aos 1990. En la actualidad, existe variedad de lenguajes de programacin que soportan la orientacin a objetos. Programacin con restricciones La Programacin con restricciones es un paradigma de la programacin en informtica, donde las relaciones entre las variables son expresadas en trminos de restricciones (ecuaciones). Actualmente es usada como una tecnologa de software para la descripcin y resolucin de problemas combinatorios particularmente difciles, especialmente en las reas de planificacin y programacin de tareas sea la calendarizacin.
La programacin a nivel funcional es unos de los dos paradigmas contrastantes identificados por John Backus en su trabajo sobre los Programas como objetos matemticos, siendo el otro la programacin a nivel de valores. Un programa de nivel funcional no necesita la nocin de variable, dado que las variables, que son elemento esencial en las definiciones a nivel de valores no hacen falta en el nivel funcional. En el estilo de programacin de nivel funcional los programas se escriben como combinacin de otros programas con la ayuda de las operaciones de construccin de programas o funcionales. Bajo este enfoque los programas, con los funcionales como operadores, forman un espacio matemtico. Programacin Orientada a Aspectos La Programacin Orientada a Aspectos (POA) es un paradigma de programacin relativamente reciente cuya intencin es permitir una adecuada popularizacin de las aplicaciones y posibilitar una mejor separacin de incumbencias. Gracias a la POA se pueden encapsular los diferentes conceptos que componen una aplicacin en entidades bien definidas, eliminando las dependencias entre cada uno de los mdulos. De esta forma se consigue razonar mejor sobre los conceptos, se elimina la dispersin del cdigo y las implementaciones resultan ms comprensibles, adaptables y reusables. Varias tecnologas con nombres diferentes se encaminan a la consecucin de los mismos objetivos y as, el trmino POA es usado para referirse a varias tecnologas relacionadas como los mtodos adaptativos, los filtros de composicin, la programacin orientada a sujetos o la separacin multidimensional de competencias.
Se acerca mucho a las especificaciones del problema realizada con lenguajes formales
Consta de una estructura donde se va ejecutando paso a paso. Debe tener una secuencia y lgica para que sea eficiente.
Es moderna y es una evolucin de programacin estructurada. Se basa en lenguajes que soportan sintctica y semnticamente la unin entre los tipos abstractos de datos. Pretender resolver un problema identificando los actores que tienen participacin en el problema e identificando sus acciones. No pueden ser modelados con exactitud por el modelo de objetos. Si se fuerza el lenguaje en la POO se pierden algunas caractersticas de los lenguajes utilices funcionales. No puede coincidir con la visin de otro programador. Y requieren una extensa documentacin.
Un sistema tendr una estructura y una buena presentacin. Facilidad de comprensin del contenido y se facilita el chequeo de la codificacin y reducir el tiempo de prueba y depuracin de programas. Es una programacin de alta precisin como nunca antes haba sido lograda. Bajo costo
Sencillez elegancia
potencia
de
la de
Principal inconveniente es que se obtiene un nico bloque de programa, que cuando se hace demasiado grande puede resultar problemtico su manejo.
DESVENTAJAS Al permitir y depender de efectos colaterales, y uso de variables globales dificulta notablemente la depuracin y paralizacin y la habilidad para dividir el trabajo en mucho hilos.
Poco eficiente
en
Resulta alejado del modelo de la mquina de von Neum ann y la eficiencia de ejecucin de los interpretes de lenguajes funcionales no es comparable con la ejecucin de los programas imperativos pre compilados,. Las variables solo pueden tener asignado un solo valor a lo largo de la ejecucin del programa.
RESUMEN: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). 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.