Sei sulla pagina 1di 4

Captulo

Introduccin
1.1. Lenguaje
1.1.1. Lxico
El lxico de un lenguaje lo conforman las unidades mnimas con significado completo. A cada uno de estas unidades mnimas con significado 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
significado 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 final
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 significado 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, finalmente un sustantivo puede ser reescrito como la palabra


perro.

1.1.3. Semntica
La semntica de un lenguaje define la forma en que se le asocia significado (sentido) a las frases construidas mediante la gramtica. En
espaol la semntica no es fcil de definir 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 significados 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 definido donde los significados 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 especfico, de desordenarse las tarjetas el programa dejara de
funcionar.

1.2. LENGUAJES DE PROGRAMACIN

Posteriormente el hombre construy mquinas de clculo para tareas muy especficas 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 especfico 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 codificar las operaciones. Los datos y/o direcciones son codificados
generalmente como nmeros en un sistema hexadecimal. Generalmente es especfico (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
codificar 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 especfico 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 especfica
que conoce las instrucciones de bytecode permitiendo su ejecucin
en diferentes sistemas operativos.

Potrebbero piacerti anche