Please enable JavaScript.
Coggle requires JavaScript to display documents.
Lectura Capitulo 1 image, image - Coggle Diagram
Lectura
Capitulo 1
¿Por qué estudiar los compiladores?
Es que los algoritmos
relacionados con los compiladores
tienen
relevancia en áreas de aplicación
Proporciona un área de aplicación práctica
para muchas estructuras de datos
algoritmos fundamentales,
permite la construcción de una pieza de software a gran escala e intrínsecamente modular.
Lenguajes de alto nivel
El uso extensivo de los lenguajes de alto nivel impulsó el rápido desarrollo
Grandes equipos desarrollaron compiladores para estos lenguajes
Los lenguajes de alto nivel pueden ofrecer esa abstracción.
Ventajas
La resolución de problemas es más rápida.
Suelen ser más fáciles de leer, entender y de mantener.
Son más fáciles de aprender.
Pueden ofrecer portabilidad de software.
Se estructurarse más fácil para reflejar la estructura del problema original.
La comprobación en tiempo de compilación elimina errores en una fase temprana.
Desventajas
El programa puede necesitar realizar algunas operaciones de bajo nivel.
El uso de lenguajes de bajo nivel se justifica a menudo por la eficiencia
El desarrollo de los lenguajes de alto nivel se aceleró a partir de los años cincuenta.
Acceso al hardware
Tareas específicas del hardware
Acceso a su entorno.
Introducir datos del usuario
Puede necesitar resultados de salida
Crear un archivo
Hace convencionalmente una
biblioteca que actúa como interfaz
Entre el programa y el sistema operativo y/o el hardware.
Algunos lenguajes de programación ofrecen una solución
Al admitir código
ensamblador en línea.
Este código es emitido sin cambios por el compilador, proporcionando
Al programa de lenguaje de alto nivel acceso directo al hardware.
Eficiencia
**
Pueden ser cálculos a gran escala que requieran días
Incluso cálculos realmente cortos con graves limitaciones de tiempo real.
Suele estar relacionada con la minimización del tiempo de cálculo.
Pero otras restricciones como
El uso de la memoria o el consumo de energía
Pueden ser más importantes.
Al desarrollar software, una regla es que
No es necesario
optimizar si el código ya es lo suficientemente rápido.
Implementación del lenguaje de alto nive
l
Del proceso de implementación del lenguaje sugiere que
Se requiere algún tipo de programa traductor
Para transformar el programa
de lenguaje de alto lenguaje de alto nivel
En un programa de código máquina semánticamente
equivalente
Que pueda ejecutarse en la máquina de destino.
Compiladores
Es un programa que traduce de un lenguaje fuente a un lenguaje destino.
Implementado en algún lenguaje de implementación.
Complejidad del compilado
r
Hay colaboración vitaleles como las de el compilador.
El diseñador del lenguaje y el y el arquitecto de hardware
La implementación del lenguaje no se detiene en el compilador.
Es necesario el apoyo
de las colecciones de rutinas de biblioteca,
Esta complejidad requiere un enfoque estricto
Diseño en la estructuración
del proyecto de construcción
del compilador.
Intérpretes
Proceso
de dos fases.
no es necesaria la implementación compleja de la generación de código.
El primer problema es el rendimiento.
El segundo problema se refiere a la necesidad de la presencia de un intérprete
Todas las implementaciones de lenguajes de programación son:
En cierto sentido,
interpretadas.
Con la interpretación del código fuente
Con la interpretación de código intermedio,
Con el enfoque tradicional de compilación
Presente y futuro
La calidad del código generado por muchos de los compiladores actuales
es sorprendentemente buena, mejor que la generada por...
un programador
competente de código máquina.
la generación de un código realmente óptimo
(optimizando la
velocidad, el tamaño, el consumo de energía, etc.)
Los compiladores no se limitan a generar código de...
destino a partir de programas de lenguaje de alto nivel.
Los programadores necesitan herramientas de software.
basadas en la tecnología de los compiladores,
para la generación de software fiable y de alta
calidad.