Este documento describe los conceptos fundamentales de los lenguajes de programación y el proceso de compilación. Explica que los compiladores traducen programas de lenguajes de alto nivel a lenguajes de bajo nivel para su ejecución, pasando por fases como el análisis léxico, sintáctico y semántico. También define conceptos como intérpretes, tokens y tablas de símbolos que son parte integral del proceso de traducción de lenguajes.
Espero que esta información sea de mucha ayuda para los que lo visualicen.
Es un breve concepto de compiladores relacionado a programación en JAVA.
ESPERO QUE SEA DE SU AGRADO:
GRACIAS
Espero que esta información sea de mucha ayuda para los que lo visualicen.
Es un breve concepto de compiladores relacionado a programación en JAVA.
ESPERO QUE SEA DE SU AGRADO:
GRACIAS
libro conabilidad financiera, 5ta edicion.pdfMiriamAquino27
LIBRO DE CONTABILIDAD FINANCIERA, ESTE TE AYUDARA PARA EL AVANCE DE TU CARRERA EN LA CONTABILIDAD FINANCIERA.
SI ERES INGENIERO EN GESTION ESTE LIBRO TE AYUDARA A COMPRENDER MEJOR EL FUNCIONAMIENTO DE LA CONTABLIDAD FINANCIERA, EN AREAS ADMINISTRATIVAS ENLA CARREARA DE INGENERIA EN GESTION EMPRESARIAL, ESTE LIBRO FUE UTILIZADO PARA ALUMNOS DE SEGUNDO SEMESTRE
1º Caso Practico Lubricacion Rodamiento Motor 10CVCarlosAroeira1
Caso pratico análise analise de vibrações em rolamento de HVAC para resolver problema de lubrificação apresentado durante a 1ª reuniao do Vibration Institute em Lisboa em 24 de maio de 2024
Criterios de la primera y segunda derivadaYoverOlivares
Criterios de la primera derivada.
Criterios de la segunda derivada.
Función creciente y decreciente.
Puntos máximos y mínimos.
Puntos de inflexión.
3 Ejemplos para graficar funciones utilizando los criterios de la primera y segunda derivada.
3. This material has been prepared by Richard E. Aguilar P.
Reglas Básicas
• Prestar atención al expositor.
• La participación es esencial.
• No copiar en las prácticas y exámenes.
4. This material has been prepared by Richard E. Aguilar P.
Elección del Delegado
5. This material has been prepared by Richard E. Aguilar P.
Acerca del Curso
Es un curso teórico-práctico orientado a profundizar en el
estudiante los conceptos relacionados a la teoría de lenguajes
de programación.
• Lenguajes regulares.
• Autómatas.
• Definición formal de una gramática.
6. This material has been prepared by Richard E. Aguilar P.
Contenido de la Sesión
• Conceptos.
• Traductores.
• Interpretes.
• Proceso de traducción.
7.
8. This material has been prepared by Richard E. Aguilar P.
Logro
Al finalizar la sesión el alumno comprende qué son los
compiladores, conoce sus funciones, así como el proceso de
traducción.
9.
10. This material has been prepared by Richard E. Aguilar P.
Lenguajes de programación
Primera generación – Lenguaje máquina:
• Empieza en los años 1940 – 1950. Todas las instrucciones y mandatos
se escribían valiéndose de una cadena de dígitos en el sistema
binario {0, 1}. Aún en la actualidad es el único lenguaje interno que
entiende la computadora
• Ejemplo:
11000111 00000110 0000000000000000 0000000000000010
• Representa la instrucción mover el número 2 a la posición de
memoria 0000000000000000.
11. This material has been prepared by Richard E. Aguilar P.
Lenguajes de programación
Segunda generación – Lenguaje ensamblador:
• Fines de los 50. No utiliza código binario sino un conjunto de símbolos
fáciles de reconocer, conocidos como mnemotécnicos. Aún ahora
se utiliza código de este tipo cuando se busca un nivel máximo de
eficiencia en la ejecución.
• Ejemplo:
MOV X, 2
• Representa la instrucción mover el número 2 a la posición X
(suponiendo que la posición de memoria de X es 0000)
12. This material has been prepared by Richard E. Aguilar P.
Lenguajes de programación
Tercera generación – Lenguaje de alto nivel:
• En los años 60. Sustituyen las instrucciones simbólicas por códigos
independientes de la máquina, similares al lenguaje humano o al de
las matemáticas.
• Ejemplo:
X = 2
• Representa la instrucción mover el número 2 a la posición en la que
se encuentra la variable X (suponiendo que la posición de memoria
de X es 0000)
13. This material has been prepared by Richard E. Aguilar P.
Lenguajes de programación
Cuarta generación:
• Se caracteriza en que pone énfasis en especificar que es lo que se
debe hacer, en vez de como ejecutar una tarea. Permiten construir
aplicaciones sencillas combinando piezas prefabricadas.
• No operan por procedimientos, por lo que permiten a los usuarios el
centrarse en lo que hay que hacer y no en como hacerlo.
• Al hacerse cargo de muchos de los detalles de como hacer las
cosas, incrementan la productividad.
14. This material has been prepared by Richard E. Aguilar P.
El compilador
• En su definición más genérica es un programa que toma como entrada
un texto de un programa escrito en cierto lenguaje y produce como
salida el texto de un programa en otro lenguaje, a la vez que preserva
el significado del texto original.
• Es un programa (software) que permite traducir un programa escrito en
un lenguaje de alto nivel a otro lenguaje de nivel inferior (lenguaje
máquina o lenguaje ensamblador)
• Esto permite al programador el utilizar un lenguaje mucho más cercano
al lenguaje natural y luego compilar ese programa para que pueda ser
ejecutado por una computadora.
15. This material has been prepared by Richard E. Aguilar P.
El compilador
16. This material has been prepared by Richard E. Aguilar P.
El interprete
• Es un programa (software) traductor de lenguaje, como un compilador,
pero difiere de este en que ejecuta el programa fuente
inmediatamente, en vez de generar un código objeto que se ejecuta
después de que se completa la traducción.
• En general, la principal desventaja de los interpretes, es que cuando un
programa es interpretado, suele ejecutarse más lento que si el mismo
programa estuviese compilado.
• Los interpretes comparten muchas de sus operaciones con los
compiladores,
17. This material has been prepared by Richard E. Aguilar P.
Características del compilador
Generalmente un compilador se divide en dos partes:
• Front End: es la parte que analiza el código fuente, comprueba su
validez, genera el árbol de derivación y rellena los valores de la Tabla
de Símbolos. Esta parte puede ser independiente de la plataforma o
del sistema operativo para el que funcionará.
• Back End: parte en el que se genera el código máquina exclusivo para
una determinada plataforma a partir de lo analizado en el Front End.
18. This material has been prepared by Richard E. Aguilar P.
Fases de un compilador
El compilador pasa por las siguientes fases:
• Analizador léxico
• Analizador sintáctico
• Analizador semántico
• Optimizador de código fuente
• Generador de código
• Optimizador de código objetivo
La administración de la Tabla de Literales, la Tabla de Símbolos y el
manejo de errores interacciona con las 6 fases, listadas líneas arriba.
19. This material has been prepared by Richard E. Aguilar P.
Fases de un compilador
Analizador
Léxico
Analizador
Sintáctico
Analizador
Semántico
Optimizador de
Código Fuente
Generador de
Código
Optimizador de
Código Objetivo
Tabla de
Literales
Tabla de
Símbolos
Manejador de
Errores
20. This material has been prepared by Richard E. Aguilar P.
El proceso de Traducción
Esta constituido por las fases anteriormente mencionadas.
• Analizador léxico, rastreador o scanner: esta fase efectúa la lectura
real del programa fuente, el cual generalmente esta en la forma de un
flujo de caracteres.
• El rastreador realiza lo que se conoce como el análisis léxico: recolecta
secuencias de caracteres en unidades significativas denominadas
tokens, las cuales son como las palabras de un lenguaje natural.
21. This material has been prepared by Richard E. Aguilar P.
El proceso de Traducción
• Analizador sintáctico o parser: recibe el código fuente en la forma de
tokens proveniente del analizador léxico y realiza el análisis sintáctico
que determina la estructura del programa.
• El análisis sintáctico determina los elementos estructurales del programa
y sus relaciones. Los resultados del análisis sintáctico por lo regular se
representa como un árbol de análisis gramatical o un árbol sintáctico.
22. This material has been prepared by Richard E. Aguilar P.
El proceso de Traducción
• Analizador semántico: la semántica de un programa es su “significado”
en contra posición a su sintaxis o estructura.
• La semántica de un programa determina su comportamiento durante
el tiempo de ejecución, pero la mayoría de los lenguajes de
programación tienen características que se pueden determinar antes
de la ejecución e incluso no se pueden expresar de manera adecuada
como sintaxis y analizarse mediante el analizador sintáctico. Se hace
referencia a tales características como semántica estática y el análisis
de tal semántica es precisamente la tarea del analizador semántico.
23. This material has been prepared by Richard E. Aguilar P.
El proceso de Traducción
• Optimizador de código fuente: los compiladores a menudo incluyen
varias etapas para el mejoramiento u optimización del código. El punto
más anticipado en el que la mayoría de la etapas de automatización
se pueden realizar es precisamente después del análisis semántico.
• Generador de código: toma el código intermedio y genera el código
para la máquina objetivo. Es en esta fase de la compilación en la que
las propiedades de la máquina objetivo se convierten en el factor
principal. No solo es necesario emplear instrucciones que existan en la
máquina objetivo sino que, las decisiones respecto a la representación
de los datos desempeñaran ahora también un papel principal.
24. This material has been prepared by Richard E. Aguilar P.
El proceso de Traducción
• Optimizador de código objetivo: en esta fase el compilador intenta
mejorar el código objetivo generado por el generador de código.
Dichas mejoras incluyen la selección de modos de direccionamiento
para mejorar el rendimiento, reemplazando las instrucciones lentas por
otras rápidas y eliminando las operaciones redundantes o innecesarias.
25. This material has been prepared by Richard E. Aguilar P.
Análisis Léxico
• Tiene la tarea de leer el programa fuente como un archivo de
caracteres y dividirlo en tokens.
• Los tokens son como las palabras en lenguaje natural, cada token es
una secuencia de caracteres que representa una unidad de
información en el programa fuente.
• Cada token representa cierto patrón de caracteres que el analizador
léxico reconoce.
26. This material has been prepared by Richard E. Aguilar P.
Análisis Léxico
• Los tokens caen en diversas categorías: palabras reservadas,
identificadores, símbolo especiales, etc.
• Los tokens como entidades lógicas se deben distinguir claramente de
las cadenas de caracteres que representan. Para hacer clara la
distinción, la cadena de caracteres representada por un token se
denomina su lexema o valor de cadena.
• De acuerdo a lo anterior algunos tokens pueden tener solo un lexema
mientras que otros pueden tener infinitos lexemas.
30. This material has been prepared by Richard E. Aguilar P.
Resumiendo
• Los compiladores traducen el texto de un programa escrito
en un determinado lenguaje de programación a otro
lenguaje que puede ser ejecutado con una computadora.
• Debido a la existencia de los compiladores, el programador
puede utilizar un lenguaje cercano al lenguaje natural
durante el proceso de programación, sin tener que
preocuparse por los detalles de implementación de dicho
programa para su ejecución en un determinado ambiente
computacional.