Está en la página 1de 4

Cap tulo

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

CAP ITULO 1. INTRODUCCION

1.1.3. Sem antica


La sem antica de un lenguaje dene la forma en que se le asocia signicado (sentido) a las frases construidas mediante la gram atica. En espa nol la sem antica no es f acil de denir ya que intervienen elementos muy elaborados que han sido construidos de manera natural a trav es del tiempo (cada objeto/idea conocido(a) por el ser humano esta asociado(a) con una palabra). El sentido de una frase o una oraci on en espa nol 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 dif cil, para los computadores actuales, trabajar directamente en lenguaje natural.

1.2. Lenguajes de Programaci on


Los computadores hacen exactamente lo que se les dice. En programaci on 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 espa nol es muy ambiguo. Para el computador no hay puntos intermedios, s olo valores de verdad, ceros y unos (verdadero o falso). Desde este punto, la l ogica nos permite entender los lenguajes de programaci on. Los lenguajes de programaci on 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 hac an casi que en hardware : se requer a que los programas se escribieran cableando ciertas compuertas de la m aquina para determinar que el programa hiciera lo que ten a que hacer. El problema consist a en la forma en la que se cableaban los circuitos. Un error en el cableado en este sentido era dif cil de detectar. Posteriormente se pens o en separar el programa de la parte f sica y as es como llegaron las tarjetas perforadas inspiradas en el invento del telar. Los programas eran representados por huecos en tarjetas. La m aquina realizaba lecturas de aquellos huecos de las tarjetas en un orden espec co, de desordenarse las tarjetas el programa dejar a de funcionar. Posteriormente el hombre construy o m aquinas de c alculo para tareas muy espec cas como investigaci on y militares, usando dispositivos electro-mec anicos como rel es y tubos de vac o. Se programaba revisando las salidas de los estados de los tubos (encendido o1y apagado o 0). A estos computadores sol an acercarseles insectos en busca de calor da nando los tubos. De all proviene el termino bug (bicho de programaci on) conocido actualmente en programaci on como un defecto en el programa. Estos computadores dieron paso a los elementos transistorizados. Las m aquinas de c omputo de esta generaci on ten an pocas facilidades de programaci on. La comunicaci on se establec a en lenguaje de m aquina (lenguaje binario: ceros y unos). Estos aparatos eran grandes y costosos. Lenguaje de m aquina: Es el u nico lenguaje que entiende el hardware (m aquina) y usa exclusivamente el sistema binario (ceros y unos). Este lenguaje es espec co para cada hardware (procesador, dispositivos, etc.). El programa (tanto c odigos de instrucci on como datos) es almacenado en memoria. La estructura de una instrucci on en lenguaje m aquina es la siguiente:

1.2. LENGUAJES DE PROGRAMACION

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.

CAP ITULO 1. INTRODUCCION

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.

También podría gustarte