You are on page 1of 7

Caractersticas de los lenguajes de programacin Las computadoras calculan elctricamente por medio de pulsos de corriente y voltajes que representan

formas de comunicacin por dems ajenas al lenguaje humanos. As pues, el medio que permite entablar la comunicacin con las mquinas se conoce como lenguaje de programacin. An con su corta duracin, la historia de la computacin electrnica ha producido varios cientos de lenguajes de programacin ampliamente reconocidos y utilizados. Al principio se acercaban mucho al lenguaje propio de las computadoras (ceros y unos), pero se han ido transformando para acercarse ms a las lenguas humanas como el ingls o bien a formas grficas ms expresivas y sintticas. Entre ms cercano a la computadora es un lenguaje se le denomina de bajo nivel, lo contrario es de alto nivel. Existen cinco generaciones de lenguajes de programacin, en donde cada uno mejora a sus predecesores en cuanto a las facilidades que otorga al programador. 1. Lenguaje mquina. 2. Lenguajes ensambladores. 3. Lenguajes de alto nivel. 4. Lenguajes de muy alto nivel. 5. Lenguajes naturales.

1. Lenguaje mquina. 2. Lenguajes ensambladores. 3. Lenguajes de alto nivel. 4. Lenguajes de muy alto nivel. 5. Lenguajes naturales. Lenguaje Mquina El lenguaje mquina, el de ms bajo nivel, representa datos e instrucciones con dgitos binarios (0s y 1s), y el elemento ejecutor es la circuitera misma de la computadora. Al principio de la comunicacin electrnica cada mquina tena su propio lenguaje, y los programadores tenan sistemas rudimentarios para combinar nmeros que representaran instrucciones simples como SUMAR y COMPARAR. Los mtodos de programacin en este lenguaje son tediosos e imprcticos, por lo que la comunidad del cmputo se movi rpidamente para desarrollar lenguajes ensambladores. Lenguajes Ensambladores En su momento, los lenguajes ensambladores constituyeron un gran avance; en lugar de usar ceros y unos se utilizan cdigos mnemnicos (para ayudar a la memoria) o abreviatura fciles de recordar para las instrucciones: ADD (sumar), STO (almacenar), C (comparar), etctera. Para usar un lenguaje ensamblador se requiere un lenguaje traductor que convierta los programas en ensamblador a lenguaje mquina que es el nico que comprende la computadora. Este traductor se llama programa ensamblador. Aun cuando los ensambladores representaron un paso adelante, todava tenan muchos inconvenientes, por ejemplo, que son detallados en extremo y su programacin es tediosa, repetitiva y propensa al error.

Jorge Jair Vzquez Romero.

Lenguaje de alto nivel. La investigacin sobre los lenguajes de alto nivel se inicia en 1945, con el ingeniero alemn Konrad Zuse, pero hasta el inicio de los 1960 que se generaliza su uso, transformando radicalmente la actividad de la programacin. Estos lenguajes se asemejan ms a la lengua humana, particularmente el ingls, con menos detallados y con menos declaraciones describen tareas ms complejas para la computadora. Como resultado, los programadores logran trabajos de mayor alcance y con menos esfuerzo. Obviamente se requiere de un traductor de las declaraciones simblicas de un lenguaje de alto nivel al lenguaje mquina ejecutable por la computadora, estos traductores se llaman compiladores (el primero se desarroll en 1952). Existen compiladores para cada lenguaje y cada mquina, pero una ventaja de los lenguajes de alto nivel es que se pueden trasladar de una mquina a otra con pocas o nulas modificaciones. Entre los lenguajes de esta generacin se encuentran los de propsito general como BASIC, FORTRAN y COBOL que han sido muy populares. Adems se encuentran Pascal, C y sus derivados.

