Вы находитесь на странице: 1из 5

Universidad Nacional Experimental De Guayana

Carrera: Ingeniería Informática


Asignatura: Introducción a la Informática

Integrante: Liliana Carvajal


Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el
comportamiento de una máquina, particularmente una computadora. Consiste en un
conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el
significado de sus elementos y expresiones.
El analizador léxico:

Lee la secuencia de caracteres de izquierda a derecha del fichero fuente y los agrupa
en unidades con significado propio (los componentes léxicos): palabras clave,
identificadores, operadores, constantes numéricas, signos de puntuación en como
separadores de sentencias, llaves, paréntesis, etc. Además de eliminación de
comentarios, procesamiento de macros o inclusión de ficheros. La ´ estructura léxica la
modelizaremos mediante expresiones regulares.

El análisis sintáctico:

Determina si la secuencia de componentes léxicos sigue la sintaxis del lenguaje y


obtiene la estructura jerárquica del programa en forma de árbol, donde los nodos son
las construcciones ´ de alto nivel del lenguaje. Se determinan las relaciones
estructurales entre los componentes léxicos. La estructura sintáctica la definiremos ´
mediantes gramáticas independientes del contexto (GIC). ´

El análisis semántico:

Realiza comprobaciones necesarias sobre el arbol sintáctico para el correcto


significado del programa: verificaciones inferencia de tipos en asignaciones y
expresiones, declaración antes de uso (variables, funciones, tipos), correcto uso de
operadores, ámbito ´ de variables, correcta llamada a funciones ... Nos limitaremos al
análisis semántico estático (en tiempo de compilación). Necesidad ´ de hacer uso de la
Tabla de Símbolos, como estructura de datos para almacenar información sobre los
identificadores que van surgiendo ´ a lo largo del programa. El análisis semántico se
suele implementar a mano y se suele asociar a construcciones del lenguaje o un
subárbol. Por eje: para la producción, deberíamos incluir código para hacer la
comprobación de tipos, validez de los operadores para esos operandos, etc. La
semántica la modelizaremos mediante gramáticas de atributos (GIC+atributos que
representan propiedades ´ de las construcciones del lenguaje: por ejemplo: tipo, valor,
etc).

Compilador
Es un programa o una herramienta cuya función es compilar; es decir es aquel que
toma un texto o código fuente escrito en un lenguaje de alto nivel y lo traduce a un
lenguaje compresible para las computadoras

Los intérpretes

se diferencian de los compiladores en que mientras estos traducen un programa desde


su descripción en un lenguaje de programación al código de máquina del sistema, los
intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente,
instrucción por instrucción, y normalmente no guardan el resultado de dicha
traducción.
Clasificación de los Lenguajes de Programación
1. Lenguaje Máquina
2. Lenguajes de Programación de Bajo Nivel
3. Lenguajes de Programación de Alto Nivel
3.1. Según sus diferentes generaciones
3.1.1. Lenguajes de Programación de Primera Generación. Ejemplo: el lenguaje
máquina y el ensamblador.
3.1.2. Lenguajes de Programación de Segunda Generación. Ejemplo: los primeros
lenguajes de programación de alto nivel imperativo (FROTRAN, COBOL).
3.1.3. Lenguajes de Programación de Tercera Generación. Ejemplo: son lenguajes de
programación de alto nivel imperativo, pero mucho más utilizados y vigentes en la
actualidad (ALGOL 8, PL/I, PASCAL, MODULA).
3.1.4. Lenguajes de Programación de Cuarta Generación. Ejemplo: son los usados en
aplicaciones de gestión y manejo de bases de datos (NATURAL, SQL).
3.1.5. Lenguajes de Programación de Quinta Generación. Ejemplo: son los creados
para la inteligencia artificial y para el procesamiento de lenguajes naturales (LISP,
PROLOG).
3.2. Lenguajes de Programación Imperativos. Ejemplos: Cobol, Pascal, C y Ada.
3.3. Lenguajes de Programación Declarativos. Ejemplos: el Lisp y el Prolog
3.4. Lenguajes de Programación Orientados a Objetos. Ejemplos: el Smalltalk y el
C++.
3.5. Lenguajes de Programación Orientados al Problema .
3.6. Lenguajes de Programación Naturales.

Traductor

Es un programa que ejecuta línea a línea las instrucciones cargando el código fuente y
traduciendo las instrucciones a un lenguaje intermedio que puede luego ser ejecutado
y genera un código binario

Generación De Código Intermedio

El proceso de la compilación se desglosa en dos partes: la primera corresponde con


la parte de análisis (léxico, sintáctico y semántico). La segunda corresponde con la
parte de síntesis (generación de código). Este último es la tarea más complicada de un
compilador.

Una representación intermedia es una estructura de datos que representa al programa


fuente durante el proceso de la traducción a código objeto. El árbol de análisis
sintáctico como representación intermedia, junto con la tabla de símbolos que contenía
información sobre los nombres (variables, constantes, tipos y funciones) que
aparecían en el programa fuente.
Generación De Código Objeto

Que por lo general consiste en código de máquina relocalizable o código


ensamblador. Las posiciones de memoria se seleccionan para cada una de las
variables usadas por el programa. Después, cada una de las instrucciones intermedias
se traduce a una secuencia de instrucciones de máquina que ejecuta la misma tarea.
Un aspecto decisivo es la asignación de variables a registros.

El generador de código objeto puede considerarse como la penúltima fase de un


compilador, la cual se encarga de tomar como entrada el código intermedio generado
por el front-end, y producir código objeto de la arquitectura target para luego entrar en
la fase de optimización de código.

Toma como entrada de representación intermedia el programa fuente y


produce como salida un programa objeto equivalente.
Bibliografía

1. https://sites.google.com/site/sedechiapa/home/compiladores-e-interpretes

2. http://cursosyformacion.eu/traductores-de-lenguajes-de-programacion/

3. https://www.mindmeister.com/es/824671760/clasificaci-n-de-los-lenguajes-de-
programaci-n

4. https://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n

5. https://definicion.de/lenguaje-de-programacion/