En el ámbito de la informática y la ingeniería, los microprocesadores modernos aprovechan el paralelismo a nivel de instrucción, aunque este paralelismo puede no ser evidente para los programadores.
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.
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.
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.
Simulación compilada
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.
In térpretes de consultas de bases de datos
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).
Síntesis de hardware
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.
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.
Implementación de lenguajes de programa ción de alto nivel
Traducciones de programas
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).
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.
RISC
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.
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.
Traducción binaria
Aplicaciones de la tecnología de compiladores
Diseño de nuevas arquitecturas de computadoras
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.