Sei sulla pagina 1di 37

INSTITUTO TECNOLGICO DE SALINA CRUZ

MATERIA: FUNDAMENTOS DE PROGRAMACIN

DOCENTE: ROMAN NAJERA SUSANA MONICA

CARRERA: ING. EN TECNOLOGAS DE LA INFORMACIN Y DE LAS


COMUNICACIONES

GRADO: I SEMESTRE

GRUPO: 1 E2

ALUMNA: BENITA VILLALOBOS PEREZ

N DE CONTROL: 131020103

TITULO DEL TRABAJO:


Paradigmas de programacin

INDICE
1. INTRODUCCION 2. DEFINICIN DE PARADIGMA DE PROGRAMACIN 3. TIPOS DE PARADIGMAS DE PROGRAMACIN o 3.1.-IMPERATIVA o 3.2-FUNCIONAL o LGICA o FUNCIONAL o DECLARATIVA o ESTRUCTURADA o DIRIGIDA A EVENTOS o MODULA o ORIENTADA A OBJETOS o CON RESTRICCIONES o A NIVEL FUNCIONAL o ORIENTADA A COMPONENTES o ORIENTADA A ASPECTOS 4. DEFINICIN DE LENGUAJE DE PROGRAMACIN 5. HISTORIA DEL LENGUAJE DE PROGRAMACIN 6. TIPOS DE LENGUAJE DE PROGRAMACIN o LENGUAJES COMPILADOS o LENGUAJES INTERPRETADOS o LENGUAJE MAQUINA o LENGUAJE DE BAJO NIVEL o LENGUAJE DE ALTO NIVEL 7. ALGUNOS LENGUAJES DE ALTO NIVEL o o o o o o o o o o o o o FORTRAN COCOL PL/I BASIC PASCAL C MODULA 2 ADA LISP LOGO RPG ALGOL APL

o o o o o o o o o o o o o o

PILOT SMALLTALK FORTH C++ DELPHI JAVA JAVA SCRIPT HTML HYPERTALK PERL PHP PROLONG SQL ASP

8. CONCLUSIN 9. BIBLIOGRAFA

1.-INTRODUCCION El objetivo de este trabajo es entender que es un paradigma de programacin, cules son sus tipos, tambin es saber que para poder realizar un paradigma se necesita de un lenguaje de programacin el cual nos va a permitir poder programar o sea que para que exista un paradigma debe haber un lenguaje el cual este su funcin es tener una comunicacin con la maquina el cual este se ejecutara y obtendremos un nuevo programa capaz de realizar cualquier funcin que nosotros le ordenemos al maquina y esta lo llevara a cabio como sabemos estos lenguajes fueron evolucionando a travs de las necesidades que tena el hombre y en este trabajo tambin se encontraran la evolucin o la historia de cmo fueron apareciendo los lenguajes como java que es el ms utilizado y tambin en este me enfoque en la programacin orientados a objetos esperando que esta investigacin me lleve a comprender cada uno de estos aspectos y saber programar aunque sea con un lenguaje de programacin.

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 a que unvocamente 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". Tradicionalmente datos y procesamiento se han separado en reas diferente del diseo y la implementacin de software. Esto provoc que grandes desarrollos tuvieran problemas de fiabilidad, mantenimiento, adaptacin a los cambios y escalabilidad. Con la orientacin a objetos y caractersticas como el encapsulado, polimorfismo o la herencia se permiti un avance significativo en el desarrollo de software a cualquier escala de produccin. La orientacin a objeto parece estar ligado en sus orgenes con lenguajes como Lisp y Simula aunque el primero que acuo el ttulo de programacin orientada a objetos fue Smaltalk.

3.-TIPOS DE PARADIGMAS DE PROGRAMACIN


Programacin Imperativa La programacin imperativa, en contraposicin a la programacin declarativa es un paradigma de programacin que describe la programacin en trminos del estado del programa y sentencias que cambian dicho estado. Los programas imperativos son un conjunto de instrucciones que le indican al computador cmo realizar una tarea. La implementacin de hardware de la mayora de computadores es imperativa; prcticamente todo el hardware de los computadores est diseado para ejecutar cdigo 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 de las Mquinas de Turing. Desde esta perspectiva de bajo nivel, el estilo del programa est definido por los contenidos de la memoria, y las sentencias son instrucciones en el lenguaje de mquina nativo del computador (por ejemplo el lenguaje

ensamblador). Los lenguajes imperativos de alto nivel usan variables y sentencias ms complejas, pero an siguen el mismo paradigma. Las recetas y las listas de revisin de procesos, a pesar de no ser programas de computadora, son tambin conceptos familiares similares en estilo a la programacin imperativa; cada paso es una instruccin, y el mundo fsico guarda el estado (Zoom). Los primeros lenguajes imperativos fueron los lenguajes de mquina de los computadores originales. En estos lenguajes, las instrucciones fueron muy simples, lo cual hizo la implementacin de hardware fcil, pero obstruyendo la creacin de programas complejos. Fortran, cuyo desarrollo fue iniciado en 1954 por John Backus en IBM, fue el primer gran lenguaje de programacin en superar los obstculos presentados por el cdigo de mquina en la creacin de programas complejos. Programacin lgica La programacin lgica consiste en la aplicacin del corpus de conocimiento sobre lgica para el diseo de lenguajes de programacin; no debe confundirse con la disciplina de la lgica computacional. La programacin lgica es un tipo de paradigmas de programacin dentro del paradigma de programacin declarativa. El resto de los subparadigmas de programacin dentro de la programacin declarativa son: programacin funcional, programacin basada en restricciones, programas DSL (de dominio especfico) e hbridos. La programacin lgica gira en torno al concepto de predicado, o relacin entre elementos. La programacin funcional se basa en el concepto de funcin (que no es ms que una evolucin de los predicados), de corte ms matemtico. Programacin funcional En ciencias de la computacin, la programacin funcional es un paradigma de programacin declarativa basado en la utilizacin de funciones aritmticas que no maneja datos mutables o de estado. Enfatiza la aplicacin de funciones, en contraste con el estilo de programacin imperativa, que enfatiza los cambios de estado. La programacin funcional tiene sus races en el clculo lambda, un sistema formal desarrollado en los 1930s para investigar la definicin de funcin, la aplicacin de las funciones y la recursin. Muchos lenguajes de programacin funcionales pueden ser vistos como elaboraciones del clculo lambda. En la prctica, la diferencia entre una funcin matemtica y la nocin de una "funcin" utilizada en la programacin imperativa es que las funciones imperativas pueden tener efectos secundarios, al cambiar el valor de clculos realizados previamente. Por esta razn carecen de transparencia referencial, es decir, la misma expresin sintctica puede resultar en valores diferentes en diferentes momentos dependiendo del estado del programa siendo ejecutado. Con cdigo funcional, en contraste, el valor generado por una funcin depende exclusivamente de los argumentos alimentados a la funcin. Al eliminar los efectos secundarios se puede entender y predecir el comportamiento de un programa mucho ms fcilmente, y esta es una de las principales motivaciones para utilizar la programacin funcional.

Los lenguajes de programacin funcional, especialmente los que son puramente funcionales, han sido enfatizados en el ambiente acadmico principalmente y no tanto en el desarrollo de software comercial. Sin embargo, lenguajes de programacin importantes tales como Scheme, Erlang, Rust, ObjectiveCaml y Haskell, han sido utilizados en aplicaciones comerciales e industriales por muchas organizaciones. La programacin funcional tambin es utilizada en la industria a travs 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 procesar valores mutables. Las hojas de clculo tambin pueden ser consideradas lenguajes de programacin funcional. La programacin funcional tambin puede ser desarrollada en lenguajes que no estn diseados especficamente para la programacin funcional. En el caso de Perl, por ejemplo, que es un lenguaje de programacin imperativo, existe un libro que describe como aplicar conceptos de programacin funcional. JavaScript, uno de los lenguajes ms ampliamente utilizados en la actualidad, tambin incorpora capacidades de programacin funcional. Caractersticas Los programas escritos en un lenguaje funcional estn constituidos nicamente por definiciones de funciones, entendiendo stas no como subprogramas clsicos de un lenguaje imperativo, sino como funciones puramente matemticas, en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresin depende nicamente del significado de sus expresiones), y por tanto, la carencia total de efectos colaterales. Otras caractersticas propias de estos lenguajes son la no existencia de asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteracin (lo que obliga en la prctica a que todas las repeticiones de instrucciones se lleven a cabo por medio de funciones recursivas). Existen dos grandes categoras de lenguajes funcionales: los funcionales puros y los hbridos. La diferencia entre ambos estriba en que los lenguajes funcionales hbridos son menos dogmticos que los puros, al admitir conceptos tomados de los lenguajes imperativos, como las secuencias de instrucciones o la asignacin de variables. En contraste, los lenguajes funcionales puros tienen una mayor potencia expresiva, conservando a la vez su transparencia referencial, algo que no se cumple siempre con un lenguaje funcional hbrido. Ventajas de usar un paradigma funcional Entre las ventajas que suelen citarse de usar un paradigma funcional en la programacin de computadoras, estn las siguientes:1

