Fundamentos de Programación de Sistemas: Lenguajes, Traductores y Compiladores

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,46 KB

Programación de Sistemas

¿Qué es la Programación de Sistemas?

Es un conjunto de componentes que interactúan entre sí para lograr un objetivo común.

¿Qué estudia la Programación de Sistemas?

El trabajo de un programador de sistemas es seleccionar, modificar y mantener el complejo de software del sistema operativo. En esta área se estudia la teoría de las máquinas y su aplicación en el diseño de sistemas digitales y de arquitectura de computadoras.

Áreas de Estudio en Programación de Sistemas:

  1. Inteligencia Artificial aplicada a trabajo cooperativo.
  2. Sistemas para arquitecturas paralelas y distribuidas.
  3. Sistemas de tiempo real.
  4. Diseño y programación de sistemas grandes.

Lenguajes de Programación

Lenguajes Naturales

Se aprenden con la experiencia humana, son polisemánticos (una palabra u oración puede tener varios significados).

Lenguajes Artificiales

Permiten la comunicación humano-máquina (ejemplos: COBOL, C, BASIC, Pascal, Java). Tienen una sintaxis definida que debe ser respetada para que se entienda la semántica.

Traductores y su Estructura

Semántica

Se refiere al significado o interpretación del significado de un determinado símbolo, palabra, lenguaje o representación formal.

¿Qué es un Traductor?

Es un software que toma como entrada un programa escrito en un código fuente y genera como salida otro programa en un código objeto.

Compilador

Toma como entrada código de alto nivel y genera como salida código de bajo nivel.

Intérprete

Toma como entrada código de alto nivel y genera como salida un código intermedio (no realiza compilación previa).

Estructura General de un Traductor

Código Fuente → Traductor → Código Objeto

Lenguaje Ensamblador

Es un programa informático que traduce un fichero fuente escrito en un lenguaje ensamblador a un fichero objeto que contiene código máquina, ejecutable directamente por la máquina para la que se ha generado.

Tipos de Ensambladores

  • Ensambladores Básicos: Son de muy bajo nivel y su tarea consiste en asignar nombres y parámetros.
  • Ensambladores Modulares: Hacen lo mismo que un ensamblador básico y proporcionan directivas para definir e invocar macros.
  • Ensambladores Modulares de Alto Nivel: Son similares a los modulares, pero permiten el uso de estructuras de programación complejas.

Lenguajes Compilados y Compiladores

¿Qué es un Compilador?

Acepta programas escritos en un lenguaje de alto nivel y los traduce a otro lenguaje, generando un programa equivalente independiente que puede ejecutarse indefinidamente (proceso conocido como compilación).

Partes de un Compilador

  • Front End: Analiza el código fuente.
  • Back End: Genera el código máquina.

Tipos de Compiladores

  • Compiladores Cruzados: Generan código para una plataforma distinta a la que se utiliza para compilar.
  • Compiladores Optimizadores: Efectúan cambios en el código para mejorar su funcionamiento (rendimiento, tamaño, etc.).
  • Compiladores de una Sola Pasada: Procesan el código fuente en una única lectura.
  • Compiladores de Varias Pasadas: Requieren múltiples lecturas del código fuente para su procesamiento.
  • Compiladores JIT (Just-In-Time): Compilan el código a medida que se va utilizando, en tiempo de ejecución.

Lenguajes Interpretados e Intérpretes

¿Qué es un Intérprete?

Es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta (BASIC es un lenguaje interpretado).

Ejemplo de Funcionamiento de un Intérprete

Consideremos la sentencia: C := A + B

  1. El intérprete lee la sentencia y determina que es una asignación.
  2. Llamará a una de sus rutinas para evaluar la expresión a la derecha de la asignación.
  3. Esta rutina toma los símbolos A y B, determina dónde están almacenados, obtiene sus valores actuales y los suma.
  4. El intérprete toma el valor calculado y lo almacena en la dirección de memoria a la que hace referencia el símbolo C.

Entradas relacionadas: