Está en la página 1de 7

LENGUAJES DE PROGRAMACIN

Lenguaje es el empleo de notaciones, seales y vocales (voz, palabras) para expresar


ideas, comunicarse, y establecer relaciones entre los seres humanos.
Un lenguaje no slo consta de palabras, sino tambin de su pronunciacin y los mtodos
para combinar las palabras en frases y oraciones; los lenguajes se forman mediante
combinaciones de palabras definidas en un diccionario terminolgico previamente
establecido. Las combinaciones posibles deben respetar un conjunto de reglas sintcticas
establecidas, a ello se le conoce con el nombre de Sintaxis. Adems, las palabras deben
tener determinado sentido, deben ser comprendidas por un grupo humano en un contexto
dado, a ello se le denomina Semntica.

I.

TIPOS DE LENGUAJES

Aunque existen muchas clasificaciones, en general se puede distinguir entre dos clases
de lenguajes: los lenguajes naturales (ingls, alemn, espaol, etc.) y los lenguajes
artificiales o formales (matemtico, lgico, computacional, etc.). Tanto el lenguaje natural
como el lenguaje artificial son humanos. El primero es natural porque se aprende (o
adquiere) inconsciente e involuntariamente. Ningn beb decide aprender o no la lengua
que hablan sus padres, y ningn padre sienta a su hijo y le ensea las reglas sintcticas
de su lengua. Las personas hablan y se entienden, pero generalmente no se cuestionan
las reglas que utilizan al hablar. Por otra parte, los lenguajes artificiales s se aprenden de
manera voluntaria y conscientemente. Un ejemplo de lenguaje artificial son los lenguajes
de programacin utilizados para desarrollar programas informticos.

II.

LOS LENGUAJES DE PROGRAMACIN

Un Lenguaje de Programacin es un conjunto de reglas, notaciones, smbolos y/o


caracteres que permiten a un programador poder expresar el procesamiento de datos y
sus estructuras en la computadora. Cada lenguaje posee sus propias sintaxis. Tambin se
puede decir que un programa es un conjunto de rdenes o instrucciones que resuelven un
problema especfico basado en un Lenguaje de Programacin.
Existen varias clasificaciones para los lenguajes de programacin.

II.1.

Clasificacin de los Lenguajes de Programacin

Los programadores escriben instrucciones en diversos lenguajes de programacin. La


computadora puede entender directamente algunos de ellos, pero otros requieren pasos
de traduccin intermedios. Hoy da se utilizan cientos de lenguajes de computadora.
Los Lenguajes de Programacin pueden clasificarse de acuerdo con su uso en:
1. Lenguajes desarrollados para el clculo numrico. Tales como FORTRAN,
Matemtica y Matlab.
2. Lenguajes para sistemas. Como C, C++ y ensamblador.
3. Lenguajes para aplicaciones de Inteligencia Artificial. Tales como Prolog, y
Lisp.
Tambin se pueden clasificar de acuerdo con el tipo de instrucciones de que constan.
En esta clasificacin se tiene al lenguaje mquina, al lenguaje ensamblador y al
lenguaje de alto nivel. Se presenta a continuacin una descripcin de cada uno de ellos.
II.1.1. Lenguaje mquina (Binario)
Una computadora slo puede entender el lenguaje mquina. El lenguaje de mquina
ordena a la computadora realizar sus operaciones fundamentales una por una. Dicho
lenguaje es difcil de usar para las persona porque trabajar con nmeros no es muy
cmodo adems de que estos nmeros estn en formato binario. Cmo es que se
representan las operaciones como nmeros? John Von Neumann desarroll el modelo
que lleva su nombre para esta representacin. Ya se estudi que representar nmeros
usando el sistema binario no es complicado, pero se tena luego el problema de
representar las acciones (o instrucciones) que iba a realizar la computadora tambin en el
sistema binario; pues la memoria, al estar compuesta por bits, solamente permite
almacenar nmeros binarios. La solucin que se tom fue la siguiente: a cada accin que
sea capaz de realizar la computadora, se le asocia un nmero, que corresponde a su
cdigo de operacin (opcode). Por ejemplo, una calculadora programable simple podra
asignar los siguientes opcodes:
1 = SUMA, 2 = RESTA, 3 = MULTIPLICA, 4 = DIVIDE

Supngase entonces que se quiere realizar la operacin 5 * 3 + 2, en la calculadora