o o o o

Ausencia de efectos colaterales Proceso de depuracin menos problemtico Pruebas de unidades ms confiables Mayor facilidad para la ejecucin concurrente

Programacin declarativa

La Programacin Declarativa, es un paradigma de programacin que est basado en el desarrollo de programas especificando o "declarando" un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen el problema y detallan su solucin. La solucin es obtenida mediante mecanismos internos de control, sin especificar exactamente cmo encontrarla (tan slo se le indica a la computadora que es lo que se desea obtener o que es lo que se est buscando). No existen asignaciones destructivas, y las variables son utilizadas con Transparencia referencial. 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 en da las aplicaciones informticas son mucho ms ambiciosas que las necesidades de programacin existentes en los aos 1960, 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: mientras en la programacin secuencial (o estructurada) es el programador el que define cul va a ser el flujo del programa, en la programacin dirigida por eventos ser el propio usuario o lo que sea que est accionando el programa el que dirija el flujo del programa. Aunque en la programacin secuencial puede haber intervencin de un agente externo al programa, estas intervenciones ocurrirn cuando el programador lo haya determinado, y no en cualquier momento como puede ser en el caso de la programacin dirigida por eventos.

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 click 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. 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 asignan una serie de eventos que generar dicho elemento, como la pulsacin de un botn del ratn sobre l o el redibujado del control. La programacin dirigida por eventos es la base de lo que llamamos interfaz de usuario, aunque puede emplearse para desarrollar interfaces entre componentes de Software 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 de entrada, procesa estos parmetros, y produce un resultado, todo de manera lineal y sin intervencin del usuario mientras se ejecuta. Con la aparicin y popularizacin de los PC, el software empez a ser demandado para usos alejados de los clsicos acadmicos y empresariales para los cuales era necesitado hasta entonces, y qued patente que el paradigma clsico de programacin no poda responder a las nuevas necesidades de interaccin con el usuario que surgieron a raz de este hecho. 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 anlisis descendente (Top-Down). Un mdulo es cada una de las partes de un programa que resuelve uno de los subproblemas en que se divide el problema complejo original. Cada uno de estos

mdulos tiene una tarea bien definida y algunos necesitan de otros para poder operar. En caso de que un mdulo necesite de otro, puede comunicarse con ste mediante una interfaz de comunicacin que tambin debe estar bien definida. Si bien un mdulo puede entenderse como una parte de un programa en cualquiera de sus formas y variados contextos, en la prctica es comn representarlos con procedimientos y funciones. Adicionalmente, tambin pueden considerarse mdulos las libreras que pueden incluirse en un programa o, en programacin orientada a objetos, 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 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. Los conceptos de la programacin orientada a objetos tienen origen en Simula 67, un lenguaje diseado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard, del Centro de Cmputo Noruego en Oslo. En este centro se trabajaba en simulaciones de naves, que fueron confundidas por la explosin combinatoria de cmo las diversas cualidades de diferentes naves podan afectar unas a las otras. La idea surgi al agrupar los diversos tipos de naves en diversas clases de objetos, siendo responsable cada clase de objetos de definir sus propios datos y comportamientos. Fueron refinados ms tarde en Small talk, desarrollado en Simula en Xerox PARC (cuya primera versin fue escrita sobre Basic) pero diseado para ser un sistema completamente dinmico en el cual los objetos se podran crear y modificar "sobre la marcha" (en tiempo de ejecucin) en lugar de tener un sistema basado en programas estticos. La programacin orientada a objetos se fue convirtiendo en el estilo de programacin dominante a mediados de los aos ochenta, en gran parte debido a la influencia de C++, una extensin del lenguaje de programacin C. Su dominacin fue consolidada gracias al auge de las Interfaces grficas de usuario, para las cuales la programacin orientada a objetos est particularmente bien adaptada. En este caso, se habla tambin de programacin dirigida por eventos. Las caractersticas de orientacin a objetos fueron agregadas a muchos lenguajes existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp y Pascal, entre otros. La adicin de estas caractersticas a los lenguajes que no fueron diseados inicialmente para ellas condujo a menudo a problemas de compatibilidad y en la capacidad de mantenimiento del cdigo. Los lenguajes orientados a objetos "puros", por su parte, carecan de las caractersticas de las cuales muchos programadores haban venido a depender. Para saltar este obstculo, se hicieron muchas tentativas para crear nuevos lenguajes basados en mtodos orientados a objetos, pero permitiendo

algunas caractersticas imperativas de maneras "seguras". El Eiffel de Bertrand Meyer fue un temprano y moderadamente acertado lenguaje con esos objetivos, pero ahora ha sido esencialmente reemplazado por Java, en gran parte debido a la aparicin de Internet y a la implementacin de la mquina virtual de Java en la mayora de navegadores. PHP en su versin 5 se ha modificado; soporta una orientacin completa a objetos, cumpliendo todas las caractersticas propias de la orientacin a objetos. Este es el paradigma que las comunidades de programadores han tenido ms indice de adaptacin en la actualidad debido a que permite procesar grandes cantidades de informacin al clasificar a las entidades que forman parte de la problemtica en "plantillas" que contienen todas las propiedades y los procedimientos que pueden ser realizados por esa entidad. Estas plantillas son llamadas clases y la manipulacin de un ejemplar en especfico es su objeto. Este tipo de paradigma permite que varios conceptos relacionados con l (entre los clave Herencia, Encapsulacin, Polimorfismo) nos permitan un manejo eficiente de grandes cantidades de informacin. Es usando comnmente para la creacin de grandes programas como videojuegos, los cuales manejan grandes cantidades de datos. En la Programacin Orientada a Objetos (POO u OOP segn siglas en ingls) se definen los programas en trminos de "clases de objetos", objetos que son entidades que combinan estado (es decir, datos) comportamiento (esto es, procedimientos o mtodos) e identidad (propiedad del objeto que lo diferencia del resto). La programacin orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas 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 otras clases (e incluso entre objetos de la misma clase, al poder tener valores bien diferenciados en sus atributos). A su vez, dispone de mecanismos de interaccin (los llamados mtodos) que favorecen la comunicacin entre objetos (de una misma clase o de distintas), y en consecuencia, el cambio de estado en los propios objetos. Esta caracterstica lleva a tratarlos como unidades indivisibles, en las que no se separan (ni deben separarse) informacin (datos) y procesamiento (mtodos). Dada esta propiedad de conjunto de una clase de objetos, que al contar con una serie de atributos definitorios, requiere de unos mtodos para poder tratarlos (lo que hace que ambos conceptos estn ntimamente entrelazados), el programador debe pensar indistintamente en ambos trminos, ya que no debe nunca separar o dar mayor importancia a los atributos a favor de los mtodos, ni viceversa. Hacerlo puede llevar al programador a seguir el hbito errneo de crear clases contenedoras de informacin por un lado y clases con mtodos que manejen esa informacin por otro (llegando a una programacin estructurada camuflada en un lenguaje de programacin orientada a objetos).

Esto difiere de los lenguajes imperativos tradicionales, en los que los datos y los procedimientos estn separados y sin relacin, ya que lo nico que se busca es el procesamiento de unos datos y los procedimientos estn separados y sin relacin, ya que lo nico que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programacin estructurada anima al programador a pensar sobre todo en trminos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. Los programadores de lenguajes imperativos escriben funciones y despus les pasan los datos. Los programadores que emplean lenguajes orientados a objetos definen objetos con datos y mtodos y despus envan mensajes a los objetos diciendo que realicen esos mtodos por s mismos. Un objeto se puede definir como un grupo de procedimientos que comparten un estado. Se define al conjunto de datos como "estado", y "mtodos" como el conjunto de procedimientos que pueden alterar ese estado. Un programa orientado a objetos es un mtodo de implementacin en el que los programas estn organizados como colecciones de objetos, donde cada uno es una instancia de alguna clase, y donde todas las clases son miembros de una jerarqua de clases conectadas por relaciones de herencia. Este tipo de lenguajes son muy recientes en comparacin a los primeros lenguajes 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 de encontrar la solucin a problemas de una forma que ofrece muchas ventajas y facilidades que no se tenan anteriormente. Introduce nuevos conceptos, que superan y amplan conceptos antiguos ya conocidos. Entro ellos destacan los siguientes: OBJETO: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad ("mtodos"). Corresponden a los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). CLASE: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciacin es la lectura de estas definiciones y la creacin de un objeto a partir de ellas. Una clase es una coleccin de objetos similares o la implementacin, declaracin o definicin de un tipo de objeto. Cada vez que se construye un objeto de una clase se crea una instancia de esa clase. Por ejemplo en Visual Basic, se tiene la clase Form, y se pueden crear instancias de esa clase al tener 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 ejecucin se desencadena tras la recepcin de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un mtodo puede producir un cambio en lar propiedades del objeto, o la generacin de un "evento" con un nuevo mensaje para otro objeto del sistema.

