Vous êtes sur la page 1sur 16

TEMA : CONCEPTOS LENGUAJES DE PROGRAMACION

PRACTICO N1 1 - Conceptos Generales

1951-1955: Lenguajes tipo assembly Principales avances: Lenguajes ensambladores conceptos fundamentales de subprogramas, estructuras de datos. Primeros usos experimentales de compiladores, constituye la representacin ms directa del cdigo mquina para cada arquitectura legible por un programador. Fue utilizado al comienzo del desarrollo de software, cuando an no se contaba con potentes lenguajes de alto nivel y los recursos eran limitados. 956-1960: FORTRAN, ALGOL 58, ALGOL 60, LISP Incluyen tecnologa inicial de compiladores, gramticas BNF, optimizacin de cdigos, intrpretes. El almacenaje se realiza en cintas magnticas, memorias de nucleo, circuito de trasnistores. Son lenguajes de alto nivel utilizados en el mbito cientfico Los lenguajes de alto nivel son normalmente fciles de aprender porque estn formados por elementos de lenguajes naturales, como el ingls. Se incluyeron los compiladores 1961-1965: COBOL, ALGOL 60, SNOBOL, JOVIAL El lenguaje COBOL fue el lenguaje mas utilizado en las aplicaciones de gestin, creado en 1960 por un comit denominado CODASYL (COnference on DAta SYstems Languages), 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). 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. 1966-1970: APL, FORTRAN 66, BASIC, PL/I, SIMULA 67, ALGOL-W Entre los principales avances esta la capacidad de proporcionar a los principiantes un lenguaje fcil de aprender, como se indica en su nombre, como BASIC, Beginner's All-purpose Symbolic Instruction Code (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. Interactivo, ya que permite la comunicacin directa entre el usuario y el sistema de computo durante la preparacin y uso de los programas. Entre sus principales novedades estn las de ser un lenguaje interpretado y de uso conversacional, Las caractersticas ms destacables son las siguientes: se asemejan al lenguaje natural (ingls), auto documentacin, ofrecen grandes facilidades en el manejo de archivos como en la edicin de informes

1971-1975: Pascal, C, Scheme, Prolog 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, en el caso de PASCAL. 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.

1976-1980: Smalltalk, Ada, FORTRAN 77, ML Las caractersticas del Ada son las siguientes: 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 Otros avances son la programacin orientado a objetos: Permite realizar tareas de computacin mediante la interaccin con un entorno de objetos virtuales. SMALLTALK incorpora caractersticas orientacin a objetos, tipado dinmico, interaccin entre objetos mediante envo de mensajes, herencia simple, reflexin computacional completa, compilacin en tiempo de ejecucin, mltiples implementaciones. 1981-1985: Smalltalk 80, Turbo Pascal, Postcript Entre los principales advances: Programacion orientada a objetos, Entorno interactivos, Editores dirigidos por sintaxis. Surgen las prineras estaciones de trabajo y las redes de area local. 1986-1990: FORTRAN 90, C++, SML Surgen las tecnologas cliente/servidor, surge internet y lasmicropomputadoras y arquitecturas RISC (multiprocesador). 1991-1995: TCL, PERL, HTML Estaciones de trabajo y microcomputadoras muy rapidas y de bajo costo. Crecimiento acelerado de internet con el surgiemiento del lenguaje HTML, y perl que valida campos de formularios de paginas web. . Sistemas abiertos, marcos de entorno. 1996-2000: Java, Javascript, XML Surge Java un lenguaje independiente de la plataforma, basado en C, pueden ejecutarse en cualquier tipo de hardware, dispositivos mviles y sistemas embebidos. 2Historia de C

El lenguaje de programacin C fue creado por Dennis Ritchie entre 1969 y 1973 cuando trabajaba en Bell Laboratorios de AT&T junto con Ken Thompson en el diseo del sistema operativo UNIX. C fue creado para poder escribir dicho sistema operativo en un lenguaje de alto nivel, independiente del hardware donde se ejecutara. Contar con un lenguaje de alto nivel permiti el avance de los sistemas operativos, ya que el mismo cdigo poda ser utilizado en las distintas plataformas, propiciando la reutilizacin de cdigo y

