Programación de Sistemas

Qué es y qué estudia la Programación de Sistemas

Conjunto de instrucciones que ejecuta una computadora para realizar una actividad

Tipos de sistemas y Características

Sistemas físicos: equipos, maquinaria, objetos reales, hardware. Sistemas abstractos: ideas, hipótesis, conceptos, planes, Software. Sistemas abiertos y cerrados dependiendo del ambiente en que se ejecuten

Características

Están bien delimitados, por lo tanto se conocen sus fronteras
Un sistemas puede interactuar con su medio ambiente a través de una interfaz de entradas y salidas que recibe el nombre de parámetros del sistema

Clasificación del software

Procesan estructuras de datos complejas
Tienen una fuerte dependencia con el hardware
Utilizan una fuerte gestión de procesos (concurrencia, planificación, etc.)

Áreas a fines a la programación de sistemas

Teoría de la computación (lenguajes y autómatas)
Lenguajes de programación
Arquitectura de computadoras

Herramientas desarrolladas con la teoría de programación de sistemas

El caso más sencillo de programación de sistemas es la construcción de compiladores para ejecutar lenguajes de programación

Software de sistemas

Editores de texto inteligentes (IDEs con autocompletar, revisores ortográficos, etc.)

Lenguajes

Conjunto de palabras y reglas que permiten comunicar información entre dos entidades

Lenguajes naturales

El lenguaje natural es inherentemente ambiguo, por lo que se necesita crear un lenguaje que permita eliminar esas ambigüedades

Lenguajes artificiales

Los lenguajes artificiales son aquellos que los humanos hemos creado para comunicarnos.

Lenguajes de bajo nivel

Una abstracción más entendible del lenguaje máquina es el uso de lenguajes ensambladores en donde cada instrucción o mnemónico es traducido a una instrucción máquina

Lenguajes máquina

El lenguaje máquina es dependiente de cada tipo de arquitectura de computadoras por lo que el código no es fácilmente portable a otras arquitecturas.

Proceso de la comunicación

Para entablar una comunicación se necesita que tanto el emisor como el receptor conozcan el mismo leguaje o en su defecto tengan un traductor

Traductor y su estructura

Un traductor es un mediador entre dos entidades: emisoras y receptoras
Los mediadores enmascaran la complejidad y heterogeneidad de los lenguajes
Un traductor convierte un lenguaje de entrada (código fuente) a uno de salida (código objeto)

Compiladores

Es el traductor que se encarga de convertir un lenguaje de alto nivel a código máquina.

Interpretes

Se ejecutan línea por línea, instrucción por instrucción Lenguajes interpretados: PHP, PERL, BASIC

Generadores de código para compiladores

Los dos primeros lenguajes de alto nivel desarrollado fueron FORTRAN y COBOL

Lenguajes de programación

Los lenguajes de computación pueden ser de propósito general o específicos C, C++, Java, Pascal, etc. Son lenguajes de programación de propósito general