EVENTO: un suceso en el sistema (tal como una interaccin del usuario con la mquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando 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 cuyo valor puede ser alterado por la ejecucin de algn mtodo. ESTADO INTERNO: es una propiedad invisible de los objetos, que puede nicamente accedida y alterada por un mtodo del objeto, y que se utiliza para indicar 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 las siguientes: 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 estas caractersticas. Los procesos, las funciones o los mtodos pueden tambin ser abstrados y cuando lo estn, una variedad de tcnicas son requeridas para ampliar una abstraccin. ENCAPSULAMIENTO: tambin llamado "ocultacin de la informacin". Cada objeto est aislado del exterior, es un mdulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especfica cmo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificacin por quien no tenga derecho a acceder a ellas, solamente los propios mtodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstraccin. La aplicacin entera se reduce a un agregado o rompecabezas de objetos. Esta caracterstica o propiedad permite por tanto ejecutar la informacin al resto de los objetos, impidiendo as accesos incorrectos o conflictos.

POLIMORFISMO: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizar el comportamiento correspondiente al objeto que se est usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocacin de un comportamiento en una referencia producir el comportamiento correcto para el tipo real del objeto referenciado. Por ejemplo en Visual 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, formando una jerarqua de clasificacin. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados 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 en rboles o enrejados que reflejan un comportamiento comn. Cuando un objeto pertenece a ms de una clase se dice que hay herencia mltiple; esta caracterstica no est soportada por algunos lenguajes (como Java). Con esta propiedad, los objetos 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 o o o o o o o o o o o o o o o o o C++ Objective C Java Smalltalk Eiffel Lxico (en castellano) Ruby Python OCAML Object Pascal CLIPS Visual .net Java Actionscript COBOL Perl C# Visual Basic.NET

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 (calendarizacin). Este paradigma representa uno de los desarrollos ms fascinantes en los lenguajes de programacin desde 1990 y no es sorprendente que recientemente haya sido identificada por la ACM (Asociacin de Maquinaria Computacional) como una direccin estratgica en la investigacin en computacin. Se trata de un paradigma de programacin basado en la especificacin de un conjunto de restricciones, las cuales deben ser satisfechas por cualquier solucin del problema planteado, en lugar de especificar los pasos para obtener dicha solucin. La programacin con restricciones se relaciona mucho con la programacin lgica y con la investigacin operativa. De hecho cualquier programa lgico puede ser traducido en un programa con restricciones y viceversa. Muchas veces los programas lgicos son traducidos a programas con restricciones debido a que la solucin es ms eficiente que su contraparte. La diferencia entre ambos radica principalmente en sus estilos y enfoques en el modelado del mundo. Para ciertos problemas es ms natural (y por ende ms simple) escribirlos como programas lgicos, mientras que en otros es ms natural escribirlos como programas con restricciones. El enfoque de la programacin con restricciones se basa principalmente en buscar un estado en el cual una gran cantidad de restricciones sean satisfechas simultneamente. Un problema se define tpicamente como un estado de la realidad en el cual existe un nmero de variables con valor desconocido. Un programa basado 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 de otro lenguaje. El primer lenguaje utilizado a tal efecto fue Prolog. Por esta razn es que este campo fue llamado inicialmente Programacin Lgica con Restricciones. Ambos paradigmas comparten caractersticas muy similares, tales como las variables lgicas (una vez que una variable es asignada a un valor, no puede ser cambiado), o el back tracking. La programacin con restricciones puede ser implementada como un lenguaje propio o como bibliotecas para ser usadas en algn lenguaje de programacin imperativo. Programacin a nivel funcional

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. En su discurso de aceptacin del Premio Turing en 1977, Backus describi lo que considera 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. Cada nuevo lenguaje incorpora, luego de algo de limpieza, todas las caractersticas de los lenguajes anteriores ms algunas otras. [...] Cada nuevo lenguaje presenta nuevas caractersticas de moda... pero el hecho es que pocos lenguajes hacen que la tarea de programar sea ms econmica, o ms segura como para justificar el costo de producirlo y aprender a utilizarlo." El lenguaje de programacin FP fue el primer lenguaje diseado especficamente para dar soporte al estilo de programacin a nivel funcional. 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. Otra ventaja potencial de este enfoque es la posibilidad de restringirse nicamente a las funciones estrictas y asociarles un mecanismo de evaluacin por valor. que es el ms sencillo de implementar. Otra ventaja es la existencia de definiciones de nivel funcional que no son simplemente el correspondiente de una definicin de nivel de valores. Estas definiciones, a veces un poco crpticas por lo concisas representan un estilo de programacin muy poderoso. Si bien la propuesta de Backus data de los aos 70 ella ha sido poco adoptada por la comunidad de programacin funcional que han preferido basar sus trabajos en el clculo Lambda. La programacin a nivel funcional en el estilo de FP tiene una fuerte relacin con la lgica 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 contrastantes identificados por John Backus en su trabajo sobre los Programas como objetos matemticos, siendo el otro la programacin a nivel funcional. El trmino inicialmente utilizado por Backus fue el de programacin a nivel de objetos, pero en la actualidad ese trmino traera confusin con la programacin orientada a objetos. Los programas a nivel de valores describen como combinar diferentes valores (por

ejemplo, nmeros, caracteres, etc.) para formar nuevos valores hasta obtener el resultado final. Los nuevos valores se obtienen como resultado de la aplicacin de operaciones que transforman valores en otros valores, como por ejemplo, la suma, la concatenacin, la inversin de matrices, etc. Los lenguajes que siguen el estilo de von 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 componentes La programacin orientada a componentes (que tambin es llamada basada en componentes) es una rama de la ingeniera del software, con nfasis en la descomposicin de sistemas ya conformados en componentes funcionales o lgicos con interfaces bien definidas usadas para la comunicacin entre componentes. Se considera que el nivel de abstraccin de los componentes es ms alto que el de los objetos y por lo tanto no comparten un estado y se comunican intercambiando mensajes que contienen datos. Programacin Orientada a Aspectos

La Programacin Orientada a Aspectos (POA) es un paradigma de programacin relativamente reciente cuya intencin es permitir una adecuada modularizacin 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.

4.-DEFINICIN DEL LENGUAJE DE PROGRAMACIN


Un lenguaje de programacin es un lenguaje que puede ser utilizado para controlar el comportamiento de una mquina, particularmente una computadora. Consiste en un conjunto de reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programacin y lenguaje informtico como si fuesen sinnimos, no tiene por qu ser as, ya que los lenguajes informticos engloban a los lenguajes de programacin y a otros ms, como, por ejemplo, el HTML.

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

5.-HISTORIA DE LOS LENGUAJES DE PROGRAMACIN


Los primeros lenguajes de programacin surgieron de la idea de Charles Babagge, la cual se le ocurri a este hombre a mediados del siglo XIX. Era un profesor matemtico de la universidad de Cambridge e inventor ingles, que al principio del siglo 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 motivos tcnicos no pudo construirse hasta mediados del siglo XX. Con l colaboro Ada Lovedby, la cual es considerada como la primera programadora de la historia, pues realizo programas para aqulla supuesta maquina de Babagge, en tarjetas perforadas. 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 la programacin, sobre todo si observamos que en cuanto se empez a programar, los programadores utilizaron las tcnicas diseadas por Charles Babagge, y Ada, que consistan entre otras, en la programacin mediante tarjetas perforadas. A pesar de ello, Ada ha permanecido como la primera programadora de la historia. Se dice por tanto que estos dos genios de antao, se adelantaron un siglo a su poca, lo cual describe la inteligencia 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 Babagge se dedico al proyecto de la mquina analtica, abandonando la mquina de diferencias, que se pudiera programar con tarjetas perforadas, gracias a la creacin de Charles Jacquard (francs). Este hombre era un fabricante de tejidos y haba creado un telar que poda reproducir automticamente patrones de tejidos, leyendo la informacin codificada en patrones de agujeros perforados en tarjetas de papel rgido. Entonces Babagge intento crear la mquina que se pudiera programar con tarjetas perforadas para efectuar cualquier clculo con una precisin de 20 dgitos. Pero la tecnologa de la poca no bastaba para hacer realidad sus ideas. Si bien las ideas de Babagge no llegaron a materializarse de forma definitiva, su contribucin es decisiva, ya que los ordenadores actuales responden a un esquema anlogo al de la mquina analtica. En su diseo, la mquina constaba de cinco unidades bsicas: 1) Unidad de entrada, para introducir datos e instrucciones; 2) Memoria, donde se almacenaban datos y resultados intermedios; 3) Unidad de control, para regular la secuencia de ejecucin de las operaciones; 4) Unidad Aritmtico-Lgica, que efecta las operaciones; 5) Unidad de salida, encargada de comunicar al exterior los resultados. Charles Babbage, conocido como el "padre de la informtica" no pudo completar en aquella poca la construccin del computador que haba soado, dado

