Professional Documents
Culture Documents
GRUPO: 2B2
ENERO 2013
INDICE
Introduccin. 3
Qu es un lenguaje de programacin?
Conclusiones 15
Bibliografa 16
Otras fuentes 17
Anexos.. 18
INTRODUCCIN
Muchas veces confundimos el lenguaje informtico en lenguaje de programacin y no es as ya que el informtico abarca al de programacin adems nos podemos dar cuenta de que tambin es una forma de representar un algoritmo de tal forma que sea comprensible tanto para el humano como para la maquina o computadora. El objetivo de esta investigacin consiste en tener mayor conocimiento dentro de lo que es el lenguaje de programacin. Debemos aplicar diferentes mtodos, claridad, pensamiento para llegar a posibles soluciones a los objetos y tener mayor conocimiento. Este trabajo es desarrollado con el apoyo de libros, pginas web y otras fuentes. Pretendo que el trabajo desarrollado rena la informacin necesaria y adecuada que permita un mejor aprendizaje y sea de gran ayuda para mi, mis compaeros y los dems.
1984 C++ AT&T Bell Laboratories (Bjarne Stroustrup) compilador 1985 CLIPPER compilador para bases de datos. En cuanto a la evolucin, no existen unas fases muy definidas ya que siempre ha habido cierta coexistencia entre los diferentes tipos de lenguajes. Pero vamos a permitirnos hacer una breve resea a ciertas evoluciones como: 1990-95 Las bases de datos relacionales. Todos los lenguajes Xbase se basaban en el concepto de bases de datos relacionales, es decir la agrupacin de la informacin en forma de tablas, denominadas campos y registros, cada uno de ellos preformateados para recibir cierto tipo de dato (ejemplo: fechas, caracteres, nmeros, valores lgicos, etc.); pudiendo "unir" diferentes bases por medio de campos comunes. 1995-2000 La orientacin a objetos. A medida que los aos van pasando el concepto de Bases relacionales empieza a decaer relativamente, surge entonces una variante que se aplica a todos los lenguajes: La orientacin a objetos. Ya no solo se habla de programacin estructurada, sino que los mdulos de programacin son vistos como objetos, las estructuras representan objetos y/o funciones que se adaptan en forma general a procesos especficos es la maximizacin de la programacin modular. 2000 y ms all Los lenguajes visuales Con la llegada de Windows todo es Visual, todo es iconos, todo es botones, todo es Ventanas. Para programar en lenguajes visuales, primero hay que comprender lo que es Windows. La forma de programar los sistemas evolucion radicalmente. Con Windows es preciso programar conservando las convenciones del mismo, guardando sus caractersticas y funcionalidades. Los sistemas hechos para Windows, deben ser tan Windows como el propio sistema operativo.
PARADIGMAS DE PROGRAMACIN
Un paradigma de programacin es un modelo bsico de diseo y desarrollo de programas, que permite producir programas con unas directrices especficas, tales como: estructura modular, fuerte cohesin, alta rentabilidad, etc. Los paradigmas pueden ser considerados como patrones de pensamiento para la resolucin de problemas. Desde luego siempre teniendo en cuenta los lenguajes de programacin, segn nuestro inters de estudio.
No es mejor uno que otro sino que cada uno tiene ventajas y desventajas. Tambin hay situaciones donde un paradigma resulta ms apropiado que otro. Hay multitud de ellos atendiendo a alguna particularidad metodolgica o funcional Cuando un lenguaje refleja bien un paradigma particular, se dice que soporta e paradigma, y en la prctica un lenguaje que soporta correctamente un paradigma, es difcil distinguirlo del propio paradigma, por lo que se identifica con l. Tipos de paradigmas de programacin: Podemos clasificar los paradigmas de programacin en: Paradigma imperativo, heurstico, concurrente, funcional, lgico, paradigma basado en objetos. Paradigma imperativo: Son aquellos que facilitan los clculos por medio de cambios de estado, entendiendo como estado la condicin de una memoria de almacenamiento. Los lenguajes estructurados en bloques, se refieren a los mbitos anidados, es decir los bloques pueden estar anidados dentro de otros bloques y contener sus propias variables. 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 subexpresiones), y por tanto, la carencia total de ''efectos laterales''. El objetivo es conseguir lenguajes expresivos y ''matemticamente elegantes'', en los que no sea necesario bajar al nivel de la mquina para describir el proceso llevado a cabo por el programa, y evitando el concepto de ''estado'' del cmputo. La secuencia de computaciones llevadas a cabo por el programa se regira nica y exclusivamente por la ''reescritura'' de definiciones ms amplias a otras cada vez ms concretas y definidas, usando lo que se denominan ''definiciones dirigidas''. A este tipo de paradigma de programacin se le suele llamar algortmico 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). Algunos de los lenguajes imperativos son: C C++ C# Basic Java Perl Paradigma heurstico: Define un modelo de resolucin de problemas en el que se incorpora algn componente heurstico, sobre la base de una representacin ms apropiada de la estructura del problema, para su resolucin con tcnicas heursticas. Se puede definir como "aquel tipo de programacin computacional que aplica para la resolucin de problemas reglas de buena lgica (reglas del pulgar). Denominadas heursticas, las cuales proporcionan entre varios cursos de accin
uno que presenta visos de ser el ms prometedor, pero no garantiza necesariamente el curso de accin ms efectivo." La Programacin Heurstica implica una forma de modelizar el problema en lo que respecta a la representacin de su estructura, estrategias de bsqueda y mtodos de resolucin, que configuran el Para Este tipo de programacin se aplica con mayor intensidad en el campo de la Inteligencia Artificial (IA), y en especial, en el de la Ingeniera del conocimientodigma heurstico. La Programacin Heurstica se presenta y utiliza desde diferentes puntos de vista: Como tcnica de bsqueda para la obtencin de metas en problemas no algortmicos, o con algoritmos que generan explosin combinatoria o como un mtodo aproximado de resolucin de problemas utilizando funciones de evaluacin de tipo heurstico o como mtodo de poda para estrategias de programas que juegan, aunque estos mtodos no son realmente heursticos Paradigma funcional: Sus orgenes provienen del Clculo Lambda (o -clculo), una teora matemtica elaborada por Alonzo Church como apoyo a sus estudios sobre computabilidad. Un lenguaje funcional es, a grandes rasgos, un azcar sintctico del Clculo Lambda. El paradigma funcional est basado en el modelo matemtico de composicin funcional. En este modelo, el resultado de un clculo es la entrada del siguiente, y as sucesivamente hasta que una composicin produce el valor deseado. No existe el concepto de celda de memoria que es asignada o modificada. Ms bien, existen valores intermedios que son el resultado de clculos anteriores y las entradas a clculos subsiguientes. Tampoco existen sentencias imperativas y todas las funciones tienen transparencia referencial. La programacin funcional incorpora el concepto de funcin como objeto de primera clase, lo que significa que las funciones se pueden tratar como datos (pueden pasar como parmetros, calculadas y devueltas como valores normales, y mezcladas en el clculo con otras formas de datos). En este paradigma el informtico concibe la solucin como una composicin de funciones. La forma en que se especifican las funciones puede variar. Se pueden especificar procedimentalmente o matemticamente mediante su definicin, sin secuencia de control. Un lenguaje funcional es el Lisp. Paradigma lgico: La Programacin Lgica es un Paradigma de Programacin basado en la Lgica. Los programas construidos un lenguaje lgico estn construidos nicamente por expresiones lgicas, es decir, que son ciertas o falsas, en oposicin aun expresin interrogativa (una pregunta) o expresiones imperativas (una orden). Un ejemplo de lenguaje lgico es Prolog (Programacin lgica). Prolog, proveniente del ingls Programming in Logic, es un lenguaje lgico bastante popular en el medio de investigacin en Inteligencia Artificial. Prolog es un lenguaje muy diferente, tanto de los imperativos como Fortran, Pascal, C etc., como de los funcionales como Lisp. En todos los mencionados, las instrucciones
se ejecutan normalmente en orden secuencial, es decir, una a continuacin de otra, en el mismo orden en que estn escritas, que slo vara cuando se alcanza una instruccin de control (un bucle, una instruccin condicional o una transferencia). En Prolog, las cosas son distintas: el orden de ejecucin de las instrucciones no tiene nada que ver con el orden en que fueron escritas. Tampoco hay instrucciones de control propiamente dichas. Para trabajar con este lenguaje, un programador debe acostumbrarse a pensar de una manera muy diferente a la que se utiliza en los lenguajes clsicos. Paradigma basado en objetos: La programacin orientada a objetos (OOP, por las siglas inglesas de ObjectOriented Programming) es una forma de programar que prolifer a partir de los aos ochenta. La Programacin Orientada a Objetos (POO u OOP segn siglas en ingls) es un paradigma de programacin que define 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 y 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 una 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 en favor de los mtodos, ni viceversa. Las principales diferencias entre la programacin imperativa y la orientada a objetos son: - La programacin orientada a objetos es ms moderna, es una evolucin de la programacin imperativa que plasma en el diseo de una familia de lenguajes conceptos que existan previamente con algunos nuevos. - La programacin orientada a objetos se basa en lenguajes que soportan sintctica y semnticamente la unin entre los tipos abstractos de datos y sus operaciones (a esta unin se la suele llamar clase). - La programacin orientada a objetos incorpora en su entorno de ejecucin mecanismos tales como el polimorfismo y el envo de mensajes entre objetos. Lenguajes orientados a objetos.
10
Entre los lenguajes orientados a objetos destacan los siguientes: Ada C++ C# VB.NET Clarion Delphi Eiffel Java Lexico (en castellano).
Lenguaje mquina
El lenguaje mquina es el nico que entiende directamente la computadora, utiliza el alfabeto binario que consta de los dos nicos smbolos 0 y 1, denominados bits (abreviatura inglesa de dgitos binarios). Fue el primer lenguaje utilizado en la programacin de computadoras, pero dej 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.
11
lenguaje, de tal manera que se pueden utilizar siempre que se quieran sin necesidad de programarlas cada vez. 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 (FORTRAN, LISP, ALGOL, COBOL, APL, SNOBOL, PROLOG, MODULA2, ALGOL68, PASCAL, SIMULA67, ADA, C++, LIS, EUCLID, BASIC), adems de las diferentes versiones o dialectos que se han desarrollado de algunos de ellos.
TRADUCTORES
Explicamos el proceso ms importante a la hora de hacer funcionar un programa realizado en lenguajes de alto y medio nivel. Cuando programamos en lenguajes de alto nivel, lo que estamos haciendo en realidad es el cdigo fuente de ese programa. Este cdigo fuente debe ser traducido a binario para que las instrucciones que contienen puedan ser entendidas y ejecutadas por la mquina. Para esto existe un programa encargado de realizar la traduccin, llamado traductor del lenguaje. Estos traductores pueden ser de dos tipos: Ensambladores Son los encargados de traducir los programas escritos en lenguaje ensamblador a lenguaje mquina. Compiladores Son programas que leen el cdigo fuente y lo traducen o convierten a otro lenguaje. Estos programas te muestran los errores existentes en el cdigo fuente. Etapas del proceso de compilacin: Edicin. Esta fase consiste en escribir el programa empleando algn lenguaje y un editor. Como resultado nos dar el cdigo fuente de nuestro programa. Compilacin. En esta fase se traduce el cdigo fuente obtenido en la fase anterior a cdigo mquina. Si no se produce ningn error se obtiene el cdigo objeto. En caso de errores el compilador los mostrara para ayudarnos a corregirlos y se procedera a su compilacin de nuevo, una vez corregido. Linkado. Esta fase consiste en unir el archivo generado en la fase dos con determinadas rutinas internas del lenguaje, obteniendo el programa ejecutable. Existen dos tipos de linkados: linkado esttico: Los binarios de las libreras se aaden a nuestros binarios compilados generando el archivo ejecutable. Linkado dinmico: no se aaden las libreras a nuestro binario sino que har que secarguen en memoria las libreras que en ese momento se necesiten. Una vez traducido, compilado y linkado el archivo est listo para su ejecucin donde tambin podrn surgir problemas y fallos, para los cuales tendramos que volver a realizar todo el proceso anteriormente citado, de modo que puedan ser corregidos. Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucin antes de presentar el programa al cliente.
12
Otro sistema para la ejecucin de nuestro cdigo fuente es mediante el uso de intrpretes (estos no se encontraran dentro de los traductores). Intrpretes Los intrpretes realizan la traduccin y ejecucin de forma simultnea, es decir, un intrprete lee el cdigo fuente y lo va ejecutando al mismo tiempo. Las diferencias entre un compilador y un intrprete bsicamente son: Un programa compilado puede funcionar por si solo mientras que un cdigo traducido por un intrprete no puede funcionar sin ste. Un programa traducido por un intrprete puede ser ejecutado en cualquier mquina ya que, cada vez que se ejecuta el intrprete, tiene que compilarlo. Un archivo compilado es mucho ms rpido que uno interpretado.
13
el lenguaje evolucione, en lugar de que slo sea reemplazado por un nuevo lenguaje, como ya haba ocurrido con muchos otros lenguajes, tal y como comentamos antes. C++ fue desarrollado por Bjarne Stroustrup en los Laboratorios Bell y originalmente fue llamado C con clases. El nombre C++ incluye el operador de incremento (++) de C, para indicar que C++ es una versin mejorada de C. C++ es un conjunto de C, por lo que, para compilar los programas existentes de C, los programadores pueden utilizar un compilador C++ y posteriormente modificar estos programas a C++. A mediados de los aos noventa, la mayor parte de los entornos de programacin C se convirtieron a C++.
14
CONCLUSIONES
Tras abordar este tema me queda en claro de primero saber diferenciar las caractersticas entre un lenguaje informtico y uno de programacin, adems de que este ha venido evolucionando a lo largo de la historia conforme van transcurriendo los aos, para tener una buena comunicacin entre los seres humanos. Antes de ello no tena conocimiento alguno sin embargo me queda la enseanza y considero de que crear un programa, antivirus, juegos requieren de ello, ya que la mayora de nosotros primeramente aprendemos a manipular una computadora y el internet, en fin; sin saber todo el proceso que antes haya ocurrido en ellos. Cabe mencionar que esto no es un proceso sencillo ya que requiere de muchos cdigos, series, algoritmos, entre otros los cuales veo un poco difcil pero no imposibles.
15
BIBLIOGRAFA
LIBROS
Joyanes Aguilat, L. (2003) Fundamentos de programacin. Algoritmos, estructuras de datos y objetos. McGraw Hill. Lenguajes de programacin Allen B. Tucker, Editorial McGraw Hill Programacin, algoritmos y ejercicios resueltos en JAVA David Camacho y Jos Mara Valls Editorial Prentice Hall Informatica_5.pdf Historia de los lenguajes de programaci_n.pdf
16
OTRAS FUENTES
PGINAS WEB Lenguaje de programacin. En lnea. Pgina consultada el 27 de enero de 2013. Disponible en: http://es.wikipedia.org
Tipos de lenguaje de programacin. En lnea. Pgina consultada el 28 de enero de 2013. Disponible en: http://www.monografias.com Evolucin del lenguaje C. En lnea. Pgina consultada el 28 de enero de 2013. Disponible en: http://www.alegsaonline.com/art.php?id=13
17
ANEXOS
Figura 2
Figura 3
Figura 4
18