Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducci on
1.1. Lenguaje
Un lenguaje es un conjunto de elementos que permite expresarnos y comunicarnos con otros entes, ya sean personas, animales, computadores, etc. Un lenguaje est a denido por tres elementos, el l exico, la sintaxis y la sem antica.
1.1.1. L exico
El l exico de un lenguaje lo conforman las unidades m nimas con signicado completo. A cada uno de estas unidades m nimas con signicado se le conoce como lexema 1 . Por ejemplo, en el espa nol, las palabras y los s mbolos de puntuaci on (que son usados para formar frases, oraciones y p arrafos) conforman el l exico. A tales lexemas se les asocia un signicado preciso en t erminos de las frases construidas con ellos.
1.1.2. Sintaxis
La sintaxis de un lenguaje explica la forma en que se pueden construir frases en el lenguaje a partir del l exico. Usualmente la sintaxis se presenta como una colecci on de reglas de reescritura que se denen con una gram atica. Estas son reglas que indican como unos s mbolos de la gram atica pueden ser reescritos por otros s mbolos de la gram atica o por lexemas. La idea es que al nal del proceso de reescritura s olo se tengan lexemas. Por ejemplo en espa nol una frase se puede reescribir como un sujeto y un predicado, a su vez un sujeto se puede reescribir como un art culo, un sustantivo y un adjetivo, nalmente un sustantivo puede ser reescrito como la palabra perro.
La palabra lexema usada en este libro tiene un signicado similar (pero no igual) a la que se usa en ling u stica. En ling u stica las palabras m ovil y m oviles se derivan del mismo lexema (m ovil), es decir, son el mismo lexema (por las relaciones sem anticas propias del espa nol), solamente que tienen diferente gramema (, -es ).
1
CODIGO ARGUMENTO(S) 0010 00011010 1010 10111000 0110 11010001 Lenguaje ensamblador: Surgi o la necesidad de desarrollar un lenguaje de nivel mayor al de la m aquina, y se desarroll o una forma de construir un lenguaje intermedio que empleara mnem onicos (palabras cortas escritas con caracteres alfanum ericos), para codicar las operaciones. Los datos y/o direcciones son codicados generalmente como n umeros en un sistema hexadecimal. Generalmente es espec co (aunque no u nico) para cada lenguaje de m aquina. La estructura de una instrucci on en este lenguaje es la siguiente: MNEMONICO ADD MOV SUB MOV SUB ARGUMENTO(S) R1, F4 F4, C2 AX, AX AX, 18D AX, 18D
Un Ensamblador es un software, generalmente escrito en lenguaje de m aquina, que es capaz de traducir de lenguaje ensamblador a lenguaje de m aquina. Este lenguaje dio el salto fundamental. Dicho salto se da cuando se logra separar el programa de la m aquina empleando los conceptos de m aquina de Turing y la arquitectura de Von Neumann. Almacenando el programa en memoria y empleando el hardware como elemento de control. Esto dio origen a los sistemas operativos, logrando que la m aquina completa pudiera controlar otro programa. Lenguajes de alto nivel: Posteriormente se plante o la idea de generar un lenguaje mas parecido al lenguaje natural y que realizara la compilaci on del programa y generara un programa de c odigo de m aquina. Lenguajes como Basic empleaban interpretes tomando cada instrucci on y traduci endola a Ensamblador y de Ensamblador a c odigo de m aquina. Se plante o la idea de tomar un c odigo y traducirlo completamente a lenguaje de m aquina mediante un proceso de compilaci on. El lenguaje de programaci on C entra en esta categor a de lenguajes. Dichos lenguajes est an basados en una estructura gramatical para codicar estructuras de control y/o instrucciones. Cuenta con un conjunto de palabras reservadas (escritas en lenguaje natural). Estos lenguajes permiten el uso de s mbolos aritm eticos y relacionales para describir c alculos matem aticos, y generalmente representan las cantidades num ericas mediante sistema decimal.
Gracias a su estructura gramatical, estos lenguajes permiten al programador olvidar el direccionamiento de memoria (donde cargar datos y/o instrucciones en la memoria), ya que este se realiza mediante el uso de conceptos como el de variable. Los compiladores e interpretes son software capaz de traducir de un lenguaje de alto nivel al lenguaje ensamblador espec co de una m aquina. Los primeros toman todo el programa en lenguaje de alto nivel, lo pasan a lenguaje ensamblador y luego lo ejecutan. Los u ltimos toman instrucci on por instrucci on, la traducen y la van ejecutando. Posteriormente se desarrollaron lenguajes intermedios que tomaran una parte compilada y otra interpretada. Es cuando surgen lenguajes como Java y Python. Java compila su c odigo y genera c odigo bytecode que se ejecuta en una m aquina virtual espec ca que conoce las instrucciones de bytecode permitiendo su ejecuci on en diferentes sistemas operativos.