+ All Categories
Home > Documents > Paradimas de Programacion

Paradimas de Programacion

Date post: 04-Jun-2018
Category:
Upload: tatiizz-villalobos
View: 217 times
Download: 0 times
Share this document with a friend

of 37

Transcript
  • 8/13/2019 Paradimas de Programacion

    1/37

  • 8/13/2019 Paradimas de Programacion

    2/37

    INDICE

    1. INTRODUCCION

    2. DEFINICIN DE PARADIGMA DE PROGRAMACIN

    3. TIPOS DE PARADIGMAS DE PROGRAMACINo 3.1.-IMPERATIVAo 3.2-FUNCIONALo LGICAo FUNCIONALo DECLARATIVAo ESTRUCTURADAo DIRIGIDA A EVENTOSo MODULAo ORIENTADA A OBJETOSo

    CON RESTRICCIONESo A NIVEL FUNCIONALo ORIENTADA A COMPONENTESo ORIENTADA A ASPECTOS

    4. DEFINICIN DE LENGUAJE DE PROGRAMACIN

    5. HISTORIA DEL LENGUAJE DE PROGRAMACIN

    6. TIPOS DE LENGUAJE DE PROGRAMACINo LENGUAJES COMPILADOSo LENGUAJES INTERPRETADOSo LENGUAJE MAQUINAo LENGUAJE DE BAJO NIVELo LENGUAJE DE ALTO NIVEL

    7. ALGUNOS LENGUAJES DE ALTO NIVEL

    o FORTRANo COCOLo PL/Io BASICo PASCALo Co MODULA 2o ADAo LISPo LOGOo RPGo ALGOLo APL

  • 8/13/2019 Paradimas de Programacion

    3/37

    o PILOTo SMALLTALKo FORTHo C++o DELPHIo

    JAVAo JAVA SCRIPTo HTMLo HYPERTALKo PERLo PHPo PROLONGo SQLo ASP

    8. CONCLUSIN

    9. BIBLIOGRAFA

    I

  • 8/13/2019 Paradimas de Programacion

    4/37

    1.-INTRODUCCIONEl objetivo de este trabajo es entender que es un paradigma deprogramacin, cules son sus tipos, tambin es saber que para poderrealizar un paradigma se necesita de un lenguaje de programacin elcual nos va a permitir poder programar o sea que para que exista unparadigma debe haber un lenguaje el cual este su funcin es tener unacomunicacin con la maquina el cual este se ejecutara y obtendremos unnuevo programa capaz de realizar cualquier funcin que nosotros leordenemos al maquina y esta lo llevara a cabio como sabemos estoslenguajes fueron evolucionando a travs de las necesidades que tena elhombre y en este trabajo tambin se encontraran la evolucin o lahistoria de cmo fueron apareciendo los lenguajes como java que es elms utilizado y tambin en este me enfoque en la programacinorientados a objetos esperando que esta investigacin me lleve a

    comprender cada uno de estos aspectos y saber programar aunque seacon un lenguaje de programacin.

  • 8/13/2019 Paradimas de Programacion

    5/37

    2.-PARADIGMAS DE PROGRAMACIN

    Un paradigma de programacin es una propuesta tecnolgica que es adoptada por

    una comunidad de programadores cuyo ncleo central es incuestionable en cuanto aque unvocamente trata de resolver uno o varios problemas claramente delimitados.La resolucin de estos problemas debe suponer consecuentemente un avancesignificativo en al menos un parmetro que afecte a la ingeniera de software. Tieneuna estrecha relacin con la formalizacin de determinados lenguajes en sumomento de definicin. Un paradigma de programacin est delimitado en el tiempoen cuanto a aceptacin y uso ya que nuevos paradigmas aportan nuevas o mejoressoluciones 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 launin de datos y procesamiento en una entidad llamada "objeto", relacionable a suvez con otras entidades "objeto".Tradicionalmente datos y procesamiento se han separado en reas diferente deldiseo y la implementacin de software. Esto provoc que grandes desarrollostuvieran problemas de fiabilidad, mantenimiento, adaptacin a los cambios yescalabilidad. Con la orientacin a objetos y caractersticas como el encapsulado,polimorfismo o la herencia se permiti un avance significativo en el desarrollo desoftware a cualquier escala de produccin.

    La orientacin a objeto parece estar ligado en sus orgenes con lenguajes como Lispy Simula aunque el primero que acuo el ttulo de programacin orientada a objetosfue Smaltalk.

    3.-TIPOS DE PARADIGMAS DE PROGRAMACIN

    Programacin Imperativa

    La programacin imperativa, en contraposicin a la programacin declarativa es unparadigma de programacin que describe la programacin en trminos del estado delprograma y sentencias que cambian dicho estado. Los programas imperativos son un

    conjunto de instrucciones que le indican al computador cmo realizar una tarea. Laimplementacin de hardware de la mayora de computadores es imperativa;prcticamente todo el hardware de los computadores est diseado para ejecutarcdigo de mquina, que es nativo al computador, escrito en una forma imperativa.Esto se debe a que el hardware de los computadores implementa el paradigma delas Mquinas de Turing. Desde esta perspectiva de bajo nivel, el estilo del programaest definido por los contenidos de la memoria, y las sentencias son instrucciones enel lenguaje de mquina nativo del computador (por ejemplo el lenguaje

  • 8/13/2019 Paradimas de Programacion

    6/37

  • 8/13/2019 Paradimas de Programacion

    7/37

    Los lenguajes de programacin funcional, especialmente los que son puramentefuncionales, han sido enfatizados en el ambiente acadmico principalmente y notanto en el desarrollo de software comercial. Sin embargo, lenguajes deprogramacin importantes tales como Scheme, Erlang, Rust, ObjectiveCaml yHaskell, han sido utilizados en aplicaciones comerciales e industriales por muchas

    organizaciones. La programacin funcional tambin es utilizada en la industria atravs de lenguajes de dominio especfico como R (estadstica), Mathematica(matemticas simblicas), J y K (anlisis financiero), F# en Microsoft.NET y XSLT(XML). Lenguajes de uso especfico usados comnmente como SQL y Lex/Yacc,utilizan algunos elementos de programacin funcional, especialmente al procesarvalores mutables. Las hojas de clculo tambin pueden ser consideradas lenguajesde programacin funcional.

    La programacin funcional tambin puede ser desarrollada en lenguajes que noestn diseados especficamente para la programacin funcional. En el caso dePerl,por ejemplo, que es un lenguaje de programacin imperativo, existe un libro quedescribe como aplicar conceptos de programacin funcional. JavaScript, uno de loslenguajes ms ampliamente utilizados en la actualidad, tambin incorporacapacidades de programacin funcional.

    Caractersticas

    Los programas escritos en un lenguaje funcional estn constituidos nicamente pordefiniciones de funciones, entendiendo stas no como subprogramas clsicos de unlenguaje imperativo, sino como funciones puramente matemticas, en las que severifican ciertas propiedades como latransparencia referencial (el significado de unaexpresin depende nicamente del significado de sus expresiones), y por tanto, lacarencia total deefectos colaterales.

    Otras caractersticas propias de estos lenguajes son la no existencia de asignacionesde variables y la falta de construcciones estructuradas como la secuencia o laiteracin (lo que obliga en la prctica a que todas las repeticiones de instrucciones selleven a cabo por medio defunciones recursivas).

    Existen dos grandes categoras de lenguajes funcionales: los funcionales puros y loshbridos. La diferencia entre ambos estriba en que los lenguajes funcionales hbridosson menos dogmticos que los puros, al admitir conceptos tomados de loslenguajesimperativos,como las secuencias de instrucciones o la asignacin de variables. Encontraste, los lenguajes funcionales puros tienen una mayor potencia expresiva,conservando a la vez su transparencia referencial, algo que no se cumple siemprecon un lenguaje funcional hbrido.

    Ventajas de usar un paradigma funcional

    Entre las ventajas que suelen citarse de usar un paradigma funcional en laprogramacin de computadoras, estn las siguientes:1

    http://es.wikipedia.org/wiki/Schemehttp://es.wikipedia.org/wiki/Erlanghttp://es.wikipedia.org/wiki/Rust_%28lenguaje_de_programaci%C3%B3n%29http://es.wikipedia.org/wiki/Objective_CAMLhttp://es.wikipedia.org/wiki/Haskellhttp://es.wikipedia.org/wiki/Perlhttp://es.wikipedia.org/wiki/Transparencia_referencialhttp://es.wikipedia.org/wiki/Efecto_secundario_%28computaci%C3%B3n%29http://es.wikipedia.org/wiki/Recursi%C3%B3nhttp://es.wikipedia.org/wiki/Programaci%C3%B3n_imperativahttp://es.wikipedia.org/wiki/Programaci%C3%B3n_imperativahttp://es.wikipedia.org/wiki/Programaci%C3%B3n_funcional#cite_note-1http://es.wikipedia.org/wiki/Programaci%C3%B3n_funcional#cite_note-1http://es.wikipedia.org/wiki/Programaci%C3%B3n_funcional#cite_note-1http://es.wikipedia.org/wiki/Programaci%C3%B3n_funcional#cite_note-1http://es.wikipedia.org/wiki/Programaci%C3%B3n_imperativahttp://es.wikipedia.org/wiki/Programaci%C3%B3n_imperativahttp://es.wikipedia.org/wiki/Recursi%C3%B3nhttp://es.wikipedia.org/wiki/Efecto_secundario_%28computaci%C3%B3n%29http://es.wikipedia.org/wiki/Transparencia_referencialhttp://es.wikipedia.org/wiki/Perlhttp://es.wikipedia.org/wiki/Haskellhttp://es.wikipedia.org/wiki/Objective_CAMLhttp://es.wikipedia.org/wiki/Rust_%28lenguaje_de_programaci%C3%B3n%29http://es.wikipedia.org/wiki/Erlanghttp://es.wikipedia.org/wiki/Scheme
  • 8/13/2019 Paradimas de Programacion

    8/37

    o Ausencia de efectos colateraleso Proceso dedepuracin menos problemticoo Pruebas de unidades ms confiableso Mayor facilidad para la ejecucin concurrente

    Programacin declarativa

    La Programacin Declarativa, es un paradigma de programacin que est basado enel desarrollo de programas especificando o "declarando" un conjunto de condiciones,proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones quedescriben el problema y detallan su solucin. La solucin es obtenida mediantemecanismos internos de control, sin especificar exactamente cmo encontrarla (tanslo se le indica a la computadora que es lo que se desea obtener o que es lo que seest buscando). No existen asignaciones destructivas, y las variables son utilizadascon 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 tresestructuras: secuencia, seleccin e iteracin; siendo innecesario el uso de lainstruccin o instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION,EXIT SUB o mltiples RETURN).Hoy en da las aplicaciones informticas son mucho ms ambiciosas que lasnecesidades de programacin existentes en los aos 1960, principalmente debido alas aplicaciones grficas, por lo que las tcnicas de programacin estructurada noson suficientes. Ello ha llevado al desarrollo de nuevas tcnicas, tales como laprogramacin orientada a objetos y el desarrollo de entornos de programacin quefacilitan la programacin de grandes aplicaciones.

    Programacin dirigida por eventos

    La programacin dirigida por eventos es un paradigma de programacin en el quetanto la estructura como la ejecucin de los programas van determinados por lossucesos que ocurran en el sistema, definidos por el usuario o que ellos mismosprovoquen.Para entender la programacin dirigida por eventos, podemos oponerla a lo que noes: mientras en la programacin secuencial (o estructurada) es el programador elque define cul va a ser el flujo del programa, en la programacin dirigida poreventos ser el propio usuario o lo que sea que est accionando el programaelque dirija el flujo del programa. Aunque en la programacin secuencial puede haberintervencin de un agente externo al programa, estas intervenciones ocurrirncuando el programador lo haya determinado, y no en cualquier momento comopuede ser en el caso de la programacin dirigida por eventos.

    http://es.wikipedia.org/wiki/Depuraci%C3%B3n_de_programashttp://es.wikipedia.org/wiki/Depuraci%C3%B3n_de_programas
  • 8/13/2019 Paradimas de Programacion

    9/37

    El creador de un programa dirigido por eventos debe definir los eventos quemanejarn su programa y las acciones que se realizarn al producirse cada uno deellos, lo que se conoce como el administrador de evento. Los eventos soportadosestarn determinados por el lenguaje de programacin utilizado, por el sistemaoperativo e incluso por eventos creados por el mismo programador.

    En la programacin dirigida por eventos, al comenzar la ejecucin del programa sellevarn a cabo las inicializaciones y dems cdigo inicial y a continuacin elprograma quedar bloqueado hasta que se produzca algn evento. Cuando algunode los eventos esperados por el programa tenga lugar, el programa pasar a ejecutarel cdigo del correspondiente administrador de evento. Por ejemplo, si el eventoconsiste en que el usuario ha hecho click en el botn de play de un reproductor depelculas, se ejecutar el cdigo del administrador de evento, que ser el que hagaque la pelcula se muestre por pantalla.Un ejemplo claro lo tenemos en los sistemas de programacin Lxico y Visual Basic,en los que a cada elemento del programa (objetos, controles, etctera) se le asignanuna serie de eventos que generar dicho elemento, como la pulsacin de un botndel ratn sobre l o el redibujado del control.La programacin dirigida por eventos es la base de lo que llamamos interfaz deusuario, aunque puede emplearse para desarrollar interfaces entre componentes deSoftware como mdulos del ncleo tambin.En los primeros tiempos de la computacin, los programas eran secuenciales,tambin llamados Batch. Un programa secuencial arranca, lee parmetros deentrada, procesa estos parmetros, y produce un resultado, todo de manera lineal ysin intervencin del usuario mientras se ejecuta.Con la aparicin y popularizacin de los PC, el software empez a ser demandadopara usos alejados de los clsicos acadmicos y empresariales para los cuales eranecesitado hasta entonces, y qued patente que el paradigma clsico deprogramacin no poda responder a las nuevas necesidades de interaccin con elusuario que surgieron a raz de este hecho.

    Programacin modular

    La programacin modular es un paradigma de programacin que consiste en dividirun programa en mdulos o subprogramas con el fin de hacerlo ms legible ymanejable.Se presenta histricamente como una evolucin de la programacin estructuradapara solucionar problemas de programacin ms grandes y complejos de lo que stapuede resolver.Al aplicar la programacin modular, un problema complejo debe ser dividido envarios subproblemas ms simples, y estos a su vez en otros subproblemas mssimples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simplescomo para poder ser resueltos fcilmente con algn lenguaje de programacin. statcnica se llama refinamiento sucesivo, divide y vencers anlisis descendente(Top-Down).Un mdulo es cada una de las partes de un programa que resuelve uno de lossubproblemas en que se divide el problema complejo original. Cada uno de estos

  • 8/13/2019 Paradimas de Programacion

    10/37

    mdulos tiene una tarea bien definida y algunos necesitan de otros para poderoperar. En caso de que un mdulo necesite de otro, puede comunicarse con stemediante una interfaz de comunicacin que tambin debe estar bien definida.Si bien un mdulo puede entenderse como una parte de un programa en cualquierade sus formas y variados contextos, en la prctica es comn representarlos con

    procedimientos y funciones. Adicionalmente, tambin pueden considerarse mduloslas libreras que pueden incluirse en un programa o, en programacin orientada aobjetos, la implementacin de un tipo de dato abstracto.

    Programacin orientada a objetos

    La programacin orientada a objetos o POO (OOP segn sus siglas en ingls) es unparadigma de programacin que usa objetos y sus interacciones, para disearaplicaciones y programas informticos. Est basado en varias tcnicas, incluyendoherencia, abstraccin, polimorfismo y encapsulamiento. Su uso se populariz aprincipios de la dcada de los aos 1990. En la actualidad, existe variedad delenguajes de programacin que soportan la orientacin a objetos.

    Los conceptos de la programacin orientada a objetos tienen origen enSimula 67,unlenguaje diseado para hacer simulaciones, creado por Ole-Johan Dahl y KristenNygaard,del Centro de Cmputo Noruego enOslo.En este centro se trabajaba ensimulaciones de naves, que fueron confundidas por la explosin combinatoria decmo las diversas cualidades de diferentes naves podan afectar unas a las otras. Laidea surgi al agrupar los diversos tipos de naves en diversas clases de objetos,siendo responsable cada clase de objetos de definir sus propios datos ycomportamientos. Fueron refinados ms tarde en Small talk,desarrollado en SimulaenXerox PARC (cuya primera versin fue escrita sobre Basic)pero diseado paraser un sistema completamente dinmico en el cual los objetos se podran crear ymodificar "sobre la marcha" (en tiempo de ejecucin) en lugar de tener un sistemabasado en programas estticos.

    La programacin orientada a objetos se fue convirtiendo en el estilo de programacindominante a mediados de los aos ochenta, en gran parte debido a la influencia deC++,una extensin dellenguaje de programacin C.Su dominacin fue consolidadagracias al auge de lasInterfaces grficas de usuario,para las cuales la programacinorientada a objetos est particularmente bien adaptada. En este caso, se hablatambin deprogramacin dirigida por eventos.

    Las caractersticas de orientacin a objetos fueron agregadas a muchos lenguajesexistentes durante ese tiempo, incluyendoAda,BASIC,Lisp yPascal,entre otros. Laadicin de estas caractersticas a los lenguajes que no fueron diseados inicialmentepara ellas condujo a menudo a problemas de compatibilidad y en la capacidad demantenimiento del cdigo. Los lenguajes orientados a objetos "puros", por su parte,carecan de las caractersticas de las cuales muchos programadores haban venido adepender. Para saltar este obstculo, se hicieron muchas tentativas para crearnuevos lenguajes basados en mtodos orientados a objetos, pero permitiendo

    http://es.wikipedia.org/wiki/Simulahttp://es.wikipedia.org/wiki/Ole-Johan_Dahlhttp://es.wikipedia.org/wiki/Kristen_Nygaardhttp://es.wikipedia.org/wiki/Kristen_Nygaardhttp://es.wikipedia.org/wiki/Oslohttp://es.wikipedia.org/wiki/Smalltalkhttp://es.wikipedia.org/wiki/Xerox_PARChttp://es.wikipedia.org/wiki/Basichttp://es.wikipedia.org/wiki/C%2B%2Bhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Chttp://es.wikipedia.org/wiki/Interfaz_gr%C3%A1fica_de_usuariohttp://es.wikipedia.org/wiki/Programaci%C3%B3n_dirigida_por_eventoshttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Adahttp://es.wikipedia.org/wiki/BASIChttp://es.wikipedia.org/wiki/Lisphttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Pascalhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Pascalhttp://es.wikipedia.org/wiki/Lisphttp://es.wikipedia.org/wiki/BASIChttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Adahttp://es.wikipedia.org/wiki/Programaci%C3%B3n_dirigida_por_eventoshttp://es.wikipedia.org/wiki/Interfaz_gr%C3%A1fica_de_usuariohttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Chttp://es.wikipedia.org/wiki/C%2B%2Bhttp://es.wikipedia.org/wiki/Basichttp://es.wikipedia.org/wiki/Xerox_PARChttp://es.wikipedia.org/wiki/Smalltalkhttp://es.wikipedia.org/wiki/Oslohttp://es.wikipedia.org/wiki/Kristen_Nygaardhttp://es.wikipedia.org/wiki/Kristen_Nygaardhttp://es.wikipedia.org/wiki/Ole-Johan_Dahlhttp://es.wikipedia.org/wiki/Simula
  • 8/13/2019 Paradimas de Programacion

    11/37

    algunas caractersticas imperativas de maneras "seguras". El Eiffel de BertrandMeyer fue un temprano y moderadamente acertado lenguaje con esos objetivos, peroahora ha sido esencialmente reemplazado por Java, en gran parte debido a laaparicin de Internet y a la implementacin de la mquina virtual de Java en lamayora de navegadores. PHP en su versin 5 se ha modificado; soporta una

    orientacin completa a objetos, cumpliendo todas las caractersticas propias de laorientacin a objetos.

    Este es el paradigma que las comunidades de programadores han tenido ms indicede adaptacin en la actualidad debido a que permite procesar grandes cantidades deinformacin al clasificar a las entidades que forman parte de la problemtica en"plantillas" que contienen todas las propiedades y los procedimientos que pueden serrealizados por esa entidad. Estas plantillas son llamadas clases y la manipulacin deun ejemplar en especfico es su objeto. Este tipo de paradigma permite que variosconceptos relacionados con l (entre los clave Herencia, Encapsulacin,Polimorfismo) nos permitan un manejo eficiente de grandes cantidades deinformacin. Es usando comnmente para la creacin de grandes programas comovideojuegos, los cuales manejan grandes cantidades de datos.

    En la Programacin Orientada a Objetos (POO u OOP segn siglas en ingls) sedefinen los programas en trminos de "clases de objetos", objetos que son entidadesque combinan estado (es decir, datos) comportamiento (esto es, procedimientos omtodos) e identidad (propiedad del objeto que lo diferencia del resto). Laprogramacin orientada a objetos expresa un programa como un conjunto de estosobjetos, que colaboran entre ellos para realizar tareas. Esto permite hacer losprogramas mdulos ms fciles de escribir, mantener y reutilizar.

    De esta forma, un objeto contiene toda la informacin, (los denominados atributos)que permite definirlo e identificarlo frente a otros objetos pertenecientes a otrasclases (e incluso entre objetos de la misma clase, al poder tener valores biendiferenciados en sus atributos). A su vez, dispone de mecanismos deinteraccin (losllamados mtodos) que favorecen la comunicacin entre objetos (de una mismaclase o de distintas), y en consecuencia, elcambio de estado en los propios objetos.Esta caracterstica lleva a tratarlos como unidades indivisibles, en las que no seseparan (ni deben separarse) informacin (datos) y procesamiento (mtodos).

    Dada esta propiedad de conjunto de una clase de objetos, que al contar con unaserie de atributos definitorios, requiere de unos mtodos para poder tratarlos (lo quehace que ambos conceptos estn ntimamente entrelazados), el programador debepensar indistintamente en ambos trminos, ya que no debe nunca separar o darmayor importancia a los atributos a favor de los mtodos, ni viceversa. Hacerlopuede llevar al programador a seguir el hbito errneo de crear clases contenedorasde informacin por un lado y clases con mtodos que manejen esa informacin porotro (llegando a una programacin estructurada camuflada en un lenguaje deprogramacin orientada a objetos).

    http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Eiffelhttp://es.wikipedia.org/wiki/Java_%28lenguaje_de_programaci%C3%B3n%29http://es.wikipedia.org/wiki/Internethttp://es.wikipedia.org/wiki/Navegadoreshttp://es.wikipedia.org/wiki/PHPhttp://www.monografias.com/trabajos16/manual-ingles/manual-ingles.shtmlhttp://www.monografias.com/trabajos/objetos/objetos.shtmlhttp://www.monografias.com/trabajos901/interaccion-comunicacion-exploracion-teorica-conceptual/interaccion-comunicacion-exploracion-teorica-conceptual.shtmlhttp://www.monografias.com/trabajos2/mercambiario/mercambiario.shtmlhttp://www.monografias.com/Computacion/Programacion/http://www.monografias.com/Computacion/Programacion/http://www.monografias.com/Computacion/Programacion/http://www.monografias.com/Computacion/Programacion/http://www.monografias.com/trabajos2/mercambiario/mercambiario.shtmlhttp://www.monografias.com/trabajos901/interaccion-comunicacion-exploracion-teorica-conceptual/interaccion-comunicacion-exploracion-teorica-conceptual.shtmlhttp://www.monografias.com/trabajos/objetos/objetos.shtmlhttp://www.monografias.com/trabajos16/manual-ingles/manual-ingles.shtmlhttp://es.wikipedia.org/wiki/PHPhttp://es.wikipedia.org/wiki/Navegadoreshttp://es.wikipedia.org/wiki/Internethttp://es.wikipedia.org/wiki/Java_%28lenguaje_de_programaci%C3%B3n%29http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Eiffel
  • 8/13/2019 Paradimas de Programacion

    12/37

    Esto difiere de los lenguajes imperativos tradicionales, en los que los datos y losprocedimientos estn separados y sin relacin, ya que lo nico que se busca es elprocesamiento de unos datos y los procedimientos estn separados y sin relacin, yaque lo nico que se busca es el procesamiento de unos datos de entrada paraobtener otros de salida. La programacin estructurada anima al programador a

    pensar sobre todo en trminos de procedimientos o funciones, y en segundo lugar enlas estructuras de datos que esos procedimientos manejan. Los programadores delenguajes imperativos escriben funciones y despus les pasan los datos. Losprogramadores que emplean lenguajes orientados a objetos definen objetos condatos y mtodos y despus envan mensajes a los objetos diciendo que realicenesos mtodos por s mismos.

    Un objeto se puede definir como un grupo de procedimientos que comparten unestado. Se define al conjunto de datos como "estado", y "mtodos" como el conjuntode procedimientos que pueden alterar ese estado. Un programa orientado a objetoses unmtodo de implementacin en el que los programas estn organizados comocolecciones de objetos, donde cada uno es una instancia de alguna clase, y dondetodas las clases son miembros de una jerarqua de clases conectadas por relacionesdeherencia.Este tipo de lenguajes son muy recientes en comparacin a los primeroslenguajes de programacin que aparecieron.

    CONCEPTOS BSICOS DE LA PROGRAMACIN ORIENTADA A OBJETOS

    La programacin orientada a objetos es una nueva forma de programar que trata deencontrar la solucin a problemas de una forma que ofrece muchas ventajas yfacilidades que no se tenan anteriormente. Introduce nuevos conceptos, quesuperan y amplan conceptos antiguos ya conocidos. Entro ellos destacan lossiguientes:

    OBJETO: entidad provista de un conjunto de propiedades o atributos (datos) y decomportamiento o funcionalidad ("mtodos"). Corresponden a los objetos reales delmundo que nos rodea, o a objetos internos del sistema (del programa).

    CLASE: definiciones de las propiedades y comportamiento de un tipo de objetoconcreto. La instanciacin es la lectura de estas definiciones y la creacin de unobjeto a partir de ellas. Una clase es una coleccin de objetos similares o laimplementacin, declaracin o definicin de un tipo de objeto. Cada vez que seconstruye un objeto de una clase se crea una instancia de esa clase. Por ejemplo enVisual Basic, se tiene la clase Form, y se pueden crear instancias de esa clase altener Form1, Form2, etc. As se est creando una instancia de la clase Form.

    MTODO:algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecucinse desencadena tras la recepcin de un "mensaje". Desde el punto de vista delcomportamiento, es lo que el objeto puede hacer. Un mtodo puede producir uncambio en lar propiedades del objeto, o la generacin de un "evento" con un nuevomensaje para otro objeto del sistema.

    http://www.monografias.com/trabajos14/dinamica-grupos/dinamica-grupos.shtmlhttp://www.monografias.com/trabajos11/metods/metods.shtmlhttp://www.monografias.com/trabajos13/heren/heren.shtmlhttp://www.monografias.com/trabajos/histoconcreto/histoconcreto.shtmlhttp://www.monografias.com/trabajos16/metodo-lecto-escritura/metodo-lecto-escritura.shtmlhttp://www.monografias.com/trabajos16/metodo-lecto-escritura/metodo-lecto-escritura.shtmlhttp://www.monografias.com/trabajos/histoconcreto/histoconcreto.shtmlhttp://www.monografias.com/trabajos13/heren/heren.shtmlhttp://www.monografias.com/trabajos11/metods/metods.shtmlhttp://www.monografias.com/trabajos14/dinamica-grupos/dinamica-grupos.shtml
  • 8/13/2019 Paradimas de Programacion

    13/37

    EVENTO: un suceso en el sistema (tal como una interaccin del usuario con lamquina, o un mensaje enviado por un objeto). El sistema maneja el eventoenviando el mensaje adecuado al objeto pertinente.

    MENSAJE:una comunicacin dirigida a un objeto, que le ordena que ejecute uno de

    sus mtodos con ciertos parmetros asociados al evento que lo gener.PROPIEDAD O ATRIBUTO:contenedor de un tipo de datos asociados a un objeto(o a una clase de objetos), que hace los datos visibles desde fuera del objeto, y cuyovalor puede ser alterado por la ejecucin de algn mtodo.

    ESTADO INTERNO: es una propiedad invisible de los objetos, que puedenicamente accedida y alterada por un mtodo del objeto, y que se utiliza paraindicar distintas situaciones posibles para el objeto (o clase de objetos).

    En comparacin con un lenguaje imperativo, una "variable no es ms que un

    contenedor interno del atributo del objeto o de un estado interno, as como la"funcin" es un procedimiento interno del mtodo del objeto.

    CARACTERSTICAS DE LA PROGRAMACIN ORIENTADA A OBJETOS

    Las caractersticas ms importantes de la programacin orientada a objetos son lassiguientes:

    ABSTRACCIN: Cada objeto en el sistema sirve como modelo de un "agente"abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse"con otros objetos en el sistema sin revelar cmo se implementan estascaractersticas. Los procesos, las funciones o los mtodos pueden tambin serabstrados y cuando lo estn, una variedad de tcnicas son requeridas para ampliaruna abstraccin.

    ENCAPSULAMIENTO:tambin llamado "ocultacin de la informacin". Cada objetoest aislado del exterior, es un mdulo natural, y cada tipo de objeto expone unainterfaz a otros objetos que especfica cmo pueden interactuar con los objetos de laclase. El aislamiento protege a las propiedades de un objeto contra su modificacinpor quien no tenga derecho a acceder a ellas, solamente los propios mtodosinternos del objeto pueden acceder a su estado. Esto asegura que otros objetos nopueden cambiar el estado interno de un objeto de maneras inesperadas, eliminandoefectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto,permitiendo un acceso directo a los datos internos del objeto de una maneracontrolada y limitando el grado de abstraccin. La aplicacin entera se reduce a unagregado o rompecabezas de objetos. Esta caracterstica o propiedad permite portanto ejecutar la informacin al resto de los objetos, impidiendo as accesosincorrectos o conflictos.

  • 8/13/2019 Paradimas de Programacion

    14/37

    POLIMORFISMO: comportamientos diferentes, asociados a objetos distintos,pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizar elcomportamiento correspondiente al objeto que se est usando. O dicho de otromodo, las referencias y las colecciones de objetos pueden contener objetos dediferentes tipos, y la invocacin de un comportamiento en una referencia producir el

    comportamiento correcto para el tipo real del objeto referenciado. Por ejemplo enVisual Basic, el polimorfismo se da al tener diferentes tipos de objetos (Form, Label,etc.)

    HERENCIA:las clases no estn aisladas, sino que se relacionan entre s, formandouna jerarqua de clasificacin. Los objetos heredan las propiedades y elcomportamiento de todas las clases a las que pertenecen. La herencia organiza yfacilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos ycreados como tipos especializados de objetos preexistentes. Estos pueden compartir(y extender) su comportamiento sin tener que reimplementar su comportamiento.Esto suele hacerse habitualmente agrupando los objetos en clases y estas enrboles o enrejados que reflejan un comportamiento comn. Cuando un objetopertenece a ms de una clase se dice que hay herencia mltiple; esta caractersticano est soportada por algunos lenguajes (como Java). Con esta propiedad, losobjetos heredan comportamientos dentro de una jerarqua de clases.

    ALGUNOS LENGUAJES ORIENTADOS A OBJETOS

    Entre los lenguajes orientados a objetos ms importantes que se pueden mencionar,aparecen los siguientes:

    o C++o Objective Co Javao Smalltalko Eiffelo Lxico (en castellano)o Rubyo Pythono OCAMLo Object Pascalo CLIPSo Visual .neto Javao Actionscripto COBOLo Perlo C#o Visual Basic.NET

    Programacin con restricciones

    http://www.monografias.com/trabajos15/composicion-follaje/composicion-follaje.shtmlhttp://www.monografias.com/trabajos15/composicion-follaje/composicion-follaje.shtml
  • 8/13/2019 Paradimas de Programacion

    15/37

    La Programacin con restricciones es un paradigma de la programacin eninformtica, donde las relaciones entre las variables son expresadas en trminos derestricciones (ecuaciones). Actualmente es usada como una tecnologa de softwarepara la descripcin y resolucin de problemas combinatorios particularmente difciles,especialmente en las reas de planificacin y programacin de tareas

    (calendarizacin).Este paradigma representa uno de los desarrollos ms fascinantes en los lenguajesde programacin desde 1990 y no es sorprendente que recientemente haya sidoidentificada por la ACM (Asociacin de Maquinaria Computacional) como unadireccin estratgica en la investigacin en computacin.Se trata de un paradigma de programacin basado en la especificacin de unconjunto de restricciones, las cuales deben ser satisfechas por cualquier solucin delproblema planteado, en lugar de especificar los pasos para obtener dicha solucin.La programacin con restricciones se relaciona mucho con la programacin lgica ycon la investigacin operativa. De hecho cualquier programa lgico puede sertraducido en un programa con restricciones y viceversa. Muchas veces losprogramas lgicos son traducidos a programas con restricciones debido a que lasolucin es ms eficiente que su contraparte.La diferencia entre ambos radica principalmente en sus estilos y enfoques en elmodelado del mundo. Para ciertos problemas es ms natural (y por ende mssimple) escribirlos como programas lgicos, mientras que en otros es ms naturalescribirlos como programas con restricciones.El enfoque de la programacin con restricciones se basa principalmente en buscarun estado en el cual una gran cantidad de restricciones sean satisfechassimultneamente. Un problema se define tpicamente como un estado de la realidaden el cual existe un nmero de variables con valor desconocido. Un programabasado en restricciones busca dichos valores para todas las variables.

    Algunos dominios de aplicacin de este paradigma son:

    Dominios booleanos, donde solo existen restricciones del tipo verdadero/falso.Dominios en variables enteras y racionales.Dominios lineales, donde slo se describen y analizan funciones lineales.Dominios finitos, donde las restricciones son definidas en conjuntos finitos.Dominios mixtos, los cuales involucran dos o ms de los anteriores.

    Los lenguajes de programacin con restricciones son tpicamente ampliaciones deotro lenguaje. El primer lenguaje utilizado a tal efecto fue Prolog. Por esta razn esque este campo fue llamado inicialmente Programacin Lgica con Restricciones.

    Ambos paradigmas comparten caractersticas muy similares, tales como las variableslgicas (una vez que una variable es asignada a un valor, no puede ser cambiado), oel back tracking.La programacin con restricciones puede ser implementada como un lenguaje propioo como bibliotecas para ser usadas en algn lenguaje de programacin imperativo.

    Programacin a nivel funcional

  • 8/13/2019 Paradimas de Programacion

    16/37

    La programacin a nivel funcional es unos de los dos paradigmas contrastantesidentificados por John Backus en su trabajo sobre los Programas como objetosmatemticos, siendo el otro la programacin a nivel de valores.En su discurso de aceptacin del Premio Turing en 1977, Backus describi lo queconsidera como la necesidad de un cambio a una filosofa diferente en el diseo de

    lenguajes de programacin:"Pareciera existir un problema en el diseo de los lenguajes de programacin. Cadanuevo lenguaje incorpora, luego de algo de limpieza, todas las caractersticas de loslenguajes anteriores ms algunas otras. [...] Cada nuevo lenguaje presenta nuevascaractersticas de moda... pero el hecho es que pocos lenguajes hacen que la tareade programar sea ms econmica, o ms segura como para justificar el costo deproducirlo y aprender a utilizarlo."El lenguaje de programacin FP fue el primer lenguaje diseado especficamentepara dar soporte al estilo de programacin a nivel funcional.Un programa de nivel funcional no necesita la nocin de variable, dado que lasvariables, 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 comocombinacin de otros programas con la ayuda de las operaciones de construccin deprogramas o funcionales.Bajo este enfoque los programas, con los funcionales como operadores, forman unespacio matemtico.Otra ventaja potencial de este enfoque es la posibilidad de restringirse nicamente alas funciones estrictas y asociarles un mecanismo de evaluacin por valor. que es elms sencillo de implementar. Otra ventaja es la existencia de definiciones de nivelfuncional que no son simplemente el correspondiente de una definicin de nivel devalores. Estas definiciones, a veces un poco crpticas por lo concisas representan unestilo de programacin muy poderoso.Si bien la propuesta de Backus data de los aos 70 ella ha sido poco adoptada por lacomunidad de programacin funcional que han preferido basar sus trabajos en elclculo Lambda.La programacin a nivel funcional en el estilo de FP tiene una fuerte relacin con lalgica combinatoria de Haskell Curry, con los lenguajes de combinadores,antecesores de Miranda y Haskell, as como con las categoras cartesianas cerradas,teora que dio origen al lenguaje CAML (Categorical Abstract Machine Languaje)antecesor del lenguaje Ocaml.

    Programacin a nivel de valores (John Backus)

    La programacin a nivel de valores es unos de los dos paradigmas contrastantesidentificados por John Backus en su trabajo sobre los Programas como objetosmatemticos, siendo el otro la programacin a nivel funcional. El trmino inicialmenteutilizado por Backus fue el de programacin a nivel de objetos, pero en la actualidadese trmino traera confusin con la programacin orientada a objetos.Los programas a nivel de valores describen como combinar diferentes valores (por

  • 8/13/2019 Paradimas de Programacion

    17/37

    ejemplo, nmeros, caracteres, etc.) para formar nuevos valores hasta obtener elresultado final. Los nuevos valores se obtienen como resultado de la aplicacin deoperaciones que transforman valores en otros valores, como por ejemplo, la suma, laconcatenacin, la inversin de matrices, etc. Los lenguajes que siguen el estilo devon Neumann son de nivel de valores: las expresiones a la derecha de una

    asignacin tienen por objeto la creacin del nuevo valor a asignar.

    Programacin orientada a componentes

    Programacin orientada a componentesLa programacin orientada a componentes (que tambin es llamada basada encomponentes) es una rama de la ingeniera del software, con nfasis en ladescomposicin de sistemas ya conformados en componentes funcionales o lgicoscon interfaces bien definidas usadas para la comunicacin entre componentes.Se considera que el nivel de abstraccin de los componentes es ms alto que el delos objetos y por lo tanto no comparten un estado y se comunican intercambiandomensajes que contienen datos.

    Programacin Orientada a Aspectos

    La Programacin Orientada a Aspectos (POA) es un paradigma de programacinrelativamente reciente cuya intencin es permitir una adecuada modularizacin delas aplicaciones y posibilitar una mejor separacin de incumbencias. Gracias a laPOA se pueden encapsular los diferentes conceptos que componen una aplicacinen entidades bien definidas, eliminando las dependencias entre cada uno de losmdulos. De esta forma se consigue razonar mejor sobre los conceptos, se elimina ladispersin del cdigo y las implementaciones resultan ms comprensibles,adaptables y reusables. Varias tecnologas con nombres diferentes se encaminan ala consecucin de los mismos objetivos y as, el trmino POA es usado para referirsea varias tecnologas relacionadas como los mtodos adaptativos, los filtros decomposicin, la programacin orientada a sujetos o la separacin multidimensionalde competencias.

    4.-DEFINICIN DEL LENGUAJE DE PROGRAMACIN

    Un lenguaje de programacin es un lenguaje que puede ser utilizado para controlarel comportamiento de una mquina, particularmente una computadora. Consiste enun conjunto de reglas sintcticas y semnticas que definen su estructura y elsignificado de sus elementos, respectivamente. Aunque muchas veces se usalenguaje de programacin y lenguaje informtico como si fuesen sinnimos, no tienepor qu ser as, ya que los lenguajes informticos engloban a los lenguajes deprogramacin y a otros ms, como, por ejemplo, elHTML.

    http://es.wikipedia.org/wiki/HTMLhttp://es.wikipedia.org/wiki/HTML
  • 8/13/2019 Paradimas de Programacion

    18/37

    Un lenguaje de programacin" es un lenguaje diseado para describir el conjunto deacciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje deprogramacin es un modo prctico para que los seres humanos puedan darinstrucciones a un equipo.

    5.-HISTORIA DE LOS LENGUAJES DE PROGRAMACINLos primeros lenguajes de programacin surgieron de la idea de Charles Babagge, lacual se le ocurri a este hombre a mediados del siglo XIX. Era un profesormatemtico de la universidad de Cambridge e inventor ingles, que al principio delsiglo XIX predijo muchas de las teoras en que se basan los actuales ordenadores.Consista en lo que l denominaba la maquina analtica, pero que por motivostcnicos no pudo construirse hasta mediados del siglo XX. Con l colaboro AdaLovedby, la cual es considerada como la primera programadora de la historia, puesrealizo programas para aqulla supuesta maquina de Babagge, en tarjetasperforadas.

    Como la maquina no llego nunca a construirse, los programas de Ada, lgicamente,tampoco llegaron a ejecutarse, pero si suponen un punto de partida de laprogramacin, sobre todo si observamos que en cuanto se empez a programar, losprogramadores utilizaron las tcnicas diseadas por Charles Babagge, y Ada, queconsistan entre otras, en la programacin mediante tarjetas perforadas. A pesar deello, Ada ha permanecido como la primera programadora de la historia. Se dice portanto que estos dos genios de antao, se adelantaron un siglo a su poca, lo cualdescribe lainteligencia de la que se hallaban dotados.

    En 1823 el gobierno Britnico lo apoyo para crear el proyecto de una mquina de

    diferencias, un dispositivo mecnico para efectuar sumas repetidas. Pero Babaggese dedico al proyecto de la mquina analtica, abandonando la mquina dediferencias, que se pudiera programar con tarjetas perforadas, gracias a la creacinde Charles Jacquard (francs). Este hombre era un fabricante de tejidos y habacreado un telar que poda reproducir automticamente patrones de tejidos, leyendo lainformacin codificada en patrones de agujeros perforados en tarjetas de papelrgido. Entonces Babagge intento crear la mquina que se pudiera programar contarjetas perforadas para efectuar cualquier clculo con una precisin de 20 dgitos.Pero latecnologa de la poca no bastaba para hacer realidad sus ideas. Si bien lasideas de Babagge no llegaron a materializarse de forma definitiva, su contribucin esdecisiva, ya que los ordenadores actuales responden a un esquema anlogo al de la

    mquina analtica. En sudiseo,la mquina constaba de cinco unidades bsicas: 1)Unidad de entrada, para introducir datos e instrucciones; 2) Memoria, donde sealmacenaban datos y resultados intermedios; 3) Unidad de control, para regular lasecuencia de ejecucin de las operaciones; 4) Unidad Aritmtico-Lgica,que efectalas operaciones; 5) Unidad de salida, encargada de comunicar al exterior losresultados. Charles Babbage, conocido como el "padre de la informtica" no pudocompletar en aquella poca laconstruccin del computador que haba soado, dado

    http://www.monografias.com/trabajos15/fundamento-ontologico/fundamento-ontologico.shtmlhttp://www.monografias.com/trabajos27/profesor-novel/profesor-novel.shtmlhttp://www.monografias.com/trabajos13/admuniv/admuniv.shtmlhttp://www.monografias.com/trabajos4/epistemologia/epistemologia.shtmlhttp://www.monografias.com/trabajos10/tarin/tarin.shtmlhttp://www.monografias.com/trabajos6/juti/juti.shtmlhttp://www.monografias.com/trabajos15/inteligencia-emocional/inteligencia-emocional.shtmlhttp://www.monografias.com/trabajos4/derpub/derpub.shtmlhttp://www.monografias.com/trabajos12/pmbok/pmbok.shtmlhttp://www.monografias.com/trabajos5/lacel/lacel.shtmlhttp://www.monografias.com/trabajos7/sisinf/sisinf.shtmlhttp://www.monografias.com/trabajos7/caes/caes.shtmlhttp://www.monografias.com/Tecnologia/index.shtmlhttp://www.monografias.com/trabajos13/diseprod/diseprod.shtmlhttp://www.monografias.com/trabajos11/basda/basda.shtmlhttp://www.monografias.com/trabajos13/memor/memor.shtmlhttp://www.monografias.com/trabajos14/control/control.shtmlhttp://www.monografias.com/trabajos15/logica-metodologia/logica-metodologia.shtmlhttp://www.monografias.com/trabajos11/curinfa/curinfa.shtmlhttp://www.monografias.com/trabajos35/materiales-construccion/materiales-construccion.shtmlhttp://www.monografias.com/trabajos35/materiales-construccion/materiales-construccion.shtmlhttp://www.monografias.com/trabajos11/curinfa/curinfa.shtmlhttp://www.monografias.com/trabajos15/logica-metodologia/logica-metodologia.shtmlhttp://www.monografias.com/trabajos14/control/control.shtmlhttp://www.monografias.com/trabajos13/memor/memor.shtmlhttp://www.monografias.com/trabajos11/basda/basda.shtmlhttp://www.monografias.com/trabajos13/diseprod/diseprod.shtmlhttp://www.monografias.com/Tecnologia/index.shtmlhttp://www.monografias.com/trabajos7/caes/caes.shtmlhttp://www.monografias.com/trabajos7/sisinf/sisinf.shtmlhttp://www.monografias.com/trabajos5/lacel/lacel.shtmlhttp://www.monografias.com/trabajos12/pmbok/pmbok.shtmlhttp://www.monografias.com/trabajos4/derpub/derpub.shtmlhttp://www.monografias.com/trabajos15/inteligencia-emocional/inteligencia-emocional.shtmlhttp://www.monografias.com/trabajos6/juti/juti.shtmlhttp://www.monografias.com/trabajos10/tarin/tarin.shtmlhttp://www.monografias.com/trabajos4/epistemologia/epistemologia.shtmlhttp://www.monografias.com/trabajos13/admuniv/admuniv.shtmlhttp://www.monografias.com/trabajos27/profesor-novel/profesor-novel.shtmlhttp://www.monografias.com/trabajos15/fundamento-ontologico/fundamento-ontologico.shtml
  • 8/13/2019 Paradimas de Programacion

    19/37

    que faltaba algo fundamental: laelectrnica.El camino sealado de Babbage, no fuenunca abandonado y siguindolo, se construyeron las primerascomputadoras.

    En la dcada de los 40 empezaron a surgir los primeros lenguajes de programacinde ordenadores. Estos primeros lenguajes (llamados lenguajes Ensamblador)

    estaban basados en smbolos o nemnicos que se correspondan directamente coninstrucciones de cdigo mquina (el cdigo que es capaz de interpretar un ordenadorsin necesidad de un intrprete o traductor).

    En 1957 aparece el lenguaje Fortran (siglas de FORmulaTRANslator), el primerlenguaje de alto nivel ampliamente difundido y utilizado a nivel mundial. El primercompilador de Fortran fue desarrollado por un equipo de IBM liderado por John W.Backus. Inicialmente Fortran fue muy utilizado en el mundo cientfico y enaplicaciones militares, y se escribieron multitud de libreras matemticas para clculonumrico, algunas de las cuales siguen utilizndose hoy en da.

    Ya en 1960 aparece LISP, un lenguaje idneo para crear programas de inteligenciaartificial porque utilizaba conceptos de programacin funcional y recursividad.

    Aunque no es muy utilizado para el desarrollo de aplicaciones empresariales, LISPsigue siendo utilizado hoy en da en entornos docentes (yo mismo lo utilizo en unaasignatura en la que se ensean diversos paradigmas de programacin).

    Tambin en 1960 aparece COBOL, un lenguaje preparado para procesar grandescantidades de informacin. Esto hizo que fuese ampliamente adoptado en bancos ygrandes organizaciones que siguen utilizndolo hoy en da.

    En 1964 se crea el lenguaje BASIC (Beginner'sAll-purposeSymbolicInstructionCode),especialmente diseado para ensear a programar a principiantes. BASIC es ellenguaje que muchos (entre los que me incluyo) utilizamos para hacer nuestrosprimeros pinitos en el mundo de la programacin, cuando desterramos nuestrosviejos ordenadores Comodore-64 sustituyndolos por el recin aparecido AmstradCPC 464 y su flamante unidad de cinta (que despus de leer un par de veces cadacinta era incapaz de volver a hacerlo qu tiempos aquellos!). Ya en las primerasversiones de MS-DOS (el primer sistema operativo de Microsoft) se inclua unintrprete de BASIC.

    Los lenguajes C y Pascal

    El lenguaje Pascal aparece por primera vez en 1971, diseado por el profesorNiklausWirth con el objetivo de facilitar el aprendizaje de la programacin a susalumnos. Pascal fue muy utilizado en la dcada de los 80 y los 90, y es el precursorde lenguajes como Delphi.

    En 1972, Kenneth L. Thompson y Dennis M. Ritchie crean el lenguaje C en loslaboratorios Bell. Se llama lenguaje C porque proviene de uno anterior llamadolenguaje B, que a su vez provena del lenguaje BCPL. En mi opinin, el lenguaje Cha sido el lenguaje de ms repercusin en la historia de los ordenadores, y su

    http://www.monografias.com/trabajos5/electro/electro.shtmlhttp://www.monografias.com/trabajos15/computadoras/computadoras.shtmlhttp://www.monografias.com/trabajos15/computadoras/computadoras.shtmlhttp://www.monografias.com/trabajos5/electro/electro.shtml
  • 8/13/2019 Paradimas de Programacion

    20/37

    sintaxis ha servido como punto de partida para muchos de los lenguajes deprogramacin actuales como Java, C++ o C#. Hoy en da sigue siendo muy utilizadoen multitud de aplicaciones, incluido el sistema operativo Linux, cuyo ncleo estescrito en su mayor parte en lenguaje C.

    Los lenguajes Orientados a ObjetosA finales de la dcada de los 80 se populariz un nuevo paradigma de programacindenominado Programacin Orientada a Objetos. Se trataba de una nueva forma deprogramar que haca ms fcil escribir y mantener cdigo, porque se asemejaba mscon la forma de pensar del cerebro humano. Pronto los lenguajes evolucionaron asus respectivas versiones orientadas aObjetos. As naci en 1986 el lenguaje C++ de manos de Bjarne Stroustrup, queparta del lenguaje C y le aada la posibilidad de trabajar con objetos. Nace tambinen 1986 el lenguaje Delphi (en sus principios denominado Object Pascal), como unaevolucin de Pascal para incluirle caractersticas de orientacin a objetos.

    El lenguaje Java

    He dedicado un apartado de este artculo al lenguaje de programacin Java por laimportancia que tiene actualmente en el mundo del desarrollo de software engeneral.

    Java es un lenguaje orientado a objetos diseado en 1990 por James Gosling yPatrick Naughton, de la empresa Sun Microsystems. El origen del nombre Java esbastante curioso, se rumorea que sus creadores discutan sobre cmo llamar allenguaje mientras tomaban caf, y al final les gust el nombre de la marca del cafque tomaban, el caf Java. Su desarrollo se realiz siempre con un concepto enmente: Write Once, RunAnywhere. Esto significa que Java se dise pensando enque un programa escrito en este lenguaje pudiese ser ejecutado en cualquiermquina, no slo ordenadores, sino tambin cualquier dispositivo electrnico comocalculadoras, dispositivos mviles, porttiles, etc. Esta idea de un lenguaje universalya haba sido abordada por el lenguaje C y su estandarizacin ANSI, pero la realidades que no se consigui hasta la llegada de Java.

    En la actualidad el uso de Java ha sido muy impulsado por la amplia influencia deInternet, debido a la universalidad de Java por la capacidad de sus programas paraser ejecutados en cualquier tipo de mquina.

    6.-TIPOS DE LENGUAJE DE PROGRAMACIN

    Lenguajes compilados

    Naturalmente, un programa que se escribe en un lenguaje de alto nivel tambin tieneque traducirse a un cdigo que pueda utilizar la mquina. Los programas traductoresque pueden realizar esta operacin se llaman compiladores. stos, como los

  • 8/13/2019 Paradimas de Programacion

    21/37

    programas ensambladores avanzados, pueden generar muchas lneas de cdigo demquina por cada proposicin del programa fuente. Se requiere una corrida decompilacin antes de procesar los datos de un problema.Los compiladores sonaquellos cuya funcin es traducir un programa escrito en un determinado lenguaje aun idioma que la computadora entienda (lenguaje mquina con cdigo binario).

    Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studiode Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sinohasta que luego de haber compilado el programa, ya no aparecen errores en elcdigo.

    Lenguajes interpretados

    Se puede tambin utilizar una alternativa diferente de los compiladores para traducirlenguajes de alto nivel. En vez de traducir el programa fuente y grabar en formapermanente el cdigo objeto que se produce durante la corrida de compilacin para

    utilizarlo en una corrida de produccin futura, el programador slo carga el programafuente en la computadora junto con los datos que se van a procesar. A continuacin,un programa intrprete, almacenado en el sistema operativo del disco, o incluido demanera permanente dentro de la mquina, convierte cada proposicin del programafuente en lenguaje de mquina conforme vaya siendo necesario durante el procesode los datos. No se graba el cdigo objeto para utilizarlo posteriormente.

    La siguiente vez que se utilice una instruccin, se le debe interpretar otra vez ytraducir a lenguaje mquina. Por ejemplo, durante el procesamiento repetitivo de lospasos de un ciclo, cada instruccin del ciclo tendr que volver a ser interpretado cadavez que se ejecute el ciclo, lo cual hace que el programa sea ms lento en tiempo de

    ejecucin (porque se va revisando el cdigo en tiempo de ejecucin) pero ms rpidoen tiempo de diseo (porque no se tiene que estar compilando a cada momento elcdigo completo). El intrprete elimina la necesidad de realizar una corrida decompilacin despus de cada modificacin del programa cuando se quiere agregarfunciones o corregir errores; pero es obvio que un programa objeto compilado conantelacin deber ejecutarse con mucha mayor rapidez que uno que se debeinterpretar a cada paso durante una corrida de produccin.

    Lenguaje mquina:

    El lenguaje mquina es el nico que entiende directamente la computadora, ya que

    est escrito en lenguajes directamente inteligibles por la mquina (computadora),utiliza el alfabeto binario, que consta de los dos nicos smbolos 0 y 1, denominadosbits (abreviatura inglesa de dgitos binarios). Sus instrucciones son cadenas binarias(cadenas o series de caracteres de dgitos 0 y 1) que especifican una operacin y,las posiciones (direccin) de memoria implicadas en la operacin se denominaninstrucciones de mquina o cdigo maquina. Fue el primer lenguaje utilizado en laprogramacin de computadoras, pero dejo de utilizarse por su dificultad ycomplicacin, siendo sustituido por otros lenguajes ms fciles de aprender y utilizar,

  • 8/13/2019 Paradimas de Programacion

    22/37

    que adems reducen la posibilidad de cometer errores. El lenguaje mquina es elconocido cdigo binario. Generalmente, en la codificacin de los programas seempleaba el sistema hexadecimal para simplificar el trabajo de escritura. Todas lasinstrucciones preparadas en cualquier lenguaje mquina tienen por lo menos dospartes. La primera es el comando u operacin, que dice a las computadoras cual es

    la funcin que va a realizar. Todas las computadoras tienen un cdigo de operacinpara cada una de las funciones. La segunda parte de la instruccin es el operando,que indica a la computadora donde hallar o almacenar los datos y otras instruccionesque se van a manipular, el nmero de operndoos de una instruccin varia endistintas computadoras.

    Ventajas del lenguaje mquina: posibilidad de cargar (transferir un programa a lamemoria) sin necesidad de traduccin posterior, lo que supone una velocidad deejecucin superior a cualquier otro lenguaje de programacin.

    Desventajas del lenguaje mquina: dificultad y lentitud en la codificacin. Pocafiabilidad. Gran dificultad para verificar y poner a punto los programas. Losprogramas solo son ejecutables en el mismo procesador (CPU). En la actualidad, lasdesventajas superan a las ventajas, lo que hace prcticamente no recomendables alos lenguajes mquina.

    Lenguajes de bajo nivel (ensamblador):

    Son ms fciles de utilizar que los lenguajes mquina, pero al igual que ellos,dependen de la mquina en particular. El lenguaje de bajo nivel por excelencia es elensamblador. El lenguaje ensamblador es el primer intento de sustituir el lenguajemaquina por otro ms similar a los utilizados por las personas. Este intentadesflexibilizar la representacin de los diferentes campos. Esa flexibilidad seconsigue no escribiendo los campos en binario y aproximando la escritura allenguaje. A principios de la dcada de los 50 y con el fin de facilitar la labor de losprogramadores, se desarrollaron cdigos mnemotcnicos para las operaciones ydirecciones simblicas. Los cdigos mnemotcnicas son los smbolos alfabticos dellenguaje maquina. La computadora sigue utilizando el lenguaje maquina paraprocesar los datos, pero los programas ensambladores traducen antes los smbolosde cdigo de operacin especificados a sus equivalentes en el lenguaje maquina. Enla actualidad los programadores no asignan nmeros de direccin reales a los datossimblicos, simplemente especifican donde quieren que se coloque la primeralocalidad del programa y el programa ensamblador se encarga de lo dems, asignalocalidades tanto para las instrucciones como los datos. Estos programas deensamble o ensambladores tambin permiten a la computadora convertir lasinstrucciones en lenguaje ensamblador del programador en su propio cdigomaquina. Un programa de instrucciones escrito en lenguaje ensamblador por unprogramador se llama programa fuente. Despus de que el ensamblador convierte elprograma fuente en cdigo maquina a este se le denomina programa objeto. Para losprogramadores es ms fcil escribir instrucciones en un lenguaje ensamblador queen cdigo de lenguaje maquina pero es posible que se requieran dos corridas de

  • 8/13/2019 Paradimas de Programacion

    23/37

    computadora antes de que se puedan utilizar las instrucciones del programa fuentepara producir las salidas deseadas.

    El lenguaje de bajo nivel es el lenguaje de programacin que el ordenador puedeentender a la hora de ejecutar programas, lo que aumenta su velocidad de ejecucin,

    pues no necesita un intrprete que traduzca cada lnea de instrucciones.Visto a muy bajo nivel, los microprocesadores procesan exclusivamente sealeselectrnicas binarias. Dar una instruccin a un microprocesador supone en realidadenviar series de unos y ceros espaciadas en el tiempo de una forma determinada.Esta secuencia de seales se denomina cdigo mquina. El cdigo representanormalmente datos y nmeros e instrucciones para manipularlos. Un modo ms fcilde comprender el cdigo mquina es dando a cada instruccin un mnemnico, comopor ejemplo STORE, ADD o JUMP. Esta abstraccin da como resultado elensamblador, un lenguaje de muy bajo nivel que es especfico de cadamicroprocesador.

    Los lenguajes de bajo nivel permiten crear programas muy rpidos, pero que son, amenudo, difciles de aprender. Ms importante es el hecho de que los programasescritos en un bajo nivel sean altamente especficos de cada procesador. Si se llevael programa a otra mquina se debe reescribir el programa desde el principio.

    Ventajas del lenguaje ensamblador frente al lenguaje mquina: mayor facilidad decodificacin y, en general, su velocidad de clculo, ahorran tiempo y requierenmenos atencin a detalles. Se incurren en menos errores y los que se cometen sonms fciles de localizar. Tanto el lenguaje maquina como el ensamblador gozan de laventaja de mnima ocupacin de memoria y mnimo tiempo de ejecucin encomparacin con el resultado de la compilacin del programa equivalente escrito enotros lenguajes. Los programas en lenguaje ensamblador son ms fciles demodificar que los programas en lenguaje mquina.

    Desventajas del lenguaje ensamblador: dependencia total de la maquina lo queimpide la transportabilidad de los programas (posibilidad de ejecutar un programa endiferentes mquinas). El lenguaje ensamblador del PC es distinto del lenguajeensamblador del Apple Machintosh. La formacin de los programadores es mscompleja que la correspondiente a los programadores de alto nivel, ya que exige nosolo las tcnicas de programacin, sino tambin el conocimiento del interior de lamaquina El programador ha de conocer perfectamente el hardware del equipo, yaque maneja directamente las posiciones de memoria, registros del procesador ydems elementos fsicos. Todas las instrucciones son elementales, es decir, en elprograma se deben describir con el mximo detalle todas las operaciones que se hande efectuar en la mquina para la realizacin de cualquier proceso.

    Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centranbsicamente en aplicaciones de tiempo real, control de procesos y de dispositivoselectrnicos.

  • 8/13/2019 Paradimas de Programacion

    24/37

    Lenguajes de alto nivel:

    Estos lenguajes son los ms utilizados por los programadores. Estn diseados paraque las personas escriban y entiendan los programas de un modo mucho ms fcilque los lenguajes mquina y ensamblador. Un programa escrito en lenguaje de alto

    nivel es independiente de la mquina (las instrucciones no dependen del diseo delhardware o de una computadora en particular), por lo que estos programas sonportables o transportables. Los programas escritos en lenguaje de alto nivel puedenser ejecutados con poca o ninguna modificacin en diferentes tipos decomputadoras. Son lenguajes de programacin en los que las instrucciones enviadaspara que el ordenador ejecute ciertas rdenes son similares al lenguaje humano.Dado que el ordenador no es capaz de reconocer estas rdenes, es necesario el usode un intrprete que traduzca el lenguaje de alto nivel a un lenguaje de bajo nivel queel sistema pueda entender.

    Por lo general se piensa que los ordenadores son mquinas que realizan tareas declculos o procesamiento de texto. La descripcin anterior es slo una forma muyesquemtica de ver una computadora. Hay un alto nivel de abstraccin entre lo quese pide a la computadora y lo que realmente comprende. Existe tambin una relacincompleja entre los lenguajes de alto nivel y el cdigo mquina.

    Los lenguajes de alto nivel son normalmente fciles de aprender porque estnformados por elementos de lenguajes naturales, como el ingls. En BASIC, ellenguaje de alto nivel ms conocido, los comandos como IF CONTADOR=10 THENSTOP pueden utilizarse para pedir a la computadora que pare si CONTADOR esigual a diez. Por desgracia para muchas personas esta forma de trabajar es un pocofrustrante, dado que a pesar de que las computadoras parecen comprender unlenguaje natural, lo hacen en realidad de una forma rgida y sistemtica.

    Los lenguajes de alto nivel, tambin denominados lenguajes evolucionados, surgencon posterioridad a los anteriores (lenguaje mquina, lenguajes de bajo nivel oensamblador) con los siguientes objetivos, entre otros:

    Lograr independencia de la maquina, pudiendo utilizar un mismo programa endiferentes equipos con la nica condicin de disponer de un programa traductor ocompilador, que es suministrado por el fabricante, para obtener el programaejecutable en lenguaje binario de la maquina que se trate. Adems, no se necesitaconocer el hardware especifico de dicha maquina. Aproximarse al lenguaje natural,para que el programa se pueda escribir y leer de una forma ms sencilla, eliminandomuchas de las posibilidades de cometer errores que se daban en el lenguajemaquina, ya que se utilizan palabras (en ingles) en lugar de cadenas de smbolos sinningn significado aparente.

    Incluir rutinas de uso frecuente, como las de entrada / salida, funciones matemticas,manejo de tablas, etc., que figuran en una especie de librera del lenguaje, demanera que se puedan utilizar siempre que se quiera sin necesidad de programarlascada vez.

  • 8/13/2019 Paradimas de Programacion

    25/37

    Ventajas de los lenguajes de alto nivel: el tiempo de formacin de los programadoreses relativamente corto comparado con otros lenguajes. La escritura de programas sebasa en reglas sintcticas similares a los lenguajes humanos, nombres de lasinstrucciones tales como READ, WRITE, PRINT, OPEN, etc. Las modificaciones ypuestas a punto de los programas son ms fciles, Reduccin del costo de los

    programas, Transportabilidad, Permiten tener una mejor documentacin, y Son msfciles de mantener.

    Desventajas de los lenguajes de alto nivel: incremento del tiempo de puesta a puntoal necesitarse diferentes traducciones del programa fuente para conseguir elprograma definitivo. No se aprovechan los recursos internos de la maquina que seexplotan mucho mejor en lenguajes mquina y ensambladores. Aumento de laocupacin de memoria. El tiempo de ejecucin de los programas es mucho mayor.

    Se puede decir que el principal problema que presentan los lenguajes de alto nivel esla gran cantidad de ellos que existen actualmente en uso, adems de las diferentesversiones o dialectos que se han desarrollado de algunos de ellos. Es difcilestablecer una clasificacin general de los mismos, ya que en cualquiera que serealice habr lenguajes que pertenezcan a ms de uno de los grupos establecidos.Una clasificacin muy extendida, atendiendo a la forma de trabajar de los programasy a la filosofa con que fueron concebidos, es la siguiente:

    o Lenguajes imperativos. Utilizan instrucciones como unidad de trabajo de losprogramas (Cobol, Pascal, C, Ada).

    o Lenguajes declarativos. Los programas se construyen mediante descripcionesde funciones o expresiones lgicas (Lisp, Prolog).

    o Lenguajes orientados a objetos. El diseo de los programas se basa ms enlos datos y su estructura. La unidad de proceso es el objeto y en el se incluyenlos datos (variables) y las operaciones que actan sobre ellos (Smalltalk,C++).

    o Lenguajes orientados al problema. Diseados para problemas especficos,principalmente de gestin, suelen ser generadores de aplicaciones.

    o Lenguajes naturales. Estn desarrollndose nuevos lenguajes con el principalobjetivo de aproximar el diseo y construccin de programas al lenguaje delas personas.

    Otra clasificacin que se puede hacer es la de atendiendo al desarrollo de loslenguajes desde la aparicin de las computadoras, que sigue un cierto paralelismocon las generaciones establecidas en la evolucin de las mismas:

    o Primera generacin. Lenguajes maquina y ensambladores.o Segunda generacin. Primeros lenguajes de alto nivel imperativo (FROTRAN,

    COBOL).o Tercera generacin. Lenguajes de alto nivel imperativo. Son los ms utilizados

    y siguen vigentes en la actualidad (ALGOL 8, PL/I, PASCAL, MODULA).o Cuarta generacin. Orientados bsicamente a las aplicaciones de gestin y al

    manejo de bases de datos (NATURAL, SQL).

  • 8/13/2019 Paradimas de Programacion

    26/37

    o Quinta generacin. Orientados a la inteligencia artificial y al procesamiento delos lenguajes naturales (LISP, PROLOG).

    Para la mejor compresin se harn unas definiciones:

    Programa: es un conjunto de instrucciones escritas en un lenguaje de programacinque 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 entendido100% por el ser humano. Este debe estar complementado por su documentacin omanuales donde se indica el desarrollo lgico del mismo.

    Cdigo objeto: es creado por los compiladores y nos sirve como enlace entre elprograma fuente y el ejecutable.

    7.-ALGUNOS LEGUAJES DE PROGRAMACIN DE ALTO NIVEL

    A continuacin se presentan varios de los ms conocidos y utilizados, lenguajes dealto nivel.

    FORTRAN:Abreviatura de FORmulaTRANslator (traductor de formulas), fue definidoalrededor del ao 1955 en Estados Unidos por la compaa IBM. Es el ms antiguode los lenguajes de alto nivel. Antes de l, todos los programas se escriban enlenguaje ensamblador o en lenguaje mquina. Es un lenguaje especializado enaplicaciones tcnicas y cientficas. Se caracteriza por su potencia en los clculosmatemticos, pero est limitado en las aplicaciones de gestin, manejo de archivos,tratamiento de cadenas de caracteres y edicin de informes. Es un lenguaje notorio,

    por la facilidad con que permite expresar una ecuacin. Muchas de suscaractersticas fueron incorporadas mas tarde en el primer lenguaje BASIC. Una desus ventajas es que es un lenguaje compacto y es tambin ampliamente utilizadopara aplicaciones en los negocios que no requieren manejo de grandes archivos dedatos. Hasta 1961 se mantuvo como monopolio de IBM, pero posteriormente se fueimplementando en ordenadores de otros fabricantes. A lo largo de su existencia hanaparecido diferentes versiones, entre las que destaca la adoptada en 1966 por el

    ANSI (American NationalStandardsInstitute), en la que se definieron nuevas reglasdel lenguaje y se logro la independencia del mismo con respecto a la mquina; esdecir, comenz la portabilidad del lenguaje. Esta versin se denomin FORTRAN IVo FORTRAN 66, y el idioma se hizo tan popular en los aos 60, que FORTRAN 66 se

    volvi el primer idioma en ser regularizado oficialmente en 1972. En 1977 apareciuna nueva versin ms evolucionada que se llamo FORTRAN V o FORTRAN 77.Est reflejada en el documento ANS X3.9-1978: Programming Language FORTRANy define dos niveles del lenguaje denominados FORTRAN 77 completo y FORTRAN77 bsico, siendo el segundo un subconjunto del primero. Incluye, adems,instrucciones para el manejo de cadenas de caracteres y de archivos, as como otraspara la utilizacin de tcnicas de programacin estructurada. Estas caractersticashacer que el lenguaje tambin sea vlido para determinadas aplicaciones de gestin.

  • 8/13/2019 Paradimas de Programacion

    27/37

    A mediados de los aos setenta se proporcionaron virtualmente cada computadora,mini o mainframe, con un sistema FORTRAN 66 normal. Era por consiguiente posibleescribir programas en FORTRAN en cualquier sistema y estar bastante seguro queestos pudieran moverse para trabajar en cualquier otro sistema bastante fcil. Esto, yel hecho que pudieran procesarse programas de FORTRAN muy eficazmente. La

    ultima normalizacin del lenguaje, FRONTRAN 90, se encuentra en el documentoANS X3.198-1991 en la que se incluyen caractersticas como la recursividad,tratamiento paralelo de tablas y uso de memoria dinmica. Permite expresar losprogramas de maneras que se satisfacen mas a un ambiente de la informticamoderna y han quedado obsoletos muchos de los mecanismos que eran apropiadosen FROTRAN 77. En FROTRAN 90 algunos rasgos de FROTRAN 77 han sidoreemplazados por rasgos mejores, ms seguros y ms eficaces, muchos de estosfueron quitados del idioma FORTRAN 95. El FRONTRAN tiene la ventaja de ser unlenguaje compacto que sirve muy bien para satisfacer las necesidades de loscientficos y los estadsticos de los negocios.

    COBOL:Es el lenguaje ms utilizado en las aplicaciones de gestin, creado en 1960por un comit denominado CODASYL (COnferenceonDAtaSYstemsLanguages),patrocinado por el Departamento de Defensa de Estados Unidos, a fin de disponerde un lenguaje universal para aplicaciones comerciales, como expresa su nombre(COmmnon Business Oriented Language).

    A lo largo de su existencia ha sufrido diversas actualizaciones. Su primer estndarfue aprobado por el ANSI en 1968. Posteriormente, en 1974, se adopta la norma

    ANS X3.23-1974, que ha perdurado hasta su ltima versin, COBOL ANS-85, quefacilita el diseo estructurado de los programas.

    Sus caractersticas ms destacables son las siguientes: se asemeja al lenguajenatural (ingls), es autodocumentado y ofrece grandes facilidades en el manejo dearchivos, as como en la edicin de informes escritos. Puede emplear trminoscomnmente utilizados en los negocios.

    Entre sus inconvenientes estn sus rgidas reglas de formatos de escritura, lanecesidad de escribir todos los elementos al mximo detalle, la extensin excesivaen sus sentencias, e incluso duplicacin en algunos casos, y la inexistencia defunciones matemticas.

    No obstante, se puede afirmar que en la actualidad continua siendo el lenguaje msutilizado en las aplicaciones de gestin.

    PL/I: Fue creado a comienzos de los aos sesenta por IBM para ser usado en susequipos del sistema 360. Inspirndose en los lenguajes ALGOL, COBOL yFORTRAN se desarrollo el PL/I (ProgrammingLanguage/I) tomando las mejorescaractersticas de los anteriores y aadiendo algunas nuevas, con el objetivo deobtener un lenguaje lo mas general posible en cuanto a su implementacin, til paraaplicaciones tcnico-cientficas, comerciales, de proceso de textos, de bases dedatos y de programacin de sistemas. Se trata de un lenguaje de programacin

  • 8/13/2019 Paradimas de Programacion

    28/37

    complejo. Compilado y estructurado, es capaz de gestionar errores y de procesarmultitareas, y se emplea en entornos acadmicos y de investigacin.

    Entre sus novedades esta su gran libertad en el formato de escritura de losprogramas: soporta la programacin estructurada y diseo modular. Es un lenguaje

    flexible y sofisticado. No obstante, no ha superado a sus progenitores en susaplicaciones especficas, debido en parte a su amplitud y, por ello, al tamao de sucompilador que hasta ahora solo se poda instalar en grandes equipos. El elementobsico de este programa es el enunciado que termina en punto y coma. Losenunciados se combinan en procedimientos. Un procedimiento puede representarpor completo a un programa pequeo o un bloque de construccin o modulo de unprograma ms complejo.

    BASIC: El lenguaje BASIC fue diseado por los profesores John G. Kemeny yThomas E. Kurtz del Dartmouth College (Estados Unidos) en 1965, con el objetivoprincipal de proporcionar a los principiantes un lenguaje fcil de aprender, como seindica en su nombre Beginner'sAll-purposeSymbolicInstructionCode (Cdigo deinstrucciones simblico de propsito general para principiantes). Es un lenguajeinteractivo muy popular que tiene una aceptacin debido a la facilidad de su uso, esun idioma simple para aprender y fcil de traducir. Que s interactivo, permite lacomunicacin directa entre el usuario y el sistema de cmputo durante la preparaciny uso de los programas.

    Entre sus principales novedades estn las de ser un lenguaje interpretado y de usoconversacional, til para aplicaciones tcnicas y de gestin. Esto, unido a lapopularizacin de las microcomputadoras y computadoras personales, ha hecho quesu utilizacin sea haya extendido enormemente, a la vez que ha propiciado elsurgimiento de una gran diversidad de diversiones que extienden y se adaptan anecesidades particulares el lenguaje original. Existen multitud de intrpretes ycompiladores del lenguaje.

    PASCAL:Fue creado por el matemtico suizo Nicklaus Wirth en 1970, basndoseen el lenguaje ALGOL, en cuyo diseo haba participado en los aos sesenta. Sunombre proviene del filsofo y matemtico francs del siglo XVII, Blaise Pascal, queinvento la primera mquina tipo mecnico para sumar. Fue el primer gran lenguajecreado despus de haber sido ampliamente diseminados los conceptos asociadoscon la programacin estructurada.

    Aunque en principio la idea del diseador era proporcionar un lenguaje adecuadopara la enseanza de los conceptos y tcnicas de programacin, con el tiempo hallegado a ser un lenguaje ampliamente utilizado en todo tipo de aplicaciones, queposee grandes facilidades para la programacin de sistemas y diseo grafico.

    Aporta los conceptos de tipo de datos, programacin estructurada y diseodescendente, entre otros, adems de haberse convertido en predecesor de otroslenguajes ms modernos, como MODULA-2 y ADA.

  • 8/13/2019 Paradimas de Programacion

    29/37

    C: Este lenguaje fue creado en 1972 por Dennis Ritchie a partir del trabajo elaboradopor su colega de los laboratorios Bell Telephone, Ken Thompson. Estos habandiseado con anterioridad el sistema operativo UNIX, y su intencin al desarrollar ellenguaje C fue la de conseguir un lenguaje idneo para la programacin de sistemasque fuese independiente de la maquina, con el cual escribir su sistema UNIX.

    Aunque, como acabo de decir, fue diseado inicialmente para la programacin desistemas, posteriormente su uso se ha extendido a ablaciones tcnico-cientficas, debases de datos, de proceso de textos, etc.

    En 1980 Bjarne Stroustrup, inspirado en el lenguaje Simula67 adicion lascaractersticas de la programacin orientada a objetos incluyendo la ventaja de unabiblioteca de funciones orientadas a objetos) y lo denomino C con clases. Para 1983dicha denominacin cambio a la de C++. Con este nuevo enfoque surge la nuevametodologa que aumenta las posibilidades de la programacin bajo nuevosconceptos.

    La utilizacin ptima de este lenguaje se consigue dentro de su entorno natural, queese el sistema operativo UNIX, y entre sus caractersticas destaca el uso deprogramacin estructurada para resolver tareas de bajo nivel, as como la amplialibrera de rutinas de que dispone. El lenguaje C rene caractersticas deprogramacin intermedia entre los lenguajes ensambladores y los lenguajes de altonivel; con gran podero basado en sus operaciones a nivel de bits (propias deensambladores) y la mayora de los elementos de la programacin estructurada delos lenguajes de alto nivel, por lo que resulta ser el lenguaje preferido para eldesarrollo de software de sistemas y aplicaciones profesionales de la programacinde computadoras.

    MODULA-2:El lenguaje MODULA fue diseado en 1977 bajo la direccin de NicklausWirth, creador tambin el lenguaje PASCAL, con la intencin de incluir lasnecesidades de la programacin de sistemas y dar respuestas a las crticas recibidasrespecto de las carencias del lenguaje PASCAL. En 1979 se realiza una versin quepasa a denominarse MODULA-2 y que perdura en la actualidad.

    Adems de incluir las caractersticas de su predecesor, este nuevo lenguajeincorpora las principales carencias de aquel, como la posibilidad de compilacinseparada, creacin de libreras, programacin concurrente, mejora el manejo decadenas de caracteres, los procedimientos de entrada/salida y la gestin de lamemoria, etc. adems, posee grandes facilidades para la programacin de sistemas.

    Tambin, debido a sus cualidades didcticas, ha sido ampliamente aceptado por lacomunidad universitaria como herramienta idnea para la enseanza de laprogramacin.

    ADA: Es el ltimo intento de obtener un nico lenguaje para todo tipo deaplicaciones, e incluso los ltimos avances de tcnicas de programacin. Su diseofue encargado por el Departamento de Defensa de Estados Unidos, para su uso en

  • 8/13/2019 Paradimas de Programacion

    30/37

    servicios militares, a la empresa Honeywell-Bull despus de una seleccin rigurosaentre varias propuestas realizadas sobre una serie de requerimientos del lenguaje yde haber evaluado negativamente veintitrs lenguajes existentes. De estos, seseleccionaron como base para la creacin del nuevo lenguaje el PASCAL, el ALGOLy el PL/I.

    La estandarizacin del lenguaje se publico en 1983 con el nombre de ADA, en honorde la considerada primera programadora de la historia, Augusta Ada Byron, condesade Lovelace.

    Entre las caractersticas del lenguaje se encuentran la compilacin separada, lostipos abstractos de datos, programacin concurrente, programacin estructurada,libertad de formatos de escritura, etc. Como principal inconveniente presenta su granextensin. Los escritores lo llamaron inflexible e ineficiente, en tanto que susfavorecedores lo consideraban un gran avance en la tecnologa del software.

    LISP: En informtica, acrnimo de List Processing. Un lenguaje de programacinpara ordenadores o computadoras orientadas a la generacin de listas, desarrolladoen 1959-1960 por John McCarthy y usado principalmente para manipular listas dedatos o de smbolos. El lenguaje LISP constituy un cambio radical con respecto alos lenguajes procedurales (FORTRAN, ALGOL) que se desarrollaban por entonces.El LISP es un lenguaje interpretado, en el que cada expresin es una lista dellamadas a funciones. Este lenguaje se sigue utilizando con frecuencia eninvestigacin y en crculos acadmicos, y fue considerado durante mucho tiempo ellenguaje modelo para la investigacin de la inteligencia artificial (IA), aunque elProlog ha ganado terreno durante los ltimos aos.

    LOGO:En informtica, lenguaje de programacin de ordenadores o computadoras,desarrollado en 1968 por Seymour Papert en el MIT, que se usa frecuentemente enla enseanza de lenguaje de programacin a nios. Una caracterstica importante deLogo son los grficos de tortuga, que permiten al programador hacer dibujos simplesdirigiendo los movimientos de la tortuga en la pantalla hacia adelante, hacia laderecha o la izquierda. Una vez que dominan el entorno sencillo del dibujo, elprogramador (normalmente un nio o una nia) empieza a descubrir lascaractersticas ms sofisticadas del lenguaje, que estn basadas fundamentalmenteen el lenguaje de programacin LISP. Logo est considerado como un lenguaje parala formacin, a pesar de que algunas empresas intentaron que tuviera una mayoraceptacin en los crculos profesionales de programacin.

    RPG: Report Program Operator fue introducido en 1960 como un lenguaje paraduplicar rpidamente el enfoque de proceso utilizado con un equipo de tarjetaperforada. Este lenguaje fue desarrollado por IBM en 1964. Su uso esta aun limitadosobre todo para las aplicaciones de negocios que son procesadas en pequeascomputadoras, generar informes comerciales o de negocios. Como su nombre losugiere, el RPG est diseado para generar los reportes de salida que resultan delproceso de aplicaciones de negocios.

  • 8/13/2019 Paradimas de Programacion

    31/37

    A pesar de las aplicaciones de actualizacin de archivos, el RPG es un lenguaje depropsito limitado porque los programas objeto generados por el compilador de RPGsiguen sin desviacin, un ciclo de procesamiento bsico.

    Una ventaja del RPG es la relativa facilidad para aprenderlo y usarlo. Dado que la

    lgica de la programacin es fija, existen menos reglas formales que en otroslenguajes.

    ALGOL: El ALGOL (ALGOritmic Language) fue presentado en 1958. Fue el primerlenguaje de programacin de proceso estructurado de alto nivel. Fue orientado al usode quienes participan en proyectos cientficos y matemticos. Un grupo internacionalde matemticos europeos y americanos, pretendan crear un lenguaje comnnormalizado que les permitiera el intercambio de algoritmos, aunque esta en desuso,fue el primero que incorporo conceptos claves para la programacin actual.

    APL: Sus siglas significan (A ProgrammingLanguage). Un Lenguaje de

    Programacin. Este programa fue desarrollado por Kenneth Inverson en el ao 1961para resolver problemas matemticos. Este lenguaje se caracteriza por su brevedady por su capacidad de generacin de matrices y se utiliza en el desarrollo de modelosmatemticos.

    PILOT: Programmen dInquiry Language Or Teaching (Consulta, lenguaje oaprendizaje de investigacin programada) creado en 1969.

    Este lenguaje de programacin es utilizado fundamentalmente para crearaplicaciones destinadas a instrucciones asistidas por computadoras. Se caracterizapor utilizar un mnimo de sintaxis.

    SMALLTALK: SMALLTALK, Lenguaje de Programacin orientado a objetosintegrados con un entorno de desarrollo multiventana. SMALLTALK no es solo unhermoso lenguaje de computacin orientado a objetos. El entorno de desarrollomerece similar valoracin y ha sido copiado muchas veces, desde el SistemaOperativo de Apple MS Windows y Borland Pascal (en una memoria extensin).Muchos conceptos de SMALLTALK como los browsers y las tcnicas de browsinghan encontrado hoy su rumbo en muchas herramientas de desarrollo de lageneracin X, desarrollado por SMALLTALK poseen un factor divertido-de-usar.Los cambios se graban instantneamente y los mismos pueden probarserpidamente.

    SMALLTALK fue desarrollado dentro del Grupo de Investigacin del Aprendizaje enel Centro de Investigacin de Xerox en palo Alto a comienzos de los 70. Lasprincipales ideas de SMALLTALK se le atribuyen generalmente a Alan kay con racesen Simula, LISP y SketchPad. Dan Ingalls escribi el cdigo de las primerasventanas solapables, los pop-up mens y la clase BitBlt, AdeleGoldberg yDaveRobson escribieron los manuales de referencia para SMALLTALK y fueronmiembros clave del equipo de desarrollo. Un programa de licenciamiento de Xerox yXerox Special Information Systems. Sin embargo la distribucin generalizada a la

  • 8/13/2019 Paradimas de Programacion

    32/37

    comunidad de desarrollo no sucedi hasta la fundacin de una nueva compaallamada Parc Place Systems Inc. , Dirigida por AdeleGoldberg.

    Un segundo SMALLTALK (SMALLTALK 4) fue desarrollado por Digitalk en losngeles California. Este SMALLTALK estaba dirigido a cubrir la necesidad de un

    producto pequeo, de alta velocidad, basado en PC.Object Technology International Inc. (OTI) desarroll un conjunto de herramientaspara proveer el control de inversiones y el manejo de configuraciones en grandesproyectos. IBM desarroll la familia de productos Visual Age para SMALLTALK encolaboracin con Object Technology (antiguamente Parc Plase-Digitalk) e IBMpermanecen como los distribuidores dominantes de entornos de desarrollos enSMALLTALK. Algunos nuevos SMALLTALK se hallan en etapa de desarrollo.

    FORTH: Lenguaje de cuarta generacin, creado en 1970, es un lenguajeestructurado e interpretado de fcil ampliacin y ofrece una alta funcionalidad en un

    espacio reducido. Es un lenguaje de alto nivel del cual derivan en la actualidad casitodos los lenguajes empleados en los robots.

    LENGUAJE C++: Se pronuncia ce mas mas. Fue desarrollada por BjarmeStroustrup en los Laboratorios Bell a principios de la dcada de los 80. C++ introducela programacin orientada al objeto en C. Es un lenguaje extremadamente poderosoy eficiente. C++ es un sper conjunto de C, para aprender C++ significa aprendertodo de C, luego aprender programacin orientada al objeto y el uso de stas conC++.

    DELPHI:Es un entorno de programacin visual orientado a objetos para desarrollorpido de aplicaciones (RAD) de propsito general, incluyendo aplicacionescliente/servidor.

    Delphi es la versin de Delphi para 32 bits (delphi 3), es decir son casi los mismos,con la nica diferencia que Delphi 3 es mucho ms mejorado, por ejemplo contieneun Tee Chart, que sirve para los grficos de negocio.

    Delphi tiene las siguientes caractersticas:

    Rendimiento - con el mejor y ms rpido compilador del mundo.Empresa e Internet - soluciones cliente y servicioDesarrollo de aplicaciones rpidas (RAD).Reusabilidad de componentes, un verdadero entorno orientado a objetos.Manejo de Base de Datos escalables.

    Arquitectura multinivel abierta y dimensionable.Diseminacin de informacin de base de datos en la Web a una gran velocidad.

    JAVA: Es un lenguaje de programacin para crear programas seguros, porttiles,orientados a objetos interactivos, para mejorar la entrega de informacin a travs deInternet, etc.

  • 8/13/2019 Paradimas de Programacion

    33/37

    JAVA SCRIPT: Este lenguaje de programacin originalmente fue llamadoLIVESCRIPT, pero luego fue renombrado con el nombre de JAVASCRIPT, con laidea de capitalizar la fama de Java, lenguaje desarrollado por Sun Microsystems.ste es un complemento ideal del lenguaje HTML, al permitir a la pgina realizaralgunas tareas por si misma, sin necesidad de estar sobrecargando el servidor del

    cual depende; JAVASCRIPT es un lenguaje diseado especialmente para ejecutarloen internet.

    Entre estas tareas, puede estar, por ejemplo, realizar algunos clculos simples,formatear un texto para que sea ledo por distintas personas de manera distinta,proveer de un medio de configurar la visualizacin de una pgina, realizar unprechequeo de validacin en formulario antes de enviarlo, etc.

    HTML: El lenguaje HTML, sirve para realizar esas atractivas pginas Web. Se tratade un sistema de marcas que permite enlazar al mismo tiempo texto, sonidos ygrficos dentro del mismo documento, con otros dentro del servidor o incluso conotros servidores WWW. Es decir, es un editor para combinar textos, imgenes eincluso sonido y ahora tambin imgenes en movimiento. Es, en definitiva, la formade manejar y presentar la informacin en la red.

    Para escribir documentos de hipertexto se ha desarrollado un nuevo formato dedatos o lenguaje llamado Hyper Text Markup Language (HTML). Este lenguajepermite dar indicaciones precisas al programa cliente de cmo debe presentarse eldocumento en pantalla o al ser impreso.

    El lenguaje HTML es el usado actualmente para escribir textos Hypermediales en elweb.

    Tres normas fundamentales:

    1.- HTML simplemente texto

    Lo primero es saber que un documento HTML es un archivo de texto simple, luego,se puede editar con cualquier editor de textos.

    2.- No importan los tablas ni los saltos de lnea

    Los interpretes HTML no toman en cuenta las tabulaciones, los saltos de lneas ni losespacios en blanco extra. Esto tiene ventajas o desventajas. La principal ventaja esque permite obtener resultados uniformes y de buena presentacin de manerabastante fcil. La principal


Recommended