que faltaba algo fundamental: la electrnica. El camino sealado de Babbage, no fue nunca abandonado y siguindolo, se construyeron las primeras computadoras. En la dcada de los 40 empezaron a surgir los primeros lenguajes de programacin de ordenadores. Estos primeros lenguajes (llamados lenguajes Ensamblador) estaban basados en smbolos o nemnicos que se correspondan directamente con instrucciones de cdigo mquina (el cdigo que es capaz de interpretar un ordenador sin necesidad de un intrprete o traductor). En 1957 aparece el lenguaje Fortran (siglas de FORmulaTRANslator), el primer lenguaje de alto nivel ampliamente difundido y utilizado a nivel mundial. El primer compilador de Fortran fue desarrollado por un equipo de IBM liderado por John W. Backus. Inicialmente Fortran fue muy utilizado en el mundo cientfico y en aplicaciones militares, y se escribieron multitud de libreras matemticas para clculo numrico, algunas de las cuales siguen utilizndose hoy en da. Ya en 1960 aparece LISP, un lenguaje idneo para crear programas de inteligencia artificial porque utilizaba conceptos de programacin funcional y recursividad. Aunque no es muy utilizado para el desarrollo de aplicaciones empresariales, LISP sigue siendo utilizado hoy en da en entornos docentes (yo mismo lo utilizo en una asignatura en la que se ensean diversos paradigmas de programacin). Tambin en 1960 aparece COBOL, un lenguaje preparado para procesar grandes cantidades de informacin. Esto hizo que fuese ampliamente adoptado en bancos y grandes 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 el lenguaje que muchos (entre los que me incluyo) utilizamos para hacer nuestros primeros pinitos en el mundo de la programacin, cuando desterramos nuestros viejos ordenadores Comodore-64 sustituyndolos por el recin aparecido Amstrad CPC 464 y su flamante unidad de cinta (que despus de leer un par de veces cada cinta era incapaz de volver a hacerlo qu tiempos aquellos!). Ya en las primeras versiones de MS-DOS (el primer sistema operativo de Microsoft) se inclua un intrprete de BASIC. Los lenguajes C y Pascal El lenguaje Pascal aparece por primera vez en 1971, diseado por el profesor NiklausWirth con el objetivo de facilitar el aprendizaje de la programacin a sus alumnos. Pascal fue muy utilizado en la dcada de los 80 y los 90, y es el precursor de lenguajes como Delphi. En 1972, Kenneth L. Thompson y Dennis M. Ritchie crean el lenguaje C en los laboratorios Bell. Se llama lenguaje C porque proviene de uno anterior llamado lenguaje B, que a su vez provena del lenguaje BCPL. En mi opinin, el lenguaje C ha sido el lenguaje de ms repercusin en la historia de los ordenadores, y su

sintaxis ha servido como punto de partida para muchos de los lenguajes de programacin actuales como Java, C++ o C#. Hoy en da sigue siendo muy utilizado en multitud de aplicaciones, incluido el sistema operativo Linux, cuyo ncleo est escrito en su mayor parte en lenguaje C. Los lenguajes Orientados a Objetos A finales de la dcada de los 80 se populariz un nuevo paradigma de programacin denominado Programacin Orientada a Objetos. Se trataba de una nueva forma de programar que haca ms fcil escribir y mantener cdigo, porque se asemejaba ms con la forma de pensar del cerebro humano. Pronto los lenguajes evolucionaron a sus respectivas versiones orientadas a Objetos. As naci en 1986 el lenguaje C++ de manos de Bjarne Stroustrup, que parta del lenguaje C y le aada la posibilidad de trabajar con objetos. Nace tambin en 1986 el lenguaje Delphi (en sus principios denominado Object Pascal), como una evolucin 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 la importancia que tiene actualmente en el mundo del desarrollo de software en general. Java es un lenguaje orientado a objetos diseado en 1990 por James Gosling y Patrick Naughton, de la empresa Sun Microsystems. El origen del nombre Java es bastante curioso, se rumorea que sus creadores discutan sobre cmo llamar al lenguaje mientras tomaban caf, y al final les gust el nombre de la marca del caf que tomaban, el caf Java. Su desarrollo se realiz siempre con un concepto en mente: Write Once, RunAnywhere. Esto significa que Java se dise pensando en que un programa escrito en este lenguaje pudiese ser ejecutado en cualquier mquina, no slo ordenadores, sino tambin cualquier dispositivo electrnico como calculadoras, dispositivos mviles, porttiles, etc. Esta idea de un lenguaje universal ya haba sido abordada por el lenguaje C y su estandarizacin ANSI, pero la realidad es que no se consigui hasta la llegada de Java. En la actualidad el uso de Java ha sido muy impulsado por la amplia influencia de Internet, debido a la universalidad de Java por la capacidad de sus programas para ser 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 tiene que traducirse a un cdigo que pueda utilizar la mquina. Los programas traductores que pueden realizar esta operacin se llaman compiladores. stos, como los

programas ensambladores avanzados, pueden generar muchas lneas de cdigo de mquina por cada proposicin del programa fuente. Se requiere una corrida de compilacin antes de procesar los datos de un problema.Los compiladores son aquellos cuya funcin es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje mquina con cdigo binario). Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el cdigo. Lenguajes interpretados Se puede tambin utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el cdigo objeto que se produce durante la corrida de compilacin para utilizarlo en una corrida de produccin futura, el programador slo carga el programa fuente 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 de manera permanente dentro de la mquina, convierte cada proposicin del programa fuente en lenguaje de mquina conforme vaya siendo necesario durante el proceso de 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 y traducir a lenguaje mquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instruccin del ciclo tendr que volver a ser interpretado cada vez 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 rpido en tiempo de diseo (porque no se tiene que estar compilando a cada momento el cdigo completo). El intrprete elimina la necesidad de realizar una corrida de compilacin despus de cada modificacin del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelacin deber ejecutarse con mucha mayor rapidez que uno que se debe interpretar 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, denominados bits (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 denominan instrucciones de mquina o cdigo maquina. Fue el primer lenguaje utilizado en la programacin de computadoras, pero dejo de utilizarse por su dificultad y complicacin, siendo sustituido por otros lenguajes ms fciles de aprender y utilizar,

que adems reducen la posibilidad de cometer errores. El lenguaje mquina es el conocido cdigo binario. Generalmente, en la codificacin de los programas se empleaba el sistema hexadecimal para simplificar el trabajo de escritura. Todas las instrucciones preparadas en cualquier lenguaje mquina tienen por lo menos dos partes. 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 operacin para 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 instrucciones que se van a manipular, el nmero de operndoos de una instruccin varia en distintas computadoras. Ventajas del lenguaje mquina: posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traduccin posterior, lo que supone una velocidad de ejecucin superior a cualquier otro lenguaje de programacin. Desventajas del lenguaje mquina: dificultad y lentitud en la codificacin. Poca fiabilidad. Gran dificultad para verificar y poner a punto los programas. Los programas solo son ejecutables en el mismo procesador (CPU). En la actualidad, las desventajas superan a las ventajas, lo que hace prcticamente no recomendables a los 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 el ensamblador. El lenguaje ensamblador es el primer intento de sustituir el lenguaje maquina por otro ms similar a los utilizados por las personas. Este intenta desflexibilizar la representacin de los diferentes campos. Esa flexibilidad se consigue no escribiendo los campos en binario y aproximando la escritura al lenguaje. A principios de la dcada de los 50 y con el fin de facilitar la labor de los programadores, se desarrollaron cdigos mnemotcnicos para las operaciones y direcciones simblicas. Los cdigos mnemotcnicas son los smbolos alfabticos del lenguaje maquina. La computadora sigue utilizando el lenguaje maquina para procesar los datos, pero los programas ensambladores traducen antes los smbolos de cdigo de operacin especificados a sus equivalentes en el lenguaje maquina. En la actualidad los programadores no asignan nmeros de direccin reales a los datos simblicos, simplemente especifican donde quieren que se coloque la primera localidad del programa y el programa ensamblador se encarga de lo dems, asigna localidades tanto para las instrucciones como los datos. Estos programas de ensamble o ensambladores tambin permiten a la computadora convertir las instrucciones en lenguaje ensamblador del programador en su propio cdigo maquina. Un programa de instrucciones escrito en lenguaje ensamblador por un programador se llama programa fuente. Despus de que el ensamblador convierte el programa fuente en cdigo maquina a este se le denomina programa objeto. Para los programadores es ms fcil escribir instrucciones en un lenguaje ensamblador que en cdigo de lenguaje maquina pero es posible que se requieran dos corridas de

computadora antes de que se puedan utilizar las instrucciones del programa fuente para producir las salidas deseadas. El lenguaje de bajo nivel es el lenguaje de programacin que el ordenador puede entender 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 seales electrnicas binarias. Dar una instruccin a un microprocesador supone en realidad enviar series de unos y ceros espaciadas en el tiempo de una forma determinada. Esta secuencia de seales se denomina cdigo mquina. El cdigo representa normalmente datos y nmeros e instrucciones para manipularlos. Un modo ms fcil de comprender el cdigo mquina es dando a cada instruccin un mnemnico, como por ejemplo STORE, ADD o JUMP. Esta abstraccin da como resultado el ensamblador, un lenguaje de muy bajo nivel que es especfico de cada microprocesador. Los lenguajes de bajo nivel permiten crear programas muy rpidos, pero que son, a menudo, difciles de aprender. Ms importante es el hecho de que los programas escritos en un bajo nivel sean altamente especficos de cada procesador. Si se lleva el programa a otra mquina se debe reescribir el programa desde el principio. Ventajas del lenguaje ensamblador frente al lenguaje mquina: mayor facilidad de codificacin y, en general, su velocidad de clculo, ahorran tiempo y requieren menos atencin a detalles. Se incurren en menos errores y los que se cometen son ms fciles de localizar. Tanto el lenguaje maquina como el ensamblador gozan de la ventaja de mnima ocupacin de memoria y mnimo tiempo de ejecucin en comparacin con el resultado de la compilacin del programa equivalente escrito en otros lenguajes. Los programas en lenguaje ensamblador son ms fciles de modificar que los programas en lenguaje mquina. Desventajas del lenguaje ensamblador: dependencia total de la maquina lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes mquinas). El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Machintosh. La formacin de los programadores es ms compleja que la correspondiente a los programadores de alto nivel, ya que exige no solo las tcnicas de programacin, sino tambin el conocimiento del interior de la maquina El programador ha de conocer perfectamente el hardware del equipo, ya que maneja directamente las posiciones de memoria, registros del procesador y dems elementos fsicos. Todas las instrucciones son elementales, es decir, en el programa se deben describir con el mximo detalle todas las operaciones que se han de efectuar en la mquina para la realizacin de cualquier proceso. Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran bsicamente en aplicaciones de tiempo real, control de procesos y de dispositivos electrnicos.

