Sunteți pe pagina 1din 24

Lenguajes y traductores

Jos Galaviz

En general

Las computadoras trabajan en binario.


Todo es 0s y 1s. Conceptualmente,

claro.

Incluyendo las instrucciones del procesador.


Lenguaje de mquina.

Por qu?

Porque se puede. Porque se debe.

Se puede
Claude Elwood Shannon (1916 - 2001). A Symbolic Analysis of Relay and Switching Circuits. 1937.

Se debe
Porque usar 10 niveles de voltaje, de carga o de corriente para elaborar un circuito

electrnico hace que ste sea...

MUCHO ms complicado. MUCHO menos confiable.

Pero no programamos en binario


As que se necesita un traductor. Ensamblador. Compilador. Intrprete.

Ensamblador
En vez de decir 0101 decimos ADD, Etc. Correspondencia prcticamente 1 a 1 entre instrucciones de lenguaje ensamblador y lenguaje de mquina. El mismo nivel semntico. Traducir no es tan complicado.

Lenguaje de alto nivel...

semntico. O sea que cada instruccin de este tipo de lenguajes corresponde a varias instrucciones de lenguaje de mquina.

Intrprete
Se lee una instruccin completa del programa fuente (en lenguaje de alto nivel). Se traduce a su equivalente en lenguaje de mquina. Se ejecuta. El proceso se repite, instruccin por instruccin hasta que se termine el programa.

Compilador
Se lee todo el programa fuente en lenguaje de alto nivel. Se traduce todo el programa a un lenguaje de menor nivel. Se hacen optimizaciones del cdigo. Se genera una versin del programa, semnticamente equivalente, en lenguaje de mquina. Se hacen optimizaciones dependientes de la arquitectura. Se escribe esta versin como resultado de la compilacin en un archivo ejecutable.

Compilador
Se lee todo el programa fuente en lenguaje de alto nivel. Se traduce todo el programa a un lenguaje de menor nivel. Se hacen optimizaciones del cdigo. Se genera una versin del programa, semnticamente equivalente, en lenguaje de mquina. Se hacen optimizaciones dependientes de la arquitectura. Se escribe esta versin como resultado de la compilacin en un archivo ejecutable.

Tpicamente

Cdigo en C

Compilador Compilacin

Ejecutable

Java
1991 James Gosling, Mike Sheridan, Patrick Naughton. Oak TV interactiva Sun Microsystems 1995 Java 1.0 WORA (Write Once Run Anywhere) Applets Web

Eleccin

Orientado a Objetos. Bien diseado. Simple (en el contexto de OO). Transportable. Popular (i.e. til).

Es popular
1er o 2o lugar en popularidad. TIOBE. http://www.tiobe.com/index. php/content/paperinfo/tpci/index.html TLPI. http://lang-index.sourceforge. net/

Principios
Orientado a objetos. Robusto (siempre funciona igual sin depender de la arquitectura, no funciona aqu y se rompe all). Seguro (es difcil que el programador deje huecos de seguridad en el cdigo que puedan ser aprovechados) Porttil y sin dependencias de la arquitectura. Interpretado Maneja concurrencia

Funcionamiento
Cdigo en Java

Compilador

Bytecode

Compilacin (javac)

Bytecode

JVM

Ejecucin (java)

Tipos de datos primitivos


byte short int long float double char boolean

Tipos de datos primitivos


Tipo byte short int long float double char boolean Tamao (bytes) 1 2 4 8 4 8 2 1 Min -128 -32768 -2147483648 Max 127 32767 2147483647

-92233720 92233720 36854775808 36854775807 1.4E-45 2.2E-308 0 false 3.4E+38 1.79E308 65535 true

Operadores
= Asignacin

Binarios + * / % Suma Resta Multiplicacin Divisin Resduo

Unarios
+ ++ -! Positivo Negativo Incremento Decremento Inversin booleana (negacin)

De comparacin
== != > >= < <= Igual? distinto? mayor que? mayor o igual que? menor que? menor o igual que?

Operadores lgicos
&& Conjuncin Y || Disyuncin ?: Si entonces instanceof Verifica si un objeto es instancia de una clase en particular.

Operadores bit a bit


~ << >> >>> & ^ | Complemento Desplazamiento izq Desplazam der con signo Desplazam der sin signo AND (Y) OR () Disyuncin exclusiva (XOR)

S-ar putea să vă placă și