reduciendo los tiempos de desarrollo. As es que los sistemas operativos basados en UNIX, el sistema BSD, el sistema GNU/Linux y muchos otros fueron desarrollados en C. Adems, con el paso del tiempo se han desarrollado cientos de bibliotecas que permiten a los programadores de C utilizar el cdigo desarrollado por otros para la realizacin de tareas comunes. Esto, a su vez, ha propiciado el desarrollo de aplicaciones en lenguaje C. Evolucin A mediados de los aos 60s, Martin Richards dise el lenguaje BCPL con la finalidad de usarlo para escribir software de sistemas operativos y compiladores. En 1969, Ken Thompson escribi el Lenguaje B, en Bell Laboratorios, con el objetivo de recodificar UNIX (escrito hasta ese momento en lenguaje ensamblador) usando un lenguaje de alto nivel ms portable y flexible. Durante los siguientes aos, Dennis Ritchie modific el lenguaje B, llegando a crear el lenguaje C y reescribiendo el sistema UNIX en dicho lenguaje; aadi caractersticas nuevas, como son el diseo de tipos y las estructuras de datos. En 1978, Dennis Ritchie y Brian Kernighan publicaron la primera edicin del libro El lenguaje de programacin C. Este libro fue durante aos la especificacin informal del lenguaje. El lenguaje descrito en la primera edicin de este libro, fue conocido como "el C de Kernighan y Ritchie" o simplemente "K&R C". En este libro se introdujeron nuevas caractersticas al lenguaje: los tipo de datos struct, long int y unsigned int; los operadores =+ y =- fueron sustituidos por += y -=. A mediados de los aos 80, Bjarne Stroustrup (tambin de los laboratorios Bell), crea el lenguaje C++, un lenguaje basado en C, con numerosas caractersticas adicionales, siendo la principal que est orientado a objetos. Si bien se han creado muchos lenguajes basados en C, C++ es el que ha permanecido ms asociado a C. 3- Caractersticas de los lenguajes: Para caracterizar los lenguajes se siguen el siguiente criterio: Simplicidad y claridad Uniones Ortogonalidad. Fiabilidad de los programas. Aplicabilidad Abstraccin Implementacin eficiente Simplicidad y claridad: Este atributo se refiere al nivel de facilidad que tiene el lenguaje para que un programador pueda escribir un programa. Y hasta qu punto es inteligible el programa para un lector medio. Ejemplos: Basic, Algol, Pascal fueron diseados para facilitar la claridad de expresin. Pascal fue diseado explcitamente como un lenguaje de enseanza. Uniones: Un elemento de un lenguaje se une a la propiedad en el momento en que definimos dicha propiedad para l. Por ejemplo se une una variable a su tipo. Int x. Que une a la variable con el tipo int. Principales momentos de unin: 1. Momentos de definicin del lenguaje: Como son las palabras reservadas del lenguaje.

2. Momento de implementacin del lenguaje: cuando escribimos el compilador o interpretador el valor se une a su representacin. Por ejemplo el real 1.5 se une a su representacin de coma flotante normalizada IEEE754. 3. Momento de escritura: Los nombres de las variables se unen a sus tipos y permanecen asociados. 4. Momento de compilacin-carga del programa: Cuando compilamos el programa se asignan los recursos de memoria, pila de ejecucin al programa. 5. Momento de ejecucin del programa: Cuando ejecutamos las variables se unen a sus valores. Ej. X=3 Ortogonalidad Se refiere a, si un smbolo o palabra reservada tiene siempre el mismo significado independientemente del contexto en el que los utilicemos. Si existen caractersticas bsicas del lenguaje que interactan de manera predecible. Por ejemplo si unimos una variable a un tipo y en tiempo de ejecucin no puede cambiar de tipo. Fiabilidad de los programas: Si el programa se comporta igual cada vez que lo ejecutamos con los mismos datos. O para plataformas distintas. Aplicabilidad: Si tiene un soporte adecuado para las aplicaciones del dominio en el que lo utilizamos. Por ejemplo, un lenguaje para deduccin lgica puede no ser til en aplicaciones cliente /servidor. Abstraccin: Se utilizan abstracciones de datos como de procedimientos para el rehso de cdigo y evitar reinventarlo. Implementacin eficiente: El lenguaje debe permitir su implementacin prctica y eficiente en plataformas contemporneas. Un ejemplo de un lenguaje que cumple con estas caractersticas es el lenguaje java Principales caractersticas de java: Es independiente de la plataforma. El mismo programa puede ejecutarse en computadoras con diferente hardware o sistema operativo. Permite cdigo reusable al trabajar con clases java y abstracciones de datos, estas pueden ser utilizadas para otros programas. Es utilizado en diversos tipos de domino como aplicaciones web, aplicaciones de escritorio, aplicaciones para celulares. Es muy conocido y est ampliamente difundido. Utiliza principios de programacin orientada a objetos. Java es un lenguaje sencillo. Capacidad multihilo Gran rendimiento Creacin de aplicaciones distribuidas 4- Java - Algunas expresiones en java: Declaracin de una clase java: Declaracin del constructor de la clase: Declaracin de una funcin: {return a+b;} public class Operaciones { } public Operaciones (){} public int suma(int a, int b)

Declaracin de un mtodo: {} Declaracin de variables: Declaracin de un objeto de la clase Operaciones: Creacin del objeto: Asignacin de valores a variables Algunas expresiones en javascript:

public void mul (int a,int b) int x; float y; Operaciones op op= new Operaciones(); x=15; y=x/50

Declaracin del script javascript en una pgina HTML <script language=javascript> </script> Declaracin de una funcin: function verificar() {} Declaracin de variables: var num1,cadena1; Declaracin de vectores: var mes= new Array(31); Mostrar un mensaje en el navegador alert(Mensaje al usuario); Asignacin de valores a variables num1=345; cadena1=Valor de compra; -No es necesario declarar el tipo de valor que se va asignar a la variable Crear objeto de una clase predefinida var dia= new Date(); Abrir el documento HTML para procesar cdigo javascript o HTML document.open() Cerrar el documento HTML document.close();

En Java los programas se organizan en clases java y estas a su vez en paquetes java.

Grafico N1. Paquetes java. En la tabla siguiente se describen las diferentes partes de la declaracin de una clase, y en el orden que deben aparecer. Orden 1 Parte de la declaracin Notas

Comentario de documentacin En la parte de Comentario de Documentacin se indica la informacin que debe ir en este comentario

(/**...*/) 2 3 Sentencia class o interface Comentarios a la implementacin de la clase/interface (/*...*/), en caso necesario Variables de la clase (estticas) Variables de instancia Constructores Mtodos Declaracin de la clase Este comentario deber contener cualquier informacin de alcance que no sea adecuada para estar situada en el comentario que permite generar posteriormente la documentacin.

4 5 6 7

En primer lugar las variables public, luego las protected y finalmente las private. Primero las pblicas, luego las protegidas y las privadas. Para inicializar los objetos creados a partir de esta clase. Estos mtodos deben estar agrupados por funcionalidad, en vez de por el mbito o accesibilidad. Por ejemplo, un mtodo de una clase privada puede encontrarse entre dos mtodos de instancia pblicos. La finalidad es que el cdigo sea mas fcil de leer y entender.

Como el lenguaje java es orientado a objetos podemos ver a una clase como un conjunto de caractersticas que van a compartir un conjunto determinado de objetos. Esas caractersticas encapsulan una determinada funcionalidad otorgada por los mtodos y funciones que realiza. Javascript resulta un lenguaje para paginas HTML, es ampliamente soportado por todos los navegadores. Con Javascript podemos colocar un men desplegable, hacer que un visitante pueda mover una imagen por la pantalla, validar el texto ingresado por el usuario. En resumen, podemos ir mas all de una simple presentacin de un documento en pantalla. Javascript es un lenguaje sencillo y es el que est siendo contemplado por organismos de normalizacin. Por un lado, podemos agregar efectos especiales sobre un pgina web para crear contenidos dinmicos y elementos de la pgina que tengan movimiento. Por otro lado podemos ejecutar instrucciones como respuesta a las acciones de un usuario. En javascript el cdigo se organiza dentro de la pagina HTML, javascript es un lenguaje interpretado ya que el navegador interpreta cada lnea de cdigo y la ejecuta. El lenguaje se organiza con los tags <SCRIPT> .</ SCRIPT >determina que el cdigo comprendido entre los tags pertenece javascript Ejecucion directa del script. < SCRIPT > ..codigo javascript.</ SCRIPT > Aqu se incluye el fichero externo del cdigo javascript para separar el cdigo HTML y el cdigo javascript. El cdigo se ejecuta de manera externa al documento. < SCRIPT language=javascript src=fichero_externo.js> </ SCRIPT > Ejemplo de un script <SCRIPT> //DECLARACION DE VARIABLES GLOBALES var semana= new Array(7);