Lenguaje de muy alto nivel. Los lenguajes de la cuarta generacin, 4GLs, son llamados lenguajes de muy alto nivel. Su definicin es ms complicada que los anteriores. Se trata esencialmente de los lenguajes de programacin taquigrficos; una operacin que requiere de cientos de lneas en un lenguaje de tercera generacin, como COBOL, requiere tpicamente de unas cinco a diez lneas en uno de cuarta generacin. Entre las caractersticas de estos lenguajes est el que nos son de procedimientos. En los lenguajes de procedimientos se di ce con detalle a la computadora la tarea a realizar. En los declarativos se define solamente lo que se haga. Por ejemplo, producir un reporte del tratamiento realizado a un conjunto de datos. Enfatizan el qu en lugar del cmo. Obviamente los que elaboran lenguajes declarativos han hecho trabajo que para muchos de los usuarios mejoran la productividad, porque los programas son ms fciles de escribir y actualizar, pueden ser usados con un mnimo de entrenamiento y ahorran al usuario la necesidad de conocer a fondo el hardware y la programacin. Entre los inconvenientes de estos lenguajes se encuentra que no han uso eficiente de los recursos computacionales. Lenguaje Natural

En la quinta generacin se encuentran los llamados Lenguajes naturales, por su acercamiento a la lengua escrita. El uso de un lenguaje natural con una base de conocimientos produce un sistema basado en el conocimiento. Una clase de estos sistemas son los Sistemas expertos, que son base de la Inteligencia Artificial. (IA).

Jorge Jair Vzquez Romero.

El comportamiento de un programa depende del tipo de lenguaje usado para escribirlo... En cualquier caso, casi todos los lenguajes de programacin se basan en el mismo principio: el programa consiste en un conjunto de comandos que el equipo debe ejecutar. El equipo ejecuta los comandos a medida que va leyendo el archivo (de arriba hacia abajo) hasta que alcanza un comando (al que a menudo se hace referencia como un comando ramificado) que ordena al equipo ir a una ubicacin especfica del programa. En cierto modo, se parece a la bsqueda del tesoro, donde el equipo debe seguir las pistas y ejecutar los comandos hasta alcanzar el final del programa y detenerse. El concepto de variables Las variables se utilizan en la mayora de los lenguajes, donde un nombre se asocia a un contenido. Por ejemplo, podemos llamar a una variable "maniqu" y asignarle el valor 8. Tipos de datos Algunos lenguajes permiten asociar cualquier tipo de dato con una variable (ya sea un nmero completo o un carcter), dicho lenguaje se denomina lenguaje sin tipos. Como puede verse en el captulo representacin de datos, el tipo de datos establece el nmero de bytes en que el dato est codificado, es decir, la cantidad de memoria que este dato ocupa, as como el formato en el que est representado. Por esta razn, los lenguajes evolucionados (C, Java) son lenguajes con tipo, lo que significa que una variable no se asocia solamente con un nombre sino tambin con un tipo de datos que debe especificarse cuando se declara la variable; es decir, cuando el nombre de la variable se escribe por primera vez, debe especificar en el compilador el tipo de datos que esta variable contendr (la manera de declarar la variable depender del lenguaje utilizado). Sintaxis Los lenguajes de programacin requieren una sintaxis estricta, por lo tanto, no es posible escribir de la manera que se desea. As, algunos lenguajes distinguen entre minsculas y maysculas, lo que significa que un nombre escrito en minscula no es considerado el equivalente del mismo nombre escrito en mayscula. En este caso, la variable "Maniqu" sera diferente a la variable "maniqu".

Jorge Jair Vzquez Romero.

Los nombres de variables requieren comnmente una longitud (dependiendo del lenguaje) y de un determinado conjunto de caracteres.

mxima

De esta forma, un espacio (" ") se considera un tipo de carcter diferente, llamado un carcter especial. Por lo tanto, no es muy comn que un lenguaje permita el uso de caracteres especiales en nombres de variables. Palabras reservadas En la mayora de los lenguajes, existe un puado de palabras que no deben utilizarse como variables de nombres, llamadas palabras reservadas. Se especifican en el captulo correspondiente al lenguaje especfico. Constantes Las constantes son datos cuyo valor no puede modificarse. Por lo general, se definen al comienzo del programa. El valor de la constante puede ser de cualquier tipo permitido por el lenguaje de programacin. Comentarios Al escribir un programa es til poder agregar lneas de texto a las que el compilador no considera como cdigos. Estas lneas de texto generalmente estn precedidas (o rodeadas) por comandos especiales que ordenan al compilador omitirlas. Los comentarios son tiles para aclarar cmo est escrito el programa, explicando las partes del cdigo. Los comentarios tambin sirven si otra persona est tratando de comprender cmo funciona el programa leyendo el archivo fuente, o incluso, si la persona que escribi el programa est leyendo el archivo de ori gen nuevamente, varios aos despus de haber escrito el cdigo.