Lenguajes de alto nivel: Estos lenguajes son los ms utilizados por los programadores. Estn diseados para que las personas escriban y entiendan los programas de un modo mucho ms fcil que los lenguajes mquina y ensamblador. Un programa escrito en lenguaje de alto nivel es independiente de la mquina (las instrucciones no dependen del diseo del hardware o de una computadora en particular), por lo que estos programas son portables o transportables. Los programas escritos en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificacin en diferentes tipos de computadoras. Son lenguajes de programacin en los que las instrucciones enviadas para 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 uso de un intrprete que traduzca el lenguaje de alto nivel a un lenguaje de bajo nivel que el sistema pueda entender. Por lo general se piensa que los ordenadores son mquinas que realizan tareas de clculos o procesamiento de texto. La descripcin anterior es slo una forma muy esquemtica de ver una computadora. Hay un alto nivel de abstraccin entre lo que se pide a la computadora y lo que realmente comprende. Existe tambin una relacin compleja entre los lenguajes de alto nivel y el cdigo mquina. Los lenguajes de alto nivel son normalmente fciles de aprender porque estn formados por elementos de lenguajes naturales, como el ingls. En BASIC, el lenguaje de alto nivel ms conocido, los comandos como IF CONTADOR=10 THEN STOP pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a diez. Por desgracia para muchas personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las computadoras parecen comprender un lenguaje natural, lo hacen en realidad de una forma rgida y sistemtica. Los lenguajes de alto nivel, tambin denominados lenguajes evolucionados, surgen con posterioridad a los anteriores (lenguaje mquina, lenguajes de bajo nivel o ensamblador) con los siguientes objetivos, entre otros: Lograr independencia de la maquina, pudiendo utilizar un mismo programa en diferentes equipos con la nica condicin de disponer de un programa traductor o compilador, que es suministrado por el fabricante, para obtener el programa ejecutable en lenguaje binario de la maquina que se trate. Adems, no se necesita conocer el hardware especifico de dicha maquina. Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una forma ms sencilla, eliminando muchas de las posibilidades de cometer errores que se daban en el lenguaje maquina, ya que se utilizan palabras (en ingles) en lugar de cadenas de smbolos sin ningn 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, de manera que se puedan utilizar siempre que se quiera sin necesidad de programarlas cada vez.

Ventajas de los lenguajes de alto nivel: el tiempo de formacin de los programadores es relativamente corto comparado con otros lenguajes. La escritura de programas se basa en reglas sintcticas similares a los lenguajes humanos, nombres de las instrucciones tales como READ, WRITE, PRINT, OPEN, etc. Las modificaciones y puestas a punto de los programas son ms fciles, Reduccin del costo de los programas, Transportabilidad, Permiten tener una mejor documentacin, y Son ms fciles de mantener. Desventajas de los lenguajes de alto nivel: incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo. No se aprovechan los recursos internos de la maquina que se explotan mucho mejor en lenguajes mquina y ensambladores. Aumento de la ocupacin 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 es la gran cantidad de ellos que existen actualmente en uso, adems de las diferentes versiones o dialectos que se han desarrollado de algunos de ellos. Es difcil establecer una clasificacin general de los mismos, ya que en cualquiera que se realice habr lenguajes que pertenezcan a ms de uno de los grupos establecidos. Una clasificacin muy extendida, atendiendo a la forma de trabajar de los programas y a la filosofa con que fueron concebidos, es la siguiente: o Lenguajes imperativos. Utilizan instrucciones como unidad de trabajo de los programas (Cobol, Pascal, C, Ada). o Lenguajes declarativos. Los programas se construyen mediante descripciones de funciones o expresiones lgicas (Lisp, Prolog). o Lenguajes orientados a objetos. El diseo de los programas se basa ms en los datos y su estructura. La unidad de proceso es el objeto y en el se incluyen los datos (variables) y las operaciones que actan sobre ellos (Smalltalk, C++). 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 principal objetivo de aproximar el diseo y construccin de programas al lenguaje de las personas. Otra clasificacin que se puede hacer es la de atendiendo al desarrollo de los lenguajes desde la aparicin de las computadoras, que sigue un cierto paralelismo con las generaciones establecidas en la evolucin de las mismas: 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).

o Quinta generacin. Orientados a la inteligencia artificial y al procesamiento de los lenguajes naturales (LISP, PROLOG). Para la mejor compresin se harn unas definiciones: Programa: es un conjunto de instrucciones escritas en un lenguaje de programacin que indican a la computadora la secuencia de pasos, para resolver un problema. Cdigo fuente: esta creado en algn lenguaje de alto nivel, por lo que es entendido 100% por el ser humano. Este debe estar complementado por su documentacin o manuales donde se indica el desarrollo lgico del mismo. Cdigo objeto: es creado por los compiladores y nos sirve como enlace entre el programa fuente y el ejecutable.

7.-ALGUNOS LEGUAJES DE PROGRAMACIN DE ALTO NIVEL