semana[0]=Lunes ; semana[1]=Martes; semana[2]=Miercoles; semana[3]=Jueves; semana[4]=Viernes; semana[5]=Sabado; semana[6]=Domingo; //MAS CODIGO JAVASCRIPT //DECLARACION DE FUNCIONES QUE INTERACTUAN CON EL DOCUMENTO HTML function color() { //DECLARACION DE VARIABLES LOCALES } //funcin que imprime los 7 dias de la semana en la pagina HTML function imprimir() { for (i=0;i<7;i++) document.write( - Dia :+semana[i])} //LLAMADA A FUNCION imprimir() imprimir(); //FUNCTION QUE VALIDA LOS CAMPOS DE UN FORMULARIO function validar(F) { if(vacio(F.nombre)) { alert(Ingrese un nombre en campo nombre.); return false; } if(EsMenor(F.nombre)) { alert(Ingrese 5 caracteres para el campo nombre.); return false; } Function vacio (){ if (campo.length ==0) return false;} Function EsMenor(){ if (campo.length <5) return false;} } </SCRIPT> Interaccin con elementos HTML Javascript permite interactuar con el usuario como respuesta a un evento como pude ser presionar un botn, hacer click sobre una determinada imagen o campo de texto que permiten personalizar la pgina HTML y ajustarla a las necesidades del programador. Esto facilita la interaccin con el usuario al ser un lenguaje que puede utilizarse conjuntamente con los tags HTML. Algunos ejemplos: Llama a la funcin javascript imprimir() desde un botn ; <input type=button name=botn value=Dias onclick=javascript:imprimir()> Botn que vuelve atrs el historial del navegador <input type=button name=botn onclick=javascript: History.go(-1)>

Formulario de envio de datos que llama a la funcin javascrit validar(this) para validar los datos de los campos del formulario. <form name=form1 action=/ingresar onsubmit=javascript: validar(this)method=post> Nombre: <input type=text name=nombre > Apellido: <input type=text name=Apellido> <input type=submit name=boton value=Enviar > </form> </form>

5- Origen de Java Java es un lenguaje de programacin creado para satisfacer una necesidad de la poca planteada por nuevos requerimientos hacia los lenguajes existentes. Sun Microsystems, lder en servidores para Internet, uno de cuyos lemas desde hace mucho tiempo es " the network is the computer" (lo que quiere dar a entender que el verdadero ordenador es la red en su conjunto y no cada mquina individual), es quien ha desarrollado el lenguaje Java, en un intento de resolver simultneamente todos los problemas que se le plantean a los desarrolladores de software por la proliferacin de arquitecturas incompatibles, tanto entre las diferentes mquinas como entre los diversos sistemas operativos y sistemas de ventanas que funcionaban sobre una misma mquina, aadiendo la dificultad de crear aplicaciones distribuidas en una red como Internet. Antes de la aparicin de Java, existan otros importantes lenguajes (muchos se utilizan todava). Entre ellos el lenguaje C era probablemente el ms popular debido a su versatilidad; contiene posibilidades semejantes a programar en ensamblador, pero con las comodidades de los lenguajes de alto nivel. Uno de los principales problemas del lenguaje C (como el de otros muchos lenguajes) era que cuando la aplicacin creca, el cdigo era muy difcil de manejar. Las tcnicas de programacin estructurada y programacin modular, paliaban algo el problema. Pero fue la programacin orientada a objetos (POO u OOP) la que mejor notablemente el situacin. Cada objeto se programa de forma autnoma y esa es la principal virtud. Uno de los famosos lenguajes orientado a objetos creado a partir del C tradicional se le llam C++ , indicando con esa simbologa que era un incremento del lenguaje C (en el lenguaje C, como en Java, los smbolos ++ significan incrementar). Java en la web Java fue desarrollado aproximadamente en la misma poca en que apareci la WWW, por tal motivo incorporo caractersticas orientadas a la web, que no exista cuando C fue desarrollado. Java est pensado para ofrecer un buen nivel de seguridad y para ser ejecutable en cualquier equipo sin importar las caractersticas de la mquina ni del sistema operativo sobre el que se ejecuten sus programas, slo es necesario que el equipo cuente con la mquina virtual java, un intrprete que ejecuta los programas java. Es un lenguaje de programacin en parte compilado y en parte interpretado. Al compilar un programa java se genera un cdigo intermedio, igual para todos los sistemas, que se llama bytecode , y que es lo que luego interpretar la mquina virtual java. De este modo se consigue que se pueda ejecutar en cualquier equipo. Estas caractersticas son ideales para Internet, lo que explica la gran difusin de pequeos programas en java (applets) que hoy en da aportan versatilidad a muchsimas pginas web. Los actuales navegadores llevan incorporada la mquina virtual java y, por lo tanto, son capaces de ejecutar programas java sin problemas.

