You are on page 1of 4

Captulo

Introduccin
1.1. Lenguaje
1.1.1. Lxico
El lxico de un lenguaje lo conforman las unidades mnimas con signicado completo. A cada uno de estas unidades mnimas con signicado se le conoce como lexema 1 . Por ejemplo, en el espaol, las palabras y los smbolos de puntuacin (que son usados para formar frases, oraciones y prrafos) conforman el lxico. A tales lexemas se les asocia un signicado preciso en trminos de las frases construidas con ellos.

1.1.2. Gramtica
La gramtica de un lenguaje explica la forma en que se pueden construir frases en el lenguaje a partir del lxico. Usualmente la gramtica se presenta como una coleccin de reglas de reescritura, es decir, reglas que indican como unos smbolos de la gramtica pueden ser reescritos por otros smbolos de la gramtica o por lexemas. La idea es que al nal del proceso de reescritura solo se tengan lexemas. Por ejemplo en espaol una frase se puede reescribir como un sujeto y un predicado, a su vez un sujeto se puede reescribir como un artculo, un sustantivo y un
1 La palabra lexema usada en este libro tiene un signicado similar (pero no igual) a la que se usa en lingstica. En lingstica las palabras mvil y mviles se derivan del mismo lexema (mvil), es decir, son el mismo lexema (por las relaciones semnticas propias del espaol), solamente que tienen diferente gramema (, -es).

CAPTULO 1. INTRODUCCIN

adjetivo, nalmente un sustantivo puede ser reescrito como la palabra perro.

1.1.3. Semntica
La semntica de un lenguaje dene la forma en que se le asocia signicado (sentido) a las frases construidas mediante la gramtica. En espaol la semntica no es fcil de denir ya que intervienen elementos muy elaborados que han sido construidos de manera natural a travs del tiempo (cada objeto/idea conocido(a) por el ser humano esta asociado(a) con una palabra). El sentido de una frase o una oracin en espaol depende mucho del contexto en el que se escribe o dice la frase y del posible conjunto de signicados el cual es muy grande. Este hecho es lo que hace difcil, para los computadores actuales, trabajar directamente en lenguaje natural.

1.2. Lenguajes de Programacin


Los computadores hacen exactamente lo que se les dice. En programacin nosotros tenemos un lenguaje bien denido donde los signicados de las frases son exactas. Esto exige que el programador exprese de forma precisa lo que desea hacer. El lenguaje espaol es muy ambiguo. Para el computador no hay puntos intermedios, slo valores de verdad, ceros y unos (verdadero o falso). Desde este punto, la lgica nos permite entender los lenguajes de programacin. Los lenguajes de programacin son aquellos lenguajes que nos permiten comunicarnos con el computador para ordenarles que hacer. Al principio programar era muy complicado. En el principio los programas se hacan casi que en hardware: se requera que los programas se escribieran cableando ciertas compuertas de la mquina para determinar que el programa hiciera lo que tena que hacer. El problema consista en la forma en la que se cableaban los circuitos. Un error en el cableado en este sentido era difcil de detectar. Posteriormente se pens en separar el programa de la parte fsica y as es como llegaron las tarjetas perforadas inspiradas en el invento del telar. Los programas eran representados por huecos en tarjetas. La mquina realizaba lecturas de aquellos huecos de las tarjetas en un orden especco, de desordenarse las tarjetas el programa dejara de funcionar.

1.2. LENGUAJES DE PROGRAMACIN

Posteriormente el hombre construy mquinas de clculo para tareas muy especcas como investigacin y militares, usando dispositivos electro-mecnicos como rels y tubos de vaco. Se programaba revisando las salidas de los estados de los tubos (encendido 1 y apagado 0). A estos computadores solan acercarseles insectos en busca de calor daando los tubos. De all proviene el termino bug (bicho de programacin) conocido actualmente en programacin como un defecto en el programa. Estos computadores dieron paso a los elementos transistorizados. Las mquinas de cmputo de esta generacin tenan pocas facilidades de programacin. La comunicacin se estableca en lenguaje de mquina (lenguaje binario: ceros y unos). Estos aparatos eran grandes y costosos. Lenguaje de mquina: Es el nico lenguaje que entiende el hardware (mquina) y usa exclusivamente el sistema binario (ceros y unos). Este lenguaje es especco para cada hardware (procesador, dispositivos, etc.). El programa (tanto cdigos de instruccin como datos) es almacenado en memoria. La estructura de una instruccin en lenguaje mquina es la siguiente: CODIGO ARGUMENTO(S) Lenguaje ensamblador: Surgi la necesidad de desarrollar un lenguaje de nivel mayor al de la mquina, y se desarroll una forma de construir un lenguaje intermedio que empleara mnemnicos (palabras cortas escritas con caracteres alfanumricos), para codicar las operaciones. Los datos y/o direcciones son codicados generalmente como nmeros en un sistema hexadecimal. Generalmente es especco (aunque no nico) para cada lenguaje de mquina. La estructura de una instruccin en este lenguaje es la siguiente: MNEMONICO ARGUMENTO(S) Un Ensamblador es un software, generalmente escrito en lenguaje de mquina, que es capaz de traducir de lenguaje ensamblador a lenguaje de mquina. Este lenguaje di el salto fundamental. Dicho salto se da cuando se logra separar el programa de la mquina empleando los conceptos de mquina de Turing y la arquitectura de Von Neumann.

CAPTULO 1. INTRODUCCIN

Almacenando el programa en memoria y empleando el hardware como elemento de control. Esto di origen a los sistemas operativos, logrando que la mquina completa pudiera controlar otro programa. Lenguajes de alto nivel: Posteriormente se plante la idea de generar un lenguaje mas parecido al lenguaje natural y que realizara la compilacin del programa y generara un programa de cdigo de mquina. Lenguajes como Basic empleaban interpretes tomando cada instruccin y traducindola a Ensamblador y de Ensamblador a cdigo de mquina. Se plante la idea de tomar un cdigo y traducirlo completamente a lenguaje de mquina mediante un proceso de compilacin. El lenguaje de programacin C entra en esta categora de lenguajes. Dichos lenguajes estn 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 smbolos aritmticos y relacionales para describir clculos matemticos, y generalmente representan las cantidades numricas 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 especco de una mquina. Los primeros toman todo el programa en lenguaje de alto nivel, lo pasan a lenguaje ensamblador y luego lo ejecutan. Los ltimos toman instruccin por instruccin, 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 cdigo y genera cdigo bytecode que se ejecuta en una mquina virtual especca que conoce las instrucciones de bytecode permitiendo su ejecucin en diferentes sistemas operativos.

You might also like