Conceptos Clave en Compiladores y Arquitectura de Procesadores
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 4,56 KB
Compilador Cruzado
Compilador Cruzado: es aquel que genera un código para una plataforma distinta a donde se ejecuta.
Máquina Virtual
Máquina Virtual: Programa que simula a una computadora. Esta simulación permite que una computadora (llamada host) ejecute múltiples sistemas operativos y aplicaciones de manera aislada y segura, como si cada uno estuviera funcionando en su propio entorno físico independiente.
Lenguajes de Programación
Lenguaje C => Compilador (más rápido, las variables pueden ser estáticas o dinámicas, genera código objeto)
Python => Interpretado (más lento, las variables son dinámicas, no genera código objeto, interpreta cada línea).
Lenguaje de Máquina
Lenguaje de máquina => Dirección Número de Registros => Número.
Lx => Dirección de la memoria Li => Carga Inmediata.
Desarrollo de Bucles
Desarrollar bucles: Convertir un bucle en una lista de instrucciones individuales, guardando velocidad de ejecución a cambio de memoria.
Un compilador puede o no desenrollar un bucle antes de traducir a pseudocódigo.
Funciones
Función: Código reutilizable que se manda a llamar para hacer uso de él. En la práctica, la ejecución del programa "salta" a donde se encuentre la función y luego regresa al código originalmente ejecutado. No se puede saber qué línea regresar después de la función sin antes saber desde qué línea se llamó a la función. Esta información se guarda en un registro de elección.
Instrucción JAL
La función JAL (Jump and Link) es una instrucción utilizada en lenguaje ensamblador y arquitecturas de procesadores para realizar un salto a una subrutina (o función) y almacenar la dirección de retorno en un registro específico. Esta instrucción se utiliza comúnmente en el contexto de lenguajes de bajo nivel.
Operaciones Aritméticas
Operaciones Aritméticas (ADD, SUB, MUL, DIV -- Registros / ADDI, SUBI, MULI, DIVI -- Inmediatas).
Contador de Programa
Program Counter (PC), contador de programa, es un registro especial en una CPU que indica la dirección de la próxima instrucción que se ejecutará en un programa. Almacena la dirección de memoria de la siguiente instrucción que la CPU debe recuperar y ejecutar. Después, se incrementa automáticamente para apuntar a la siguiente instrucción en secuencia. Lee la instrucción ubicada en la dirección de memoria apuntada por el PC, ejecuta esa instrucción y luego incrementa el valor del PC para que apunte a la siguiente instrucción en secuencia. Permite la ejecución secuencial de instrucciones en un programa. En casos donde una instrucción provoca un salto o una ramificación en la secuencia de ejecución (por ejemplo, una instrucción de salto condicional o incondicional), el PC se actualiza para apuntar a la nueva dirección de memoria correspondiente a la instrucción a la que se debe saltar.
Conjuntos de Instrucciones
CISC
CISC (Complex Instruction Set Computer) utiliza un conjunto amplio y complejo de instrucciones en el hardware del procesador.
- Instrucciones poderosas y diversas que pueden realizar múltiples operaciones en una sola instrucción.
- El compilador puede generar código más fácilmente, aprovechando las instrucciones complejas del procesador.
- Potencialmente alto rendimiento y facilidad de programación en un nivel más alto.
- Hardware más complejo y costoso de diseñar y fabricar.
RISC
RISC (Reduced Instruction Set Computer) utiliza un conjunto reducido y básico de instrucciones en el hardware del procesador.
- Instrucciones simples que realizan operaciones básicas.
- El compilador puede requerir más esfuerzo para optimizar el código usando instrucciones simples.
- Hardware más simple y económico de diseñar y fabricar.
- Puedes requerir más instrucciones para realizar operaciones complejas, lo que puede afectar el rendimiento.
%IMAGE_1%