PracticoN1-Pereyragabriel

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. Primer os usos experimentales de compi lador es, constituye la repre sentac ión más direc ta del códig o máquin a para cad a arquite ctura leg ible por un pro gramad or. Fue util izado al comi enzo 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 r ealiza en cintas magnéticas, memorias de nucleo, circuito de trasnistores. Son lenguajes de alto nivel utilizados en el ámbito científico Los lenguajes d e alto n ivel son no rmalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés. Se incluyeron los compiladores 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 (COnfe rence on DAt a SYs tems Lan gua ges ), pat roc ina do por el Dep art amento de Def ensa de Est ado s Uni dos , a fin de dis pon er de un len gua je uni ver sal par a aplicaciones comerciales, como expresa su nombre (COmmnon Business Oriented Language). Sus car act erí stic as más des tac abl es son las siguie nte s: se ase mej a al len gua je natur al (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 p rincipiantes un lenguaje fácil de aprender, como se indica en su nomb re, 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 tradu cir. 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 natura l (inglés), auto docu mentación, o frecen grandes facilidades en el manejo de archivos como en la edición de informes

Transcript of PracticoN1-Pereyragabriel

Page 1: 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

Page 2: PracticoN1-Pereyragabriel

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

Page 3: PracticoN1-Pereyragabriel

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.

Page 4: PracticoN1-Pereyragabriel

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;}

Page 5: PracticoN1-Pereyragabriel

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

Page 6: PracticoN1-Pereyragabriel

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);

Page 7: PracticoN1-Pereyragabriel

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)’>

Page 8: PracticoN1-Pereyragabriel

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.

Page 9: PracticoN1-Pereyragabriel

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

Page 10: PracticoN1-Pereyragabriel

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>

Page 11: PracticoN1-Pereyragabriel

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

Page 12: PracticoN1-Pereyragabriel

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”.

Page 13: PracticoN1-Pereyragabriel

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

Page 14: PracticoN1-Pereyragabriel

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,

Page 15: PracticoN1-Pereyragabriel

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.

Page 16: PracticoN1-Pereyragabriel

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