Con Java se puede reproducir sonido directamente desde el navegador, se pueden visitar home pages con animaciones, se puede ensear al navegador a manejar nuevos formatos de ficheros, e incluso, cuando se pueda transmitir video nuestro navegador estar preparado para mostrar esas imgenes. Utilizando Java, se eliminaron los inconvenientes de la interfaz CGI y adems se pueden aadir aplicaciones que van desde experimentos cientficos interactivos de propsito educativo a juegos o aplicaciones especializadas. Es posible implementar publicidad interactiva y peridicos personalizados. Por ejemplo, alguien podra escribir un programa Java que implementara una simulacin qumica interactiva (una cadena de adn). Utilizando un navegador con soporte Java, un usuario podra recibir fcilmente esa simulacin e interaccionar con ella, en lugar de conseguir simplemente un dibujo esttico y algo de texto. Lo recibido cobra vida. El cdigo que intente actuar destructivamente o que contenga errores, no podr traspasar los muros defensivos colocados por las caractersticas de seguridad y robustez de Java. El software viaja transparentemente a travs de la red. Un navegador con soporte Java puede enlazar con el servidor que contiene el algoritmo que procesa ese nuevo formato y mostrar la imagen. Por lo tanto, si alguien inventa un nuevo algoritmo de compresin para imgenes, el inventor slo necesita estar seguro de que hay una copia en cdigo Java de ese algoritmo instalada en el servidor que contiene las imgenes que quiere publicar. Es decir, los navegadores con soporte Java se actualizan a s mismos cuando encuentran un nuevo tipo de fichero o algoritmo. Java Independiente de la plataforma Java est diseado para que un programa escrito en este lenguaje sea ejecutado independientemente de la plataforma (hardware, software y sistema operativo) en la que se est actuando. Esta portabilidad se consigue haciendo de Java un lenguaje medio interpretado medio compilado. Por un lado el cdigo se compila a un lenguaje intermedio cercano al lenguaje mquina pero independiente del ordenador y el sistema operativo en que se ejecuta (llamado en el mundo Java bytecodes).

Grafico N2. Compilacin de cdigo java. Finalmente, se interpreta ese lenguaje intermedio por medio de un programa denominado mquina virtual de Java (JVM), que s depende de la plataforma. Lenguajes de origen. Los lenguajes de origen de java tuvieron lugar cuando Sun Microsystems decidi intentar introducirse en el mercado de la electrnica de consumo y desarrollar programas para pequeos dispositivos electrnicos. Sun creo FirstPerson Inc. encargado de llevar a cabo el proyecto. James Gosling, el miembro del equipo con ms experiencia en lenguajes de programacin, decidi que las ventajas aportadas por la eficiencia de C++ no compensaban el gran coste de pruebas y depuracin. Gosling haba estado trabajando en un lenguaje de programacin que l haba llamado Oak, el cual, an parta de la sintaxis de C++ e intentaba remediar las deficiencias que iba observando. El primer proyecto en que se aplic este lenguaje recibi el nombre de proyecto Green y consista en un sistema de control completo de los aparatos electrnicos y el entorno de un hogar. Posteriormente se aplic a otro proyecto denominado VOD (Video On Demand) en el que se empleaba como interfaz para la televisin

interactiva. Ninguno de estos proyectos se convirti nunca en un sistema comercial, pero fueron desarrollados enteramente en un Java primitivo y fueron como su bautismo de fuego. Una vez que en Sun se dieron cuenta de que a corto plazo la televisin interactiva no iba a ser un gran xito, urgieron a FirstPerson a desarrollar con rapidez nuevas estrategias que produjeran beneficios. No lo consiguieron y FirstPerson cerr en la primavera de 1994. Pese a lo que pareca ya un olvido definitivo, Bill Joy, cofundador de Sun y uno de los desarrolladores principales del Unix de Berkeley, juzg que Internet podra llegar a ser el campo de juego adecuado para disputar a Microsoft su primaca casi absoluta en el terreno del software, y vio en Oak el instrumento idneo para llevar a cabo estos planes. Tras un cambio de nombre y modificaciones de diseo, el lenguaje Java fue presentado en sociedad en agosto de 1995.