Jorge Jair Vzquez Romero.

Qu es una instruccin? La instruccin es el elemento clave del equipo, ya que permite indicar al procesador la accin que debe realizar. Las instrucciones a realizar se indican en el archivo fuente y el equipo pasa de una instruccin a otra siguiendo las instrucciones que se indican de arriba hacia abajo (ya que la lectura de un archivo se realiza en una secuencia de arriba hacia abajo). Una instruccin se compone, generalmente, de dos elementos: el operador: la accin que el procesador va a realizar el/los operando(s): uno o ms datos en los cuales se realiza la operacin Operador/operando(s) el/los operando(s):

Tipos de operadores: Por lo general, hay dos o tres tipos de operadores: Operadores unitarios: aquellos que admiten un solo operando Operadores binarios: contrariamente a lo que se podra pensar, estos operadores no trabajan en operadores binarios pero admiten dos operandos (binario indica, por lo tanto, la cantidad de operandos utilizados; El signo + indica la presencia de un operador binario) Operadores ternarios: Son operadores que admiten tres operandos (por ejemplo, los operadores condicionales son operadores ternarios) Los operadores tambin pueden dividirse en varias categoras de acuerdo al tipo de operacin que realizan al ejecutarse: operadores aritmticos operadores de comparacin operadores lgicos operadores de bits operadores de asignacin operadores condicionales operadores secuenciales ... Prioridades del operador Por lo general, cada lenguaje tiene precedencia de operadores, para que el equipo sepa cmo evaluar a los operadores cuando varios de ellos se encuentran presentes en una misma expresin.

Jorge Jair Vzquez Romero.

Un compilador es un programa informtico que traduce un programa escrito en un lenguaje de programacin a otro lenguaje de programacin, generando un programa equivalente que la mquina ser capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de mquina, pero tambin puede ser simplemente texto. Este proceso de traduccin se conoce como compilacin. Un compilador es un programa que permite traducir el cdigo fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje de mquina). De esta manera un programador puede disear un programa en un lenguaje mucho ms cercano a cmo piensa un ser humano, para luego compilarlo a un programa ms manejable por una computadora. Partes de un Compilador. La construccin de un compilador involucra la divisin del proceso en una serie de fases que variar con su complejidad. Generalmente estas fases se agrupan en dos tareas: el anlisis del programa fuente y la sntesis del programa objeto. Anlisis: Se trata de la comprobacin de la correccin del programa fuente, e incluye las fases correspondientes al Anlisis Lxico (que consiste en la descomposicin del programa fuente en componentes lxicos), Anlisis Sintctico (agrupacin de los componentes lxicos en frases gramaticales ) y Anlisis Semntico (comprobacin de la validez semntica de las sentencias aceptadas en la fase de Anlisis Sintctico). Sntesis: Su objetivo es la generacin de la salida expresada en el lenguaje objeto y suele estar formado por una o varias combinaciones de fases de Generacin de Cdigo (normalmente se trata de cdigo intermedio o de cdigo objeto) y de Optimizacin de Cdigo (en las que se busca obtener un cdigo lo ms eficiente posible). Alternativamente, las fases descritas para las tareas de anlisis y sntesis se pueden agrupar en Front-end y Back-end: Front-end: es la parte que analiza el cdigo fuente, comprueba su validez, genera el rbol de derivacin y rellena los valores de la tabla de smbolos. Esta parte suele ser independiente de la plataforma o sistema para el cual se vaya a compilar, y est compuesta por las fases comprendidas entre el Anlisis Lxico y la Generacin de Cdigo Intermedio. Back-end: es la parte que genera el cdigo mquina, especfico de una plataforma, a partir de los resultados de la fase de anlisis, realizada por el Front End. Esta divisin permite que el mismo Back End se utilice para generar el cdigo mquina de varios lenguajes de programacin distintos y que el mismo Front End que sirve para analizar el cdigo fuente de un lenguaje de programacin concreto Jorge Jair Vzquez Romero.

sirva para generar cdigo mquina en varias plataformas distintas. Suele incluir la generacin y optimizacin del cdigo dependiente de la mquina. El cdigo que genera el Back End normalmente no se puede ejecutar directamente, sino que necesita ser enlazado por un programa enlazador (linker)

Jorge Jair Vzquez Romero.

You might also like