A continuacin se presentan varios de los ms conocidos y utilizados, lenguajes de alto nivel. FORTRAN: Abreviatura de FORmulaTRANslator (traductor de formulas), fue definido alrededor del ao 1955 en Estados Unidos por la compaa IBM. Es el ms antiguo de los lenguajes de alto nivel. Antes de l, todos los programas se escriban en lenguaje ensamblador o en lenguaje mquina. Es un lenguaje especializado en aplicaciones tcnicas y cientficas. Se caracteriza por su potencia en los clculos matemticos, 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 sus caractersticas fueron incorporadas mas tarde en el primer lenguaje BASIC. Una de sus ventajas es que es un lenguaje compacto y es tambin ampliamente utilizado para aplicaciones en los negocios que no requieren manejo de grandes archivos de datos. Hasta 1961 se mantuvo como monopolio de IBM, pero posteriormente se fue implementando en ordenadores de otros fabricantes. A lo largo de su existencia han aparecido diferentes versiones, entre las que destaca la adoptada en 1966 por el ANSI (American NationalStandardsInstitute), en la que se definieron nuevas reglas del lenguaje y se logro la independencia del mismo con respecto a la mquina; es decir, comenz la portabilidad del lenguaje. Esta versin se denomin FORTRAN IV o 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 apareci una nueva versin ms evolucionada que se llamo FORTRAN V o FORTRAN 77. Est reflejada en el documento ANS X3.9-1978: Programming Language FORTRAN y define dos niveles del lenguaje denominados FORTRAN 77 completo y FORTRAN 77 bsico, siendo el segundo un subconjunto del primero. Incluye, adems, instrucciones para el manejo de cadenas de caracteres y de archivos, as como otras para la utilizacin de tcnicas de programacin estructurada. Estas caractersticas hacer que el lenguaje tambin sea vlido para determinadas aplicaciones de gestin.

A mediados de los aos setenta se proporcionaron virtualmente cada computadora, mini o mainframe, con un sistema FORTRAN 66 normal. Era por consiguiente posible escribir programas en FORTRAN en cualquier sistema y estar bastante seguro que estos pudieran moverse para trabajar en cualquier otro sistema bastante fcil. Esto, y el hecho que pudieran procesarse programas de FORTRAN muy eficazmente. La ultima normalizacin del lenguaje, FRONTRAN 90, se encuentra en el documento ANS X3.198-1991 en la que se incluyen caractersticas como la recursividad, tratamiento paralelo de tablas y uso de memoria dinmica. Permite expresar los programas de maneras que se satisfacen mas a un ambiente de la informtica moderna y han quedado obsoletos muchos de los mecanismos que eran apropiados en FROTRAN 77. En FROTRAN 90 algunos rasgos de FROTRAN 77 han sido reemplazados por rasgos mejores, ms seguros y ms eficaces, muchos de estos fueron quitados del idioma FORTRAN 95. El FRONTRAN tiene la ventaja de ser un lenguaje compacto que sirve muy bien para satisfacer las necesidades de los cientficos y los estadsticos de los negocios. COBOL: Es el lenguaje ms utilizado en las aplicaciones de gestin, creado en 1960 por un comit denominado CODASYL (COnferenceonDAtaSYstemsLanguages), patrocinado por el Departamento de Defensa de Estados Unidos, a fin de disponer de 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 estndar fue 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, que facilita el diseo estructurado de los programas. Sus caractersticas ms destacables son las siguientes: se asemeja al lenguaje natural (ingls), es autodocumentado y ofrece grandes facilidades en el manejo de archivos, as como en la edicin de informes escritos. Puede emplear trminos comnmente utilizados en los negocios. Entre sus inconvenientes estn sus rgidas reglas de formatos de escritura, la necesidad de escribir todos los elementos al mximo detalle, la extensin excesiva en sus sentencias, e incluso duplicacin en algunos casos, y la inexistencia de funciones matemticas. No obstante, se puede afirmar que en la actualidad continua siendo el lenguaje ms utilizado en las aplicaciones de gestin. PL/I: Fue creado a comienzos de los aos sesenta por IBM para ser usado en sus equipos del sistema 360. Inspirndose en los lenguajes ALGOL, COBOL y FORTRAN se desarrollo el PL/I (ProgrammingLanguage/I) tomando las mejores caractersticas de los anteriores y aadiendo algunas nuevas, con el objetivo de obtener un lenguaje lo mas general posible en cuanto a su implementacin, til para aplicaciones tcnico-cientficas, comerciales, de proceso de textos, de bases de datos y de programacin de sistemas. Se trata de un lenguaje de programacin

complejo. Compilado y estructurado, es capaz de gestionar errores y de procesar multitareas, y se emplea en entornos acadmicos y de investigacin. Entre sus novedades esta su gran libertad en el formato de escritura de los programas: soporta la programacin estructurada y diseo modular. Es un lenguaje flexible y sofisticado. No obstante, no ha superado a sus progenitores en sus aplicaciones especficas, debido en parte a su amplitud y, por ello, al tamao de su compilador que hasta ahora solo se poda instalar en grandes equipos. El elemento bsico de este programa es el enunciado que termina en punto y coma. Los enunciados se combinan en procedimientos. Un procedimiento puede representar por completo a un programa pequeo o un bloque de construccin o modulo de un programa ms complejo. BASIC: El lenguaje BASIC fue diseado por los profesores John G. Kemeny y Thomas E. Kurtz del Dartmouth College (Estados Unidos) en 1965, con el objetivo principal de proporcionar a los principiantes un lenguaje fcil de aprender, como se indica en su nombre Beginner'sAll-purposeSymbolicInstructionCode (Cdigo de instrucciones simblico de propsito general para principiantes). Es un lenguaje interactivo muy popular que tiene una aceptacin debido a la facilidad de su uso, es un idioma simple para aprender y fcil de traducir. Que s interactivo, permite la comunicacin directa entre el usuario y el sistema de cmputo durante la preparacin y uso de los programas. Entre sus principales novedades estn las de ser un lenguaje interpretado y de uso conversacional, til para aplicaciones tcnicas y de gestin. Esto, unido a la popularizacin de las microcomputadoras y computadoras personales, ha hecho que su utilizacin sea haya extendido enormemente, a la vez que ha propiciado el surgimiento de una gran diversidad de diversiones que extienden y se adaptan a necesidades particulares el lenguaje original. Existen multitud de intrpretes y compiladores del lenguaje. PASCAL: Fue creado por el matemtico suizo Nicklaus Wirth en 1970, basndose en el lenguaje ALGOL, en cuyo diseo haba participado en los aos sesenta. Su nombre proviene del filsofo y matemtico francs del siglo XVII, Blaise Pascal, que invento la primera mquina tipo mecnico para sumar. Fue el primer gran lenguaje creado despus de haber sido ampliamente diseminados los conceptos asociados con la programacin estructurada. Aunque en principio la idea del diseador era proporcionar un lenguaje adecuado para la enseanza de los conceptos y tcnicas de programacin, con el tiempo ha llegado a ser un lenguaje ampliamente utilizado en todo tipo de aplicaciones, que posee grandes facilidades para la programacin de sistemas y diseo grafico. Aporta los conceptos de tipo de datos, programacin estructurada y diseo descendente, entre otros, adems de haberse convertido en predecesor de otros lenguajes ms modernos, como MODULA-2 y ADA.

C: Este lenguaje fue creado en 1972 por Dennis Ritchie a partir del trabajo elaborado por su colega de los laboratorios Bell Telephone, Ken Thompson. Estos haban diseado con anterioridad el sistema operativo UNIX, y su intencin al desarrollar el lenguaje C fue la de conseguir un lenguaje idneo para la programacin de sistemas que fuese independiente de la maquina, con el cual escribir su sistema UNIX. Aunque, como acabo de decir, fue diseado inicialmente para la programacin de sistemas, posteriormente su uso se ha extendido a ablaciones tcnico-cientficas, de bases de datos, de proceso de textos, etc. En 1980 Bjarne Stroustrup, inspirado en el lenguaje Simula67 adicion las caractersticas de la programacin orientada a objetos incluyendo la ventaja de una biblioteca de funciones orientadas a objetos) y lo denomino C con clases. Para 1983 dicha denominacin cambio a la de C++. Con este nuevo enfoque surge la nueva metodologa que aumenta las posibilidades de la programacin bajo nuevos conceptos. La utilizacin ptima de este lenguaje se consigue dentro de su entorno natural, que ese el sistema operativo UNIX, y entre sus caractersticas destaca el uso de programacin estructurada para resolver tareas de bajo nivel, as como la amplia librera de rutinas de que dispone. El lenguaje C rene caractersticas de programacin intermedia entre los lenguajes ensambladores y los lenguajes de alto nivel; con gran podero basado en sus operaciones a nivel de bits (propias de ensambladores) y la mayora de los elementos de la programacin estructurada de los lenguajes de alto nivel, por lo que resulta ser el lenguaje preferido para el desarrollo de software de sistemas y aplicaciones profesionales de la programacin de computadoras. MODULA-2:El lenguaje MODULA fue diseado en 1977 bajo la direccin de Nicklaus Wirth, creador tambin el lenguaje PASCAL, con la intencin de incluir las necesidades de la programacin de sistemas y dar respuestas a las crticas recibidas respecto de las carencias del lenguaje PASCAL. En 1979 se realiza una versin que pasa a denominarse MODULA-2 y que perdura en la actualidad. Adems de incluir las caractersticas de su predecesor, este nuevo lenguaje incorpora las principales carencias de aquel, como la posibilidad de compilacin separada, creacin de libreras, programacin concurrente, mejora el manejo de cadenas de caracteres, los procedimientos de entrada/salida y la gestin de la memoria, etc. adems, posee grandes facilidades para la programacin de sistemas. Tambin, debido a sus cualidades didcticas, ha sido ampliamente aceptado por la comunidad universitaria como herramienta idnea para la enseanza de la programacin. ADA: Es el ltimo intento de obtener un nico lenguaje para todo tipo de aplicaciones, e incluso los ltimos avances de tcnicas de programacin. Su diseo fue encargado por el Departamento de Defensa de Estados Unidos, para su uso en