Servlets Los servelts son unidades de cdigo que presentan cierta funcionalidad y se ejecutan del lado del servidor. Tiene como uno de sus objetivos generar cdigo HTML que se enviara al cliente. Se construye a partir de clases java que heredan de una superclase general, necesitan un Servlet Container para su correcto funcionamiento o tambin llamado Web Container. Los servlet surgieron como una evolucin de los CGI. Los servlet tienen la siguiente caracterstica: Applet La definicin ms extendida de applet, indica que un applet es "una pequea aplicacin accesible en un servidor Internet, que se transporta por la red, se instala automticamente y se ejecuta in situ como parte de un documento web". Un applet es una aplicacin pretendidamente corta basada en un formato grfico sin representacin independiente: es decir, se trata de un elemento a embeber en otras aplicaciones; es un componente en su sentido estricto. Son independientes del servidor y de sus sistema operativo. Los servlet pueden llamar a otros servlets, e incluso a mtodos de otros servlets, distribuyendo de esta forma el trabajo a realizar. Los servlets pueden obtener fcilmente informacin del cliente, como IP, puerto, mtodos Get y post. Permiten utilizacin de cookies y sesiones. Los servlets pueden actuar como enlace intermedio entre el cliente y una o varias bases de datos en arquitecturas cliente/servidor de 3 capas. Los sevlets permiten generacin dinmica de cdigo HTML

Un applet es una mnima aplicacin Java diseada para ejecutarse en un navegador Web. El applet asume que el cdigo se est ejecutando desde dentro de un navegador. El fichero html debe contener una marca que especifica el cdigo que cargar para que la JVM ejecute el applet: <HTML> <APPLET CODE=HolaMundo.class WIDTH=300 HEIGHT=100> </APPLET>

</HTML> Los applets se han construido mayoritariamente, y con gran acierto comercial, como pequeas aplicaciones interactivas, con movimiento, luces y sonido en internet. PARTE 2 1Importancia de la sintaxis

A la forma visible de un lenguaje de programacin se le conoce como sintaxis. La mayora de los lenguajes de programacin son puramente textuales, es decir, utilizan secuencias de texto que incluyen palabras, nmeros y puntuacin, de manera similar a los lenguajes naturales escritos. Por otra parte, hay algunos lenguajes de programacin que son ms grficos en su naturaleza, utilizando relaciones visuales entre smbolos para especificar un programa. La importancia de la sintaxis radica en que un lenguaje de programacin describe las combinaciones posibles de los smbolos que forman un programa sintcticamente correcto. El significado que se le da a una combinacin de smbolos es manejado por su semntica. Elementos de la sintaxis:

Conjunto de Caracteres: Es la primera etapa en el diseo de la sintaxis de un lenguaje. Casi todos tienen el mismo conjunto de letras y dgitos, la diferencia est en los caracteres especiales. Sintaxis bsica: string de letra y/o dgito comenzando con letra. Se introducen caracteres especiales que facilitan la lectura. Operadores: La mayora de los lenguajes tiene un conjunto estndar de operadores aritmticos relacionales y lgicos. Palabra clave: identificador usado como parte fija de la sintaxis de una sentencia. Palabra reservada: palabra clave que no puede ser usada como identificador. Comentarios y Palabras Opcionales: La mayora de los lenguajes permite incluir comentarios en los programas. Los comentarios no son considerados durante la compilacin. Delimitadores Es un elemento sintctico para marcar el comienzo y/o el fin de una unidad sintctica Ejemplo: BEGIN .... END

2- Reglas sintcticas y lexicogrficas Las reglas sintcticas son un conjunto de normas que asocian variables de programacin para formar las instrucciones. Un programa en cualquier lenguaje se puede concebir como un string (cadena) de caracteres escogidos de algn conjunto o alfabeto de caracteres. Las reglas que determinan si un string es un programa vlido o no, constituyen las reglas sintcticas de un lenguaje. La sintaxis de los lenguajes de programacin es definida generalmente utilizando una combinacin de expresiones regulares (para la estructura lxica) y la Notacin de Backus-Naur (para la estructura gramtica). Este es un ejemplo de una gramtica simple, tomada de Lisp: expresin ::= tomo | lista

tomo ::= nmero | smbolo nmero ::= [+-]?['0'-'9']+ smbolo ::= ['A'-'Z'<nowiki>'</nowiki>a'-'z'].* lista ::= '(' expresin* ')' Con esta gramtica se especifica lo siguiente:

una expresin puede ser un tomo o una lista; un tomo puede ser un nmero o un smbolo; un nmero es una secuencia continua de uno o ms dgitos decimales, precedido opcionalmente por un signo ms o un signo menos; un smbolo es una letra seguida de cero o ms caracteres (excluyendo espacios); y una lista es un par de parntesis que abren y cierran, con cero o ms expresiones en medio.

Una regla lexicogrfica esta determinada por el lxico de un lenguaje. Un lxico es un conjunto de smbolos que se pueden usar en un lenguaje. Estos smbolos o elementos bsicos del lenguaje, podrn ser de los siguientes: Identificadores: nombres simblicos que se darn a ciertos elementos de programacin (p.e. nombres de variables, tipos, mdulos, etc.). Constantes: datos que no cambiarn su valor a lo largo del programa. Operadores: smbolos que representarn operaciones entre variables y constantes. Instrucciones: smbolos especiales que representarn estructuras de procesamiento, y de definicin de elementos de programacin. Comentarios: texto que se usar para documentar los programas

3-

Semntica

La semntica de un lenguaje de programacin est relacionada con el significado de los programas, describe el significado de los smbolos, palabras y frases del lenguaje informtico. Tipos de semntica: Semntica esttica Semntica dinmica La semntica esttica de un lenguaje no tiene nada que ver con el significado de los programas, ms bien tiene que ver con las restricciones de los lenguajes que permiten obtener expresiones legales en los lenguajes. Recibe este nombre debido a que el anlisis requerido para comprobar estas especificaciones se puede realizar en tiempo de compilacin. Como, por ejemplo, un problema de compatibilidad. A estas reglas se denominan reglas semnticas estticas. La semntica dinmica es la que describe el efecto de ejecutar las diferentes construcciones en el lenguaje de programacin. Su efecto se describe durante la ejecucin del programa. Los programas solo se pueden ejecutar si son correctos para la sintaxis y para la semntica esttica Existen diferentes soluciones formales: Semntica axiomtica. La notacin empleada es el clculo de predicados.

Se desarroll para probar la correccin de los programas . Ve al programa como una mquina de estados. Semntica denotacional: Se basa en la teora de funciones recursivas. Se diferencia de la axiomtica por la forma que describe los estados, la axiomtica lo describe a travs de los predicados, la denotacional a travs de funciones. Semntica operacional: El significado de un programa se describe mediante otro lenguaje de bajo nivel implementado sobre una mquina abstracta. Los cambios que se producen en el estado de la mquina cuando se ejecuta una sentencia del lenguaje de programacin definen su significado. Es un mtodo informal Compilar un programa

4-

Significa traducir las instrucciones escritas en un determinado lenguaje de programacin a lenguaje mquina. Un programa fuente se puede dividir en mdulos almacenados en archivos distintos. La tarea de reunir el programa fuente a menudo se confa a un programa distinto, llamado preprocesador. El preprocesador tambin puede expandir abreviaturas, llamadas a macros, a proposiciones del lenguaje fuente. Normalmente la creacin de un conlleva dos pasos. El primer paso se llama compilacin y traduce el cdigo fuente a cdigo en bajo nivel (normalmente en cdigo objeto, no directamente a lenguaje mquina). El segundo paso se llama enlazado en el cual se enlaza el cdigo de bajo nivel generado de todos los ficheros y subprogramas que se han mandado compilar y se aade el cdigo de las funciones que hay en las bibliotecas del compilador para que el ejecutable pueda comunicarse directamente con el sistema operativo, traduciendo as finalmente el cdigo objeto a cdigo mquina 5 - Etapas del proceso El proceso de traduccin se compone internamente de varias etapas o fases

1- Anlisis lxico :El anlisis lxico constituye la primera fase, aqu se lee el
programa fuente de izquierda a derecha y se agrupa en componentes lxicos (tokens), que son secuencias de caracteres que tienen un significado. Un analizador lxico tambin es la parte del traductor

2- Anlisis sintctico En esta fase los caracteres o componentes lxicos se


agrupan jerrquicamente en frases gramaticales que el compilador utiliza para sintetizar la salida. Se comprueba si lo obtenido de la fase anterior es sintcticamente correcto 3Anlisis semntico La fase de anlisis semntico revisa el programa fuente para tratar de encontrar errores semnticos y rene la informacin sobre los tipos para la fase posterior de generacin de cdigo.

4- Generacin de cdigo intermedio Despus de los anlisis sintctico y


semntico, algunos compiladores generan una representacin intermedia explcita del programa fuente. Se puede considerar esta representacin intermedia como un programa para una mquina abstracta.

5- Optimizacin de cdigo La fase de optimizacin de cdigo consiste en


