PracticoN1-Pereyragabriel
Transcript of PracticoN1-Pereyragabriel
7/27/2019 PracticoN1-Pereyragabriel
http://slidepdf.com/reader/full/practicon1-pereyragabriel 1/16
TEMA : CONCEPTOS LENGUAJES DE PROGRAMACION
PRACTICO Nº1
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 representación más directa del
código máquina para cada arquitectura legible por un programador. Fue utilizado al comienzo del
desarrollo de software, cuando aún no se contaba con potentes lenguajes de alto nivel y los recursos
eran limitados.
956-1960: FORTRAN, ALGOL 58, ALGOL 60, LISP
Incluyen tecnología inicial de compiladores, gramáticas BNF, optimización de códigos, intérpretes. El
almacenaje se realiza en cintas magnéticas, memorias de nucleo, circuito de trasnistores. Son lenguajes
de alto nivel utilizados en el ámbito científico Los lenguajes de alto nivel son normalmente fáciles de
aprender porque están formados por elementos de lenguajes naturales, como el inglés. Se incluyeron loscompiladores
1961-1965: COBOL, ALGOL 60, SNOBOL, JOVIAL
El lenguaje COBOL fue el lenguaje mas utilizado en las aplicaciones de gestión, 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 características más destacables son las siguientes: se asemeja al lenguaje natural (inglés), es
autodocumentado y ofrece grandes facilidades en el manejo de archivos, así como en la edición de
informes escritos. Puede emplear términos comúnmente 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 fácil de
aprender, como se indica en su nombre, como BASIC, Beginner's All-purpose Symbolic Instruction
Code (Código de instrucciones simbólico de propósito general para principiantes). Es un lenguaje
interactivo muy popular que tiene una aceptación debido a la facilidad de su uso, es un idioma simple
para aprender y fácil de traducir. Interactivo, ya que permite la comunicación directa entre el usuario y
el sistema de computo durante la preparación y uso de los programas. Entre sus principales novedades
están las de ser un lenguaje interpretado y de uso conversacional, Las características más destacables
son las siguientes: se asemejan al lenguaje natural (inglés), auto documentación, ofrecen grandes
facilidades en el manejo de archivos como en la edición de informes
7/27/2019 PracticoN1-Pereyragabriel
http://slidepdf.com/reader/full/practicon1-pereyragabriel 2/16
1971-1975: Pascal, C, Scheme, Prolog
Aporta los conceptos de tipo de datos, programación estructurada y diseño descendente, entre otros,
además de haberse convertido en predecesor de otros lenguajes más modernos, en el caso de PASCAL.
El lenguaje C reúne características de programación intermedia entre los lenguajes ensambladores y los
lenguajes de alto nivel; con gran poderío basado en sus operaciones a nivel de bits (propias de
ensambladores) y la mayoría de los elementos de la programación 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 programación de computadoras.
1976-1980: Smalltalk, Ada, FORTRAN 77, ML
Las características del Ada son las siguientes: se encuentran la compilación separada, los tipos
abstractos de datos, programación concurrente, programación estructurada, libertad de formatos de
escritura, etc. Como principal inconveniente presenta su gran extensión. Los escritores lo llamaron
inflexible e ineficiente, en tanto que sus favorecedores lo consideraban un gran avance en la tecnologíadel software Otros avances son la programación orientado a objetos: Permite realizar tareas de
computación mediante la interacción con un entorno de objetos virtuales. SMALLTALK incorpora
características orientación a objetos, tipado dinámico, interacción entre objetos mediante envío de
mensajes, herencia simple, reflexión computacional completa, compilación en tiempo de ejecución,
múltiples 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 tecnologías 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 tipode hardware, dispositivos móviles y sistemas embebidos.
2- Historia de C
El lenguaje de programación C fue creado por Dennis Ritchie entre 1969 y 1973 cuando trabajaba en
Bell Laboratorios de AT&T junto con Ken Thompson en el diseño 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 mismocódigo podía ser utilizado en las distintas plataformas, propiciando la reutilización de código y
7/27/2019 PracticoN1-Pereyragabriel
http://slidepdf.com/reader/full/practicon1-pereyragabriel 3/16
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.
Además, con el paso del tiempo se han desarrollado cientos de bibliotecas que permiten a los
programadores de C utilizar el código desarrollado por otros para la realización de tareas comunes. Esto,
a su vez, ha propiciado el desarrollo de aplicaciones en lenguaje C.
Evolución
A mediados de los años 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 más
portable y flexible.
Durante los siguientes años, Dennis Ritchie modificó el lenguaje B, llegando a crear el lenguaje C y
reescribiendo el sistema UNIX en dicho lenguaje; añadió características nuevas, como son el diseño detipos y las estructuras de datos.
En 1978, Dennis Ritchie y Brian Kernighan publicaron la primera edición del libro El lenguaje de
programación C . Este libro fue durante años la especificación informal del lenguaje. El lenguaje
descrito en la primera edición de este libro, fue conocido como "el C de Kernighan y Ritchie" o
simplemente "K&R C". En este libro se introdujeron nuevas características al lenguaje: los tipo de datos
struct, long int y unsigned int; los operadores =+ y =- fueron sustituidos por += y -=.
A mediados de los años 80, Bjarne Stroustrup (también de los laboratorios Bell), crea el lenguaje C++,
un lenguaje basado en C, con numerosas características 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 más asociado a C.
3- Características de los lenguajes:
Para caracterizar los lenguajes se siguen el siguiente criterio:
• Simplicidad y claridad
• Uniones
• Ortogonalidad.
• Fiabilidad de los programas.
• Aplicabilidad
•Abstracción
• Implementación 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 diseñados para facilitar la claridad de expresión.
Pascal fue diseñado explícitamente como un lenguaje de enseñanza.
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 unión:
1. Momentos de definición del lenguaje: Como son las palabras reservadas dellenguaje.
7/27/2019 PracticoN1-Pereyragabriel
http://slidepdf.com/reader/full/practicon1-pereyragabriel 4/16
2. Momento de implementación del lenguaje: cuando escribimos el compilador o
interpretador el valor se une a su representación. Por ejemplo el real 1.5 se une
a su representación 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 compilación-carga del programa: Cuando compilamos el programa
se asignan los recursos de memoria, pila de ejecución al programa.
5. Momento de ejecución del programa: Cuando ejecutamos las variables se unen
a sus valores. Ej. X=3
Ortogonalidad
Se refiere a, si un símbolo o palabra reservada tiene siempre el mismo significado independientemente
del contexto en el que los utilicemos. Si existen características básicas del lenguaje que interactúan de
manera predecible. Por ejemplo si unimos una variable a un tipo y en tiempo de ejecución 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 deducción lógica puede no ser útil en aplicaciones cliente /servidor.
Abstracción: Se utilizan abstracciones de datos como de procedimientos para el rehúso de código y
evitar reinventarlo.
Implementación eficiente: El lenguaje debe permitir su implementación práctica y eficiente en
plataformas contemporáneas.
Un ejemplo de un lenguaje que cumple con estas características es el lenguaje javaPrincipales características de java:
• Es independiente de la plataforma. El mismo programa puede ejecutarse en
computadoras con diferente hardware o sistema operativo.
• Permite código 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 programación orientada a objetos.
• Java es un lenguaje sencillo.
Capacidad multihilo
Gran rendimiento
Creación de aplicaciones distribuidas
4- Java
- Algunas expresiones en java:
Declaración de una clase java:
public class Operaciones { }
Declaración del constructor de la clase: public Operaciones (){}
Declaración de una función: public int suma(int a, int b)
{return a+b;}
7/27/2019 PracticoN1-Pereyragabriel
http://slidepdf.com/reader/full/practicon1-pereyragabriel 5/16
Declaración de un método: public void mul (int a,int b){}
Declaración de variables: int x; float y;Declaración de un objeto de la clase Operaciones: Operaciones op
Creación del objeto: op= new Operaciones();
Asignación de valores a variables x=15; y=x/50
- Algunas expresiones en javascript:
Declaración del script javascript en una página HTML
<script language=javascript></script>
Declaración de una función: function verificar() {}Declaración de variables: var num1,cadena1;
Declaración de vectores: var mes= new Array(31);Mostrar un mensaje en el navegador alert(“Mensaje al usuario”);Asignación 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 código 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 Nº1. Paquetes java.
En la tabla siguiente se describen las diferentes partes de la declaración de una clase, y en el orden que
deben aparecer.
Orden Parte de la declaración Notas
1Comentario de documentación En la parte de Comentario de Documentación se indica lainformación que debe ir en este comentario
7/27/2019 PracticoN1-Pereyragabriel
http://slidepdf.com/reader/full/practicon1-pereyragabriel 6/16
(/**...*/)
2 Sentencia class ointerface
Declaración de la clase
3 Comentarios a la
implementación de la
clase/interface
(/*...*/), en caso
necesario
Este comentario deberá contener cualquier información de alcance
que no sea adecuada para estar situada en el comentario que
permite generar posteriormente la documentación.
4 Variables de la clase
(estáticas)
En primer lugar las variables public, luego las protected y
finalmente las private.
5 Variables de instancia Primero las públicas, luego las protegidas y las privadas.
6 Constructores Para inicializar los objetos creados a partir de esta clase.
7 Métodos Estos métodos deben estar agrupados por funcionalidad, en vez de por el ámbito o accesibilidad. Por ejemplo, un método de una
clase privada puede encontrarse entre dos métodos de instancia
públicos. La finalidad es que el código sea
mas fácil de leer y entender.
Como el lenguaje java es orientado a objetos podemos ver a una clase como un conjunto de
características que van a compartir un conjunto determinado de objetos. Esas características encapsulan
una determinada funcionalidad otorgada por los métodos 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 presentación de un documento en pantalla. Javascript es un lenguaje sencillo y es el que
está siendo contemplado por organismos de normalización. Por un lado, podemos agregar efectos
especiales sobre un página web para crear contenidos dinámicos y elementos de la página que tengan
movimiento. Por otro lado podemos ejecutar instrucciones como respuesta a las acciones de un usuario.
En javascript el código se organiza dentro de la pagina HTML, javascript es un lenguaje interpretado ya
que el navegador interpreta cada línea de código y la ejecuta. El lenguaje se organiza con los tags
<SCRIPT> ….</ SCRIPT >determina que el código comprendido entre los tags pertenece javascript
• Ejecucion directa del script.< SCRIPT > …..codigo javascript….</ SCRIPT >
• Aquí se incluye el fichero externo del código javascript para separar el código HTML y
el código javascript. El código se ejecuta de manera externa al documento.< SCRIPT language=javascript src=”fichero_externo.js”></ SCRIPT >
Ejemplo de un script
<SCRIPT>//DECLARACION DE VARIABLES GLOBALESvar semana= new Array(7);
7/27/2019 PracticoN1-Pereyragabriel
http://slidepdf.com/reader/full/practicon1-pereyragabriel 7/16
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}
//función 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 FORMULARIOfunction 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>
Interacción con elementos HTML
Javascript permite interactuar con el usuario como respuesta a un evento como pude ser presionar un
botón, hacer click sobre una determinada imagen o campo de texto que permiten personalizar la página
HTML y ajustarla a las necesidades del programador. Esto facilita la interacción con el usuario al ser un
lenguaje que puede utilizarse conjuntamente con los tags HTML.
Algunos ejemplos:
Llama a la función javascript imprimir() desde un botón ;
<input type=button name=botón value=Diasonclick=’javascript:imprimir()’>
Botón que vuelve atrás el historial del navegador
<input type=button name=botón onclick=’javascript: History.go(-1)’>
7/27/2019 PracticoN1-Pereyragabriel
http://slidepdf.com/reader/full/practicon1-pereyragabriel 8/16
Formulario de envio de datos que llama a la función 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 programación creado para satisfacer una necesidad de la época planteada por
nuevos requerimientos hacia los lenguajes existentes. Sun Microsystems, líder 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 máquina individual), es
quien ha desarrollado el lenguaje Java, en un intento de resolver simultáneamente todos los problemas
que se le plantean a los desarrolladores de software por la proliferación de arquitecturas incompatibles,
tanto entre las diferentes máquinas como entre los diversos sistemas operativos y sistemas de ventanas
que funcionaban sobre una misma máquina, añadiendo la dificultad de crear aplicaciones distribuidas en
una red como Internet.
Antes de la aparición de Java, existían otros importantes lenguajes (muchos se utilizan todavía). Entre
ellos el lenguaje C era probablemente el más 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 laaplicación crecía, el código era muy difícil de manejar. Las técnicas de programación estructurada y
programación modular, paliaban algo el problema. Pero fue la programación orientada a objetos
(POO u OOP) la que mejoró notablemente el situación. Cada objeto se programa de forma autónoma 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 simbología que era un incremento del lenguaje C (en el lenguaje C, como en Java, los
símbolos ++ significan incrementar).
Java en la web
Java fue desarrollado aproximadamente en la misma época en que apareció la WWW, por tal motivo
incorporo características orientadas a la web, que no existía cuando C fue desarrollado. Java está pensado para ofrecer un buen nivel de seguridad y para ser ejecutable en cualquier equipo sin importar
las características de la máquina ni del sistema operativo sobre el que se ejecuten sus programas, sólo es
necesario que el equipo cuente con “la máquina virtual java”, un intérprete que ejecuta los programas
java. Es un lenguaje de programación en parte “compilado” y en parte “interpretado”. Al compilar un
programa java se genera un código intermedio, igual para todos los sistemas, que se llama “bytecode” ,
y que es lo que luego interpretará la “máquina virtual java”. De este modo se consigue que se pueda
ejecutar en cualquier equipo.
Estas características son ideales para Internet, lo que explica la gran difusión de pequeños
programas en java (“applets”) que hoy en día aportan versatilidad a muchísimas páginas web. Los
actuales navegadores llevan incorporada “la máquina virtual java” y, por lo tanto, son capaces de
ejecutar programas java sin problemas.
7/27/2019 PracticoN1-Pereyragabriel
http://slidepdf.com/reader/full/practicon1-pereyragabriel 9/16
Con Java se puede reproducir sonido directamente desde el navegador, se pueden visitar home pages
con animaciones, se puede enseñar al navegador a manejar nuevos formatos de ficheros, e incluso,
cuando se pueda transmitir video nuestro navegador estará preparado para mostrar esas imágenes.
Utilizando Java, se eliminaron los inconvenientes de la interfaz CGI y además se pueden añadir
aplicaciones que van desde experimentos científicos interactivos de propósito educativo a juegos o
aplicaciones especializadas. Es posible implementar publicidad interactiva y periódicos personalizados.
Por ejemplo, alguien podría escribir un programa Java que implementara una simulación química
interactiva (una cadena de adn). Utilizando un navegador con soporte Java, un usuario podría recibir
fácilmente esa simulación e interaccionar con ella, en lugar de conseguir simplemente un dibujo estático
y algo de texto. Lo recibido cobra vida. El código que intente actuar destructivamente o que contenga
errores, no podrá traspasar los muros defensivos colocados por las características de seguridad y
robustez de Java. El software viaja transparentemente a través 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 compresión para imágenes, el inventor
sólo necesita estar seguro de que hay una copia en código Java de ese algoritmo instalada en el servidor
que contiene las imágenes 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á diseñado 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 código se
compila a un lenguaje intermedio cercano al lenguaje máquina pero independiente del ordenador y el
sistema operativo en que se ejecuta (llamado en el mundo Java bytecodes).
Grafico Nº2. Compilación de código java.
Finalmente, se interpreta ese lenguaje intermedio por medio de un programa denominado máquina
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 electrónica de consumo y desarrollar programas para pequeños dispositivos
electrónicos. Sun creo FirstPerson Inc. encargado de llevar a cabo el proyecto.
James Gosling, el miembro del equipo con más experiencia en lenguajes de programación, decidió que
las ventajas aportadas por la eficiencia de C++ no compensaban el gran coste de pruebas y depuración.
Gosling había estado trabajando en un lenguaje de programación que él había llamado Oak, el cual, aún
partía 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 consistía en un sistema de control
completo de los aparatos electrónicos 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 televisión
7/27/2019 PracticoN1-Pereyragabriel
http://slidepdf.com/reader/full/practicon1-pereyragabriel 10/16
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 televisión 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 parecía ya un olvido definitivo, Bill Joy, cofundador de Sun y uno de los desarrolladores
principales del Unix de Berkeley, juzgó que Internet podría llegar a ser el campo de juego adecuado
para disputar a Microsoft su primacía casi absoluta en el terreno del software, y vio en Oak el
instrumento idóneo para llevar a cabo estos planes. Tras un cambio de nombre y modificaciones de
diseño, el lenguaje Java fue presentado en sociedad en agosto de 1995.
Servlets
Los servelts son unidades de código que presentan cierta funcionalidad y se ejecutan del lado del
servidor. Tiene como uno de sus objetivos generar código HTML que se enviara al cliente. Se construyea partir de clases java que heredan de una superclase general, necesitan un Servlet Container para su
correcto funcionamiento o también llamado Web Container. Los servlet surgieron como una evolución
de los CGI. Los servlet tienen la siguiente característica:
• Son independientes del servidor y de sus sistema operativo.
• Los servlet pueden llamar a otros servlets, e incluso a métodos de otros servlets,
distribuyendo de esta forma el trabajo a realizar.
• Los servlets pueden obtener fácilmente información del cliente, como IP, puerto,
métodos Get y post.
• Permiten utilización 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 generación dinámica de código HTML
Applet
La definición más extendida de applet, indica que un applet es "una pequeña aplicación accesible en un
servidor Internet, que se transporta por la red, se instala automáticamente y se ejecuta in situ como partede un documento web". Un applet es una aplicación pretendidamente corta basada en un formato gráfico
sin representación independiente: es decir, se trata de un elemento a embeber en otras aplicaciones; es
un componente en su sentido estricto.
Un applet es una mínima aplicación Java diseñada para ejecutarse en un navegador Web. El applet
asume que el código se está ejecutando desde dentro de un navegador. El fichero html debe contener
una marca que especifica el código que cargará para que la JVM ejecute el applet:
<HTML><APPLET CODE=HolaMundo.class WIDTH=300 HEIGHT=100></APPLET>
7/27/2019 PracticoN1-Pereyragabriel
http://slidepdf.com/reader/full/practicon1-pereyragabriel 11/16
</HTML>
Los applets se han construido mayoritariamente, y con gran acierto comercial, como pequeñas
aplicaciones interactivas, con movimiento, luces y sonido en internet.
PARTE 2
1- Importancia de la sintaxis
A la forma visible de un lenguaje de programación se le conoce como sintaxis. La mayoría de los
lenguajes de programación son puramente textuales, es decir, utilizan secuencias de texto que incluyen
palabras, números y puntuación, de manera similar a los lenguajes naturales escritos. Por otra parte, hay
algunos lenguajes de programación que son más gráficos en su naturaleza, utilizando relaciones visuales
entre símbolos para especificar un programa. La importancia de la sintaxis radica en que un lenguaje de
programación describe las combinaciones posibles de los símbolos que forman un programa
sintácticamente correcto. El significado que se le da a una combinación de símbolos es manejado por su
semántica. Elementos de la sintaxis:
• Conjunto de Caracteres: Es la primera etapa en el diseño de la sintaxis de un lenguaje. Casi
todos tienen el mismo conjunto de letras y dígitos, la diferencia está en los caracteres especiales.
• Sintaxis básica: string de letra y/o dígito comenzando con letra. Se introducen caracteres
especiales que facilitan la lectura.
• Operadores: La mayoría de los lenguajes tiene un conjunto estándar de operadores aritméticos
relacionales y lógicos.
• 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 mayoría de los lenguajes permite incluir comentarios en
los programas. Los comentarios no son considerados durante la compilación.
• Delimitadores
Es un elemento sintáctico para marcar el comienzo y/o el fin de una unidad sintáctica Ejemplo:
BEGIN
....
END
2- Reglas sintácticas y lexicográficas
Las reglas sintácticas son un conjunto de normas que asocian variables de programación para formar
las instrucciones. Un programa en cualquier lenguaje se puede concebir como un string (cadena) de
caracteres escogidos de algún conjunto o alfabeto de caracteres. Las reglas que determinan si un string
es un programa válido o no, constituyen las reglas sintácticas de un lenguaje.
La sintaxis de los lenguajes de programación es definida generalmente utilizando una combinación de
expresiones regulares (para la estructura léxica) y la Notación de Backus-Naur (para la estructura
gramática). Este es un ejemplo de una gramática simple, tomada de Lisp:
expresión ::= átomo | lista
7/27/2019 PracticoN1-Pereyragabriel
http://slidepdf.com/reader/full/practicon1-pereyragabriel 12/16
átomo ::= número | símbolo
número ::= [+-]?['0'-'9']+
símbolo ::= ['A'-'Z'<nowiki>'</nowiki>a'-'z'].*
lista ::= '(' expresión* ')'
Con esta gramática se especifica lo siguiente:
• una expresión puede ser un átomo o una lista;
• un átomo puede ser un número o un símbolo;
• un número es una secuencia continua de uno o más dígitos decimales, precedido opcionalmente
por un signo más o un signo menos;
• un símbolo es una letra seguida de cero o más caracteres (excluyendo espacios); y
• una lista es un par de paréntesis que abren y cierran, con cero o más expresiones en medio.
Una regla lexicográfica esta determinada por el léxico de un lenguaje. Un léxico es un conjunto de
símbolos que se pueden usar en un lenguaje. Estos símbolos o elementos básicos del lenguaje, podránser de los siguientes:
• Identificadores: nombres simbólicos que se darán a ciertos elementos de
programación (p.e. nombres de variables, tipos, módulos, etc.).
• Constantes: datos que no cambiarán su valor a lo largo del programa.
• Operadores: símbolos que representarán operaciones entre variables y
constantes.
• Instrucciones: símbolos especiales que representarán estructuras de
procesamiento, y de definición de elementos de programación.
• Comentarios: texto que se usará para documentar los programas
3- Semántica
La semántica de un lenguaje de programación está relacionada con el significado de los programas,
describe el significado de los símbolos, palabras y frases del lenguaje informático.
Tipos de semántica:
• Semántica estática
• Semántica dinámica
La “semántica estática” de un lenguaje no tiene nada que ver con el significado de los programas, más
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 análisis requerido para comprobar estas especificaciones
se puede realizar en tiempo de compilación. Como, por ejemplo, un problema de compatibilidad. A
estas reglas se denominan reglas semánticas estáticas.
La semántica dinámica es la que describe el efecto de ejecutar las diferentes construcciones en el
lenguaje de programación. Su efecto se describe durante la ejecución del programa. Los programas solo
se pueden ejecutar si son correctos para la sintaxis y para la semántica estática
Existen diferentes soluciones formales:
• Semántica axiomática. La notación empleada es el “cálculo de predicados”.
7/27/2019 PracticoN1-Pereyragabriel
http://slidepdf.com/reader/full/practicon1-pereyragabriel 13/16
Se desarrolló para probar la corrección de los programas. Ve al programa
como una máquina de estados.
• Semántica denotacional: Se basa en la teoría de funciones recursivas.
Se diferencia de la axiomática por la forma que describe los estados,
la axiomática lo describe a través de los predicados, la denotacional
a través de funciones.
• Semántica operacional: El significado de un programa se describe mediante otro
lenguaje de bajo nivel implementado sobre una máquina
abstracta. Los cambios que se producen en el estado de la máquina
cuando se ejecuta una sentencia del lenguaje de programación definen
su significado. Es un método informal
4- Compilar un programa
Significa traducir las instrucciones escritas en un determinado lenguaje de programación a lenguaje
máquina. Un programa fuente se puede dividir en módulos almacenados en archivos distintos. La tarea
de reunir el programa fuente a menudo se confía a un programa distinto, llamado preprocesador . El
preprocesador también puede expandir abreviaturas, llamadas a macros, a proposiciones del lenguajefuente.
Normalmente la creación de un conlleva dos pasos. El primer paso se llama compilación y traduce el
código fuente a código en bajo nivel (normalmente en código objeto, no directamente a lenguaje
máquina). El segundo paso se llama enlazado en el cual se enlaza el código de bajo nivel generado de
todos los ficheros y subprogramas que se han mandado compilar y se añade el código 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 código objeto a código máquina
5 - Etapas del proceso
El proceso de traducción se compone internamente de varias etapas o fases
7/27/2019 PracticoN1-Pereyragabriel
http://slidepdf.com/reader/full/practicon1-pereyragabriel 14/16
1- Análisis léxico :El análisis léxico constituye la primera fase, aquí se lee el
programa fuente de izquierda a derecha y se agrupa en componentes léxicos
(tokens), que son secuencias de caracteres que tienen un significado. Un
analizador léxico también es la parte del traductor
2- Análisis sintáctico En esta fase los caracteres o componentes léxicos seagrupan jerárquicamente en frases gramaticales que el compilador utiliza para
sintetizar la salida. Se comprueba si lo obtenido de la fase anterior es
sintácticamente correcto
3- Análisis semántico La fase de análisis semántico revisa el programa fuente
para tratar de encontrar errores semánticos y reúne la información sobre los
tipos para la fase posterior de generación de código.
4- Generación de código intermedio Después de los análisis sintáctico y
semántico, algunos compiladores generan una representación intermedia
explícita del programa fuente. Se puede considerar esta representación
intermedia como un programa para una máquina abstracta.
5- Optimización de código La fase de optimización de código consiste en
mejorar el código intermedio, de modo que resulte un código máquina más
rápido de ejecutar.
6- Generación de Ejecutable : Se genera el archivo ejecutable directamente en
lenguaje maquina con instrucciones solo entendible para la computadora.
6- El análisis semántico interviene en la etapa 3 de la compilación, luego del análisis léxico y sintáctico. La
fase de análisis semántico revisa el programa fuente para tratar de encontrar errores semánticos y reúne
la información sobre los tipos para la fase posterior de generación de código. En ella se utiliza laestructura jerárquica determinada por la fase de análisis sintáctico para identificar los operadores y
operandos de expresiones y proposiciones.
Un componente importante del análisis semántico es la verificación de tipos. Aquí, el compilador
verifica si cada operador tiene operandos permitidos por la especificación del lenguaje fuente. Por
ejemplo, las definiciones de muchos lenguajes de programación requieren que el compilador indique un
error cada vez que se use un número real como índice de una matriz. Sin embargo, la especificación del
lenguaje puede imponer restricciones a los operandos, por ejemplo, cuando un operador aritmético
binario se aplica a un número entero y a un número real. Revisa que los arreglos tengan definido el
tamaño 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 máquina).
• Intérprete: Analiza el programa fuente y lo ejecuta directamente, sin generar ningún código
equivalente.
Intérpretes y compiladores tienen diversas ventajas e inconvenientes:
o Un intérprete facilita la búsqueda de errores, pues la ejecución de un programa puedeinterrumpirse en cualquier momento para estudiar el entorno (valores de las variables,
7/27/2019 PracticoN1-Pereyragabriel
http://slidepdf.com/reader/full/practicon1-pereyragabriel 15/16
etc.). Además, el programa puede modificarse sobre la marcha, sin necesidad de volver
a comenzar la ejecución.
o Un compilador suele generar programas más rápidos y eficientes, ya que el análisis del
lenguaje fuente se hace una sola vez, durante la generación del programa equivalente.
En cambio, un intérprete se ve obligado generalmente a analizar cada instrucción tantas
veces como se ejecute (incluso miles o millones de veces).
o Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo
ejecutar código 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 intérprete, 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. Problemade tipos
public int mul (float a, int b) //Sintacticamente correcta{ return a*b;} //Semanticamente incorrecto. Problemade 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
Function suma(a,b){ ); //Sintacticamente incorrecta.
7/27/2019 PracticoN1-Pereyragabriel
http://slidepdf.com/reader/full/practicon1-pereyragabriel 16/16
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 multiplicación 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-y-
evolucion.html
http://es.wikipedia.org/wiki/BCPL
http://java.ciberaula.com/articulo/tecnologia_java/
http://www.buenastareas.com/ensayos/Sintaxis-Lenguajes-De-Programacion/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