servicios militares, a la empresa Honeywell-Bull despus de una seleccin rigurosa entre varias propuestas realizadas sobre una serie de requerimientos del lenguaje y de haber evaluado negativamente veintitrs lenguajes existentes. De estos, se seleccionaron como base para la creacin del nuevo lenguaje el PASCAL, el ALGOL y el PL/I. La estandarizacin del lenguaje se publico en 1983 con el nombre de ADA, en honor de la considerada primera programadora de la historia, Augusta Ada Byron, condesa de Lovelace. Entre las caractersticas del lenguaje se encuentran la compilacin separada, los tipos abstractos de datos, programacin concurrente, programacin estructurada, libertad de formatos de escritura, etc. Como principal inconveniente presenta su gran extensin. Los escritores lo llamaron inflexible e ineficiente, en tanto que sus favorecedores lo consideraban un gran avance en la tecnologa del software. LISP: En informtica, acrnimo de List Processing. Un lenguaje de programacin para ordenadores o computadoras orientadas a la generacin de listas, desarrollado en 1959-1960 por John McCarthy y usado principalmente para manipular listas de datos o de smbolos. El lenguaje LISP constituy un cambio radical con respecto a los lenguajes procedurales (FORTRAN, ALGOL) que se desarrollaban por entonces. El LISP es un lenguaje interpretado, en el que cada expresin es una lista de llamadas a funciones. Este lenguaje se sigue utilizando con frecuencia en investigacin y en crculos acadmicos, y fue considerado durante mucho tiempo el lenguaje modelo para la investigacin de la inteligencia artificial (IA), aunque el Prolog 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 en la enseanza de lenguaje de programacin a nios. Una caracterstica importante de Logo son los grficos de tortuga, que permiten al programador hacer dibujos simples dirigiendo los movimientos de la tortuga en la pantalla hacia adelante, hacia la derecha o la izquierda. Una vez que dominan el entorno sencillo del dibujo, el programador (normalmente un nio o una nia) empieza a descubrir las caractersticas ms sofisticadas del lenguaje, que estn basadas fundamentalmente en el lenguaje de programacin LISP. Logo est considerado como un lenguaje para la formacin, a pesar de que algunas empresas intentaron que tuviera una mayor aceptacin en los crculos profesionales de programacin. RPG: Report Program Operator fue introducido en 1960 como un lenguaje para duplicar rpidamente el enfoque de proceso utilizado con un equipo de tarjeta perforada. Este lenguaje fue desarrollado por IBM en 1964. Su uso esta aun limitado sobre todo para las aplicaciones de negocios que son procesadas en pequeas computadoras, generar informes comerciales o de negocios. Como su nombre lo sugiere, el RPG est diseado para generar los reportes de salida que resultan del proceso de aplicaciones de negocios.

A pesar de las aplicaciones de actualizacin de archivos, el RPG es un lenguaje de propsito limitado porque los programas objeto generados por el compilador de RPG siguen 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 otros lenguajes. ALGOL: El ALGOL (ALGOritmic Language) fue presentado en 1958. Fue el primer lenguaje de programacin de proceso estructurado de alto nivel. Fue orientado al uso de quienes participan en proyectos cientficos y matemticos. Un grupo internacional de matemticos europeos y americanos, pretendan crear un lenguaje comn normalizado 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 1961 para resolver problemas matemticos. Este lenguaje se caracteriza por su brevedad y por su capacidad de generacin de matrices y se utiliza en el desarrollo de modelos matemticos. PILOT: Programmen dInquiry Language Or Teaching (Consulta, lenguaje o aprendizaje de investigacin programada) creado en 1969. Este lenguaje de programacin es utilizado fundamentalmente para crear aplicaciones destinadas a instrucciones asistidas por computadoras. Se caracteriza por utilizar un mnimo de sintaxis. SMALLTALK: SMALLTALK, Lenguaje de Programacin orientado a objetos integrados con un entorno de desarrollo multiventana. SMALLTALK no es solo un hermoso lenguaje de computacin orientado a objetos. El entorno de desarrollo merece similar valoracin y ha sido copiado muchas veces, desde el Sistema Operativo de Apple MS Windows y Borland Pascal (en una memoria extensin). Muchos conceptos de SMALLTALK como los browsers y las tcnicas de browsing han encontrado hoy su rumbo en muchas herramientas de desarrollo de la generacin X, desarrollado por SMALLTALK poseen un factor divertido -de-usar. Los cambios se graban instantneamente y los mismos pueden probarse rpidamente. SMALLTALK fue desarrollado dentro del Grupo de Investigacin del Aprendizaje en el Centro de Investigacin de Xerox en palo Alto a comienzos de los 70. Las principales ideas de SMALLTALK se le atribuyen generalmente a Alan kay con races en Simula, LISP y SketchPad. Dan Ingalls escribi el cdigo de las primeras ventanas solapables, los pop-up mens y la clase BitBlt, AdeleGoldberg y DaveRobson escribieron los manuales de referencia para SMALLTALK y fueron miembros clave del equipo de desarrollo. Un programa de licenciamiento de Xerox y Xerox Special Information Systems. Sin embargo la distribucin generalizada a la

comunidad de desarrollo no sucedi hasta la fundacin de una nueva compaa llamada Parc Place Systems Inc. , Dirigida por AdeleGoldberg. Un segundo SMALLTALK (SMALLTALK 4) fue desarrollado por Digitalk en los ngeles 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 herramientas para proveer el control de inversiones y el manejo de configuraciones en grandes proyectos. IBM desarroll la familia de productos Visual Age para SMALLTALK en colaboracin con Object Technology (antiguamente Parc Plase-Digitalk) e IBM permanecen como los distribuidores dominantes de entornos de desarrollos en SMALLTALK. Algunos nuevos SMALLTALK se hallan en etapa de desarrollo. FORTH: Lenguaje de cuarta generacin, creado en 1970, es un lenguaje estructurado 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 casi todos los lenguajes empleados en los robots. LENGUAJE C++: Se pronuncia ce mas mas. Fue desarrollada por Bjarme Stroustrup en los Laboratorios Bell a principios de la dcada de los 80. C++ introduce la programacin orientada al objeto en C. Es un lenguaje extremadamente poderoso y eficiente. C++ es un sper conjunto de C, para aprender C++ significa aprender todo de C, luego aprender programacin orientada al objeto y el uso de stas con C++. DELPHI: Es un entorno de programacin visual orientado a objetos para desarrollo rpido de aplicaciones (RAD) de propsito general, incluyendo aplicaciones cliente/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 contiene un 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 servicio Desarrollo 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 de Internet, etc.

JAVA SCRIPT: Este lenguaje de programacin originalmente fue llamado LIVESCRIPT, pero luego fue renombrado con el nombre de JAVASCRIPT, con la idea de capitalizar la fama de Java, lenguaje desarrollado por Sun Microsystems. ste es un complemento ideal del lenguaje HTML, al permitir a la pgina realizar algunas tareas por si misma, sin necesidad de estar sobrecargando el servidor del cual depende; JAVASCRIPT es un lenguaje diseado especialmente para ejecutarlo en 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 un prechequeo de validacin en formulario antes de enviarlo, etc. HTML: El lenguaje HTML, sirve para realizar esas atractivas pginas Web. Se trata de un sistema de marcas que permite enlazar al mismo tiempo texto, sonidos y grficos dentro del mismo documento, con otros dentro del servidor o incluso con otros servidores WWW. Es decir, es un editor para combinar textos, imgenes e incluso sonido y ahora tambin imgenes en movimiento. Es, en definitiva, la forma de manejar y presentar la informacin en la red. Para escribir documentos de hipertexto se ha desarrollado un nuevo formato de datos o lenguaje llamado Hyper Text Markup Language (HTML). Este lenguaje permite dar indicaciones precisas al programa cliente de cmo debe presentarse el documento en pantalla o al ser impreso. El lenguaje HTML es el usado actualmente para escribir textos Hypermediales en el web. 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 los espacios en blanco extra. Esto tiene ventajas o desventajas. La principal ventaja es que permite obtener resultados uniformes y de buena presentacin de manera bastante fcil. La principal desventaja es que un documento HTML, por lo menos se debe usar los comandos <P>... </P> o <BR> para evitar que quede todo el texto en una sola lnea. Existen 3 caracteres especiales:

o < menor que, se usa para indicar el comienzo de un comando HTML o >mayor que, se usa para indicar el trmino de un comando HTML. o &Ampersand, se usa para escribir caracteres especiales (smbolos matemticos, comerciales, as como el signo menor que y el mayor que entre otros) en un documento. El comando prrafo: el comando <p>... </p> se utiliza como un delimitador de prrafo en HTML. Inserta automticamente un quiebre de lnea al final del prrafo, y produce un espaciamiento conveniente entre los diferentes prrafos de un documento. Tambin en forma adicional permite alinear el texto al centro, a la izquierda o a la derecha. El comando quiebre de lneas: el comando < br> permite hacer un quiebre (salto) de lnea. Los comandos de encabezado: los textos en HTML poseen seis niveles de encabezado. por ejemplo el nivel 1 se usa para las divisiones mayores de texto, el nivel de encabezado 6 se usa para las divisiones ms chicas de texto. Estructura de hypertexto: existen dos partes fundamentales de un documento HTML. Encabezado: se inicia mediante el comando<head> y se termina con </head>. Por lo general se incluyen aqu el ttulo del documento, mediante el comando <title>... </title>. Cuerpo: se inicia mediante el comando <body> y se termina con el comando, dentro del cuerpo del documento se incluyen cualquier carcter imprimible, adems es importante incluir el comando<address>... </address> al final del cuerpo pero dentro de l. Dentro del address se escribe el nombre del autor del documento, la organizacin a la que pertenece, su direccin del correo electrnico y otra informacin que se considere relevante. HYPERTALK:"HyperTalk" es el lenguaje desarrollado por Dan Winkler para Bill Atkinson, el creador del "HyperCard" para Apple-Macintosh. Est orientado a la creacin de aplicaciones conforme al sistema de "hper archivos" (sistemas de fichas interrelacionadas donde se facilita el "navegar" de un archivo a otro). HyperTalk es un buen ejemplo de lenguaje orientado a objetos. Este tipo de lenguaje combina la lgica declarativa con los algoritmos. Un programa ya no es una secuencia de instrucciones sino un conjunto de objetos agrupados en conjuntos, definidos mediante atributos y a los cuales pueden asociarse instrucciones. As, en HyperCard, existen archivos ("stacks" o "pilas") que agrupan fichas ("cards"), y cada una de stas contiene campos de datos y botones. Todos son "objetos" que -si bien mantienen entre s una relacin jerrquica- tienen asociados paquetes de instrucciones ("scripts") independientes unos de otros. Cada objeto pertenece a un conjunto (como fichas o botones) que tiene "atributos" propios comunes a todos sus miembros, y cada atributo tendr un valor comn o especfico para cada caso. Para dar o buscar dicho valor intervienen "facetas" que son instrucciones (procedimientos) asociadas. Es un lenguaje especializado en el procesamiento de textos, particularmente extraer y validar las respuestas a cuestionarios incluidos en pginas web.

PHP:Lenguaje que se acopla al HTML (pginas web) para definir procedimientos que ha de realizar el servidor de web, por ejemplo procesar un formulario, enviar o extraer datos de una base de datos (acoplndose tambin con un lenguaje de tipo SQL), enviar una u otra pgina web segn determinadas condiciones prefijadas por el programador, etc. PROLOG: Los primeros aos de la dcada del 70 son conocidos como un perodo de "crisis del software", en que se descubri que la creacin de buenos programas involucraba costos mayores que los del hardware que los ejecuta. Tambin se haca patente una creciente necesidad de procesar "conocimientos" (algo mucho ms amplio y complejo que los datos cuantitativos o meras "secuencias de caracteres" a los cuales se reducen muchos lenguajes de programacin). Esta crisis llev a investigar numerosas alternativas, entre las cuales nuevos lenguajes no basados en instrucciones algortmicas o procedimientos. Si el hombre "procesa" ms informacin por inferencia lgica que por clculo, no podra la mquina hacer lo mismo? PROLOG ("PROgramacin en LOGica") es una respuesta a esta crisis, producto del avance de la lgica moderna (de tipo funcional). Lo crearon A. Colmenauer y Ph. Roussel, con la colaboracin de R. Kowalski, simultneamente en la Universidad de Aix-Marseille (Francia) y Edimburgo (Gran Bretaa). Se basa en el clculo de predicados de primer orden y en el principio de resolucin de Robinson. En vez de ser algortmico ("procedural" en ingls, trmino sin traduccin), es decir concebido como un conjunto de instrucciones que la mquina debe ejecutar en forma secuencial, es "declarativo", es decir basado en definiciones (de "hechos" o "reglas", como se explica ms abajo). SQL: Lenguaje desarrollado especialmente para facilitar la consulta de bases de datos (BD), acotando progresivamente la bsqueda (de ah el nombre de "Sequential Query Language"). Existen hoy numerosas aplicaciones de administracin de bases de datos que recurren al SQL (Las ms conocidas, potentes - y caras - son Oracle e Informix). Hoy se pueden acoplar las bases de datos a hipertextos (pginas web), para lo cual las buenas aplicaciones ya traen mdulos que hacen la conexin. El lenguaje PHP del cual hablamos ms arriba tambin sirve para definir procedimientos de insercin y de consulta de datos en BD que funcionan con SQL. ASP: Su nombre es Active Server Pages. Es un lenguaje independiente, diseado por Microsoft para la codificacin eficiente de los scripts de los servidores, que fueron diseados para ser ejecutados por un servidor Web en respuesta a la peticin de un URL de un usuario. Los scripts de ASP son similares a otros scripts de servidores con los que puedes estar familiarizado, que son utilizados en otras plataformas, como Perl, Python, etc.

8.-CONCLUSIN
Bueno al finalizar este trabajo comprend que un paradigma es ms que nada una forma de poder programar el cual cada uno de los tipos de programacin tienen un lenguaje y no todos realizan las mismas acciones o trabajos ya que muchos son ocupados por bancos por ejemplo aqu se utiliza el cobol ya que puede aceptar grandes cantidades de informacin y as pueden haber muchos y comprend que el lenguaje ms utilizado hoy en da es el de orientados a objetos por ejemplo el java que es el ms comn y es con este programa con el que vamos a aprender a programar y para eso es muy importante conocer tambin su historia y conozcamos el por qu de la existencia de cada lenguaje y as sea ms fcil para m aprender a programar ese fue el objetivo de este trabajo. Los lenguajes de programacin no son simplemente un detalle ms del amplio mundo de la informtica, y por lo tanto deben ser vistos como el fundamento y la base del desarrollo y avance de la computacin. Estudiar los conceptos bsicos, clasificacin, diferencias, propiedades y funcionamiento de los lenguajes de programacin es elemental para cualquier estudiante o profesional dedicado a la computacin, pues de esa manera se logra tener una perspectiva global y mucho ms amplia que tendr mucho peso al estar bien documentados y al conocer qu son, cmo se clasifican y de qu manera trabajan los lenguajes de programacin. Luego del desarrollo de esta investigacin resulta fcil comprender los tipos y la clasificacin que se les da a los lenguajes de programacin en base a sus funcionalidades y caractersticas. Este estudio tambin permite desarrollar un sentido crtico de los lenguajes de programacin, de forma que el programador no seleccione ni emita un juicio respecto a determinado lenguaje basado simplemente en su limitado conocimiento ni basado en la popularidad de la que goza cierto lenguaje, sino que el programador est capacitado para dar razones contundentes y certeras del por qu un lenguaje es mejor que otro para determinada tarea, qu ventajas tiene uno respecto del otro, y que as tambin el programador sea capaz de seleccionar el lenguaje que ms le convenga para la resolucin de un problema determinado. Esta investigacin servir para evaluar correctamente los lenguajes de programacin, determinando las ventajas y desventajas que cada uno de ellos presenta.

9.-BIBLIOGRAFA
1.http://www.monografias.com/trabajos38/tipos-lenguajes-programacion/tipos-lenguajes-

programacion2.shtml#ixzz2dDi6gkil
2.http://www.monografias.com/trabajos38/tipos-lenguajes-programacion/tipos-lenguajes-

programacion.shtml#ixzz2dDiDkltP

3.http://www.monografias.com/trabajos55/evolucion-lenguajes-de-programacion/evolucion-

lenguajes-de-programacion.shtml#ixzz2dDhhOrfl
4.-http://www.taringa.net/posts/ciencia-educacion/9145179/Paradigma-de-Programacion.html

Potrebbero piacerti anche