mejorar el cdigo intermedio, de modo que resulte un cdigo mquina ms rpido de ejecutar.

6- Generacin de Ejecutable : Se genera el archivo ejecutable directamente en


lenguaje maquina con instrucciones solo entendible para la computadora. 6El anlisis semntico interviene en la etapa 3 de la compilacin, luego del anlisis lxico y sintctico. La fase de anlisis semntico revisa el programa fuente para tratar de encontrar errores semnticos y rene la informacin sobre los tipos para la fase posterior de generacin de cdigo. En ella se utiliza la estructura jerrquica determinada por la fase de anlisis sintctico para identificar los operadores y operandos de expresiones y proposiciones. Un componente importante del anlisis semntico es la verificacin de tipos. Aqu, el compilador verifica si cada operador tiene operandos permitidos por la especificacin del lenguaje fuente. Por ejemplo, las definiciones de muchos lenguajes de programacin requieren que el compilador indique un error cada vez que se use un nmero real como ndice de una matriz. Sin embargo, la especificacin del lenguaje puede imponer restricciones a los operandos, por ejemplo, cuando un operador aritmtico binario se aplica a un nmero entero y a un nmero real. Revisa que los arreglos tengan definido el tamao correcto.

7 Diferencias entre compilador e interprete.


Compilador: Analiza el programa fuente y lo traduce a otro equivalente escrito en otro lenguaje (por ejemplo, en el lenguaje de la mquina). Intrprete: Analiza el programa fuente y lo ejecuta directamente, sin generar ningn cdigo equivalente. Intrpretes y compiladores tienen diversas ventajas e inconvenientes:
o

Un intrprete facilita la bsqueda de errores, pues la ejecucin de un programa puede interrumpirse en cualquier momento para estudiar el entorno (valores de las variables,

etc.). Adems, el programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecucin.
o

Un compilador suele generar programas ms rpidos y eficientes, ya que el anlisis del lenguaje fuente se hace una sola vez, durante la generacin del programa equivalente. En cambio, un intrprete se ve obligado generalmente a analizar cada instruccin tantas veces como se ejecute (incluso miles o millones de veces). Un intrprete permite utilizar funciones y operadores ms potentes, como por ejemplo ejecutar cdigo contenido en una variable en forma de cadenas de caracteres. Usualmente, este tipo de instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que incluyen este tipo de operadores y que, por tanto, exigen un intrprete, se llaman interpretativos. Los lenguajes compilativos, que permiten el uso de un compilador, prescinden de este tipo de operadores.

8 - Ejemplo de dos programas y sus errores. JAVA public class Prueba { public static void main ( String args[] ) { Prueba prueba = new Prueba(); System.out.println("Suma : "+ prueba.suma(5,7)); } public int suma (String a, int b) //Sintacticamente correcta {return a+b;} //Semanticamente incorrecto. Problema de tipos public int mul (float a, int b) //Sintacticamente correcta { return a*b;} //Semanticamente incorrecto. Problema de tipos public FLOAT div (float a, int b) //Sintacticamente incorrecta { float result; returN result=a/b; //Sintacticamente incorrecta } } Javascrip y HTML <html> <body> <script language=javascript> suma(5,2); resta(a,5); //Sintacticamente correcta. Semanticamente incorrecto. //Problema de tipos mult(`r,1); //Sintacticamente correcta. Semanticamente incorrecto. //Problema de tipos //Sintacticamente incorrecta.

Function suma(a,b){ );

result= a+b alert(la suma es+result); } function resta(a,b){ return a-b; } functiON mul(a,b){ //Sintacticamente incorrecta. result=a*b; ALert(la multiplicacin es+result); //Sintacticamente incorrecta. } }</script> <body></html>

Referencias: Paginas consultadas. http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Historia_de_C http://html.rincondelvago.com/lenguajes-de-programacion_historia-yevolucion.html http://es.wikipedia.org/wiki/BCPL http://java.ciberaula.com/articulo/tecnologia_java/ http://www.buenastareas.com/ensayos/Sintaxis-Lenguajes-DeProgramacion/1975385.html http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n http://es.wikipedia.org/wiki/Sem%C3%A1ntica http://informatica.uv.es/iiguia/AED/oldwww/2004_05/AED.Tema.02.pdf http://es.wikipedia.org/wiki/Compilador http://www.todo-programacion.com.ar/archives/2005/04/interpretes_y_c.html

Vous aimerez peut-être aussi