descrita arriba. En la memoria de la calculadora se podra representar el programa de la
siguiente forma:
Y en cdigo binario:
53312
101 011 011 001 010
Podemos ver que, con esta representacin, es simple expresar las operaciones de las
que es capaz de realizar el hardware en la memoria. La descripcin y uso de los opcodes
es lo que se llama lenguaje de mquina. El lenguaje mquina es el lenguaje ms primitivo
y depende directamente del hardware.
II.1.2. Lenguajes de bajo nivel (ensamblador)
Para facilitar y agilizar su labor a los programadores, se buscaron nuevos lenguajes.
Cuando abstraemos los opcodes y los sustituimos por una palabra que sea una clave de
su significado, se tiene el concepto de Lenguaje Ensamblador. As, el lenguaje
ensamblador representa las acciones del ordenador mediante pequeas abreviaturas de
palabras en ingls. Podemos entonces definir al Lenguaje Ensamblador de la siguiente
forma:
Lenguaje Ensamblador consiste en asociar a los opcodes palabras clave
que faciliten su uso por parte del programador. No obstante, el lenguaje
ensamblador requiere de muchas instrucciones para realizar simples operaciones.
II.1.3. Lenguajes de alto nivel
Para acelerar an ms el proceso de programacin se desarrollaron los lenguajes de alto
nivel, en los que se puede escribir un slo enunciado para realizar tareas sustanciales.
Los lenguajes de alto nivel permiten a los programadores escribir instrucciones que
asemejan al ingls cotidiano y contiene notaciones matemticas de uso comn. El
concepto de lenguaje de alto nivel naci con el lenguaje FORTRAN (FORMULA
TRANSLATION) que, como su nombre indica, surgi como un intento de traducir frmulas
matemticas al lenguaje ensamblador y por consiguiente al lenguaje de mquina. A partir
de FORTRAN, se han desarrollado innumerables lenguajes que siguen el mismo
concepto: buscar la mayor abstraccin posible y facilitar la vida al programador,

aumentando la productividad. Entre estos lenguajes de alto nivel se encuentra el


lenguaje C++ que servir de base para el desarrollo del curso
II.2.
EJEMPLO DE TIPOS DE LENGUAJES
Lenguaje Mquina
100001010101010
100100101010100
100011100101110
Lenguaje de Nivel Bajo (Ensamblador)
LOAD R1, (B)
LOAD R2, (C)
ADD R1, R2
STORE (A), R1
Lenguajes de Alto Nivel
A = B + C;
METACOMPILADOR

1.

CONCEPTO

Un metacompilador es un compilador de compiladores. Se trata de un programa que


acepta como entrada la descripcin de un lenguaje y produce el compilador de dicho
lenguaje.
Hoy por hoy no existen metacompiladores completos, pero s parciales en los que se
acepta como entrada una gramtica de un lenguaje y se genera un autmata que
reconoce cualquier sentencia del lenguaje. A este autmata podemos aadirle cdigo para
completar el resto del compilador. Ejemplos de metacompiladores son: Lex, YACC, FLex,
Bison, JavaCC, JLex, Cup, PCCTS, MEDISE, etc.
Los metacompiladores se suelen dividir entre los que pueden trabajar con gramticas de
contexto libre y los que trabajan con gramticas regulares. Los primeros se dedican a
reconocer la sintaxis del lenguaje y los segundos trocean los ficheros fuente y lo dividen
en palabras.

PCLex es un metacompilador que genera la parte del compilador destinada a reconocer


las palabras reservadas. PCYACC es otro metacompilador que genera la parte del
compilador que informa sobre si una sentencia del lenguaje es vlida o no. JavaCC es un
metacompilador que ana el reconocimiento de palabras reservadas y la aceptacin o
rechazo de sentencias de un lenguaje. PCLex y PCY ACC generan cdigo C y admiten
descripciones de un lenguaje mediante gramticas formales, mientras que JavaCC
produce cdigo Java y admite descripciones de lenguajes expresadas en notacin BNF
(Backus-Naur Form).

2.

ESTRUCTURA

Descripci
n de un
lenguaje

3.

METACOMPILADOR

Compilador
de dicho
lenguaje

CARACTERSTICAS

a. Acta como un autmata que localizara las expresiones regulares que se le


describa y al reconocer ejecutara el cdigo asociado a esa regla

b. Realiza un anlisis descendente, permitiendo el uso de gramticas ms generales


y a la ves tiene la posibilidad de poder utilizar los atributos en el rbol sintctico
durante el parsing

c. Tiene
para

un
el

procesador
desarrollo

rboles, para

el

sintctico,

lxico

de

anlisis
y

semntico

d.

Descripcin

de

los

elementos
lenguaje,

del
tales

como

los

identificadores,
operadores, smbolos especiales y estructuras especficas.

e. Los parsers generados son capaces de localizar exactamente la ubicacin de los


errores:

Pueden trabajar con gramticas de contexto libre y otras trabajan cn


gramtica regular
Especificaciones lxicas y gramaticales n un solo archivo
Tiene opciones diferentes para personalizar el comportamiento de los
parsers generados
f.

El anlisis del parsing y los pasos de procesamiento de tokens pueden realizarse


por medio de la utilizacin de las opciones :
DEBUG_PARSER
DEBUG_LOOKAHEAD
DEBUG_TOKEN_MANAG
ER
Algunos metacompiladores incluyen unas herramientas que convierten los
archivos de la gramtica en archivos de documentacin

LINCOGRAFIA
http://www.iqcelaya.itc.mx/~vicente/Programacion/Lenguajes.pdf
https://prezi.com/rfoz3hv5dlnc/compilador-de-compiladores/

También podría gustarte