Optimizacion espara las arquitecturas de computadoras
La rápida evolución de las arquitecturas de computadoras también nos ha llevado a una insaciable demanda de nueva tecnología de compiladores.
Diseño de nuevas arquitecturas de computadoras
Traducción binaria
Paralelismo
T odos los m icroprocesadores m odernos explotan el paralelism o a nivel de instrucción. Sin embargo, este paralelism o puede ocultarse al programador.
Jerarquías de memoria
Una jerarquía de memoria consiste en varios niveles de almacenamiento con distintas velocidades y tamaños, en donde el nivel más cercano al procesador es el más rápido, pero también el más pequeño.
RISC
Arquitecturas especializadas
En las últimas tres décadas se han propuesto muchos conceptos sobre la arquitectura, entre los cuales se incluyen las máquinas de flujo de datos, las máquinas VLIW (Very Long Instruction Word, Palabra de instrucción muy larga), los arreglos SIM D (Single Instruction, Múltiple Data, Un a sola instrucción, varios datos) de procesadores, los arreglos sistólicos, los multiprocesadores con memoria compartida y los multiprocesadores con memoria distribuida.
Uno de los mejores ejemplos conocidos sobre cómo los compiladores influenciaron el diseño de la arquitectura d e computadoras fue la invención de la arquitectura RISC (Reduced Instruction-Set Computer, Computadora conconjunto reducido d e instrucciones).
Traducciones de programas
Implementación de lenguajes de programa ción de alto nivel
Un lenguaje d e programación de alto nivel define una abstracción de programación: el programador expresa un algoritmo usando el lenguaje, y e l compilador debe traducir el programa enel lenguaje de destino.
La tecnología de com piladores puede utilizarse para traducir el código binario para una máquina al código binario para otra m áquina d istinta, con lo cual se perm ite a una m áquina ejecutar los program as que originalm ente eran com pilados para otro conjunto de instrucciones.
Síntesis de hardware
No sólo la mayoría del software está escrito en lenguajes de alto nivel; incluso hasta la mayoría de los diseños d e hardware se describen en lenguajes de descripción de hardware de alto nivel, como Verilog y VHDL (Very H igh-Speed Integrated Circuit Hardware Description Lenguaje,Lenguaje de descripción de hardware de circuitos integrados de muy alta velocidad).
In térpretes de consultas de bases de datos
Además de especificar el software y el hardware, los lenguajes son útiles en muchas otras aplicaciones. Por ejemplo, los lenguajes de consulta, en especial SQL (Structured Query Lenguage, Lenguaje d e consulta estructurado), se utilizan para realizar búsquedas en bases de datos.
Simulación compilada
La simulación es una técnica general que se utiliza en muchas disciplinas científicas y de ingeniería para comprender un fenómeno, o para validar un diseño.
Herramientas de administración de memoria
La recolección de basura es otro excelente ejemplo de la concesión entre la eficiencia y una com binación de la facilidad de uso y la confiabilidad del software.
Comprobación de límite s
Es más fácil cometer errores cuando se programa en un lenguaje de bajo nivel que en uno de alto nivel. Por ejemplo, muchas brechas d e seguridad en los sistemas se producen debido a los desbordamientos en las entradas y salidas de de los programas escritos en C.