Está en la página 1de 17

Programación de Sistemas de Base I

Facultad de Medicina e Ingeniería en Sistemas Computacionales de Matamoros

Enero del 2023


¿Qué es y qué estudia la programación de
sistemas?
• Programa:

• Sistema:
Tipos de Sistemas

• Sistemas físicos: equipo, maquinaria,


objetos reales, Hardware

• Sistemas abstractos: ideas, hipótesis,


conceptos, planes, Software

• Sistemas abiertos y cerrados


dependiendo del ambiente en que se
ejecutan.
Características de
un Sistemas
Están bien delimitados, por lo tanto se
conocen sus fronteras.

Un sistema 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.

Un sistema puede ser componente de


otro sistema
¿Diferencia entre un técnico y un ingeniero?
Clasificación del Software

• Software de sistemas: software que ayuda (sirve de base) a otro software.

✓ Procesan estructuras de datos complejas

✓Tienen una fuerte dependencia con el hardware

✓Utilizan una fuerte gestión de procesos (concurrencia, planificación,


etc.)
Clasificación del Software

• Software de aplicación (gestión)


• Software de tiempo real
• Software empotrado
• Software de ingeniería y científico
• Software basado en Web
• Software de inteligencia artificial
Áreas afines en la programación de sistemas

• Teoría de la computación (lenguajes y


autómatas).
• Lenguajes de programación
• Arquitecturas de computadoras
• Algorítmica
• Ingeniería del software
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.

• Pero no sólo se aplica en lenguajes de programación, sino


también se aplica en cualquier programa que se tenga que
hacer un análisis o extracción de información
Software de sistemas
• Editores de texto inteligentes (IDEs
con autocompletar, revisores
ortográficos, etc)
• Impresoras estéticas (impresión de
gran calidad sin un editor visual, Latex,
etc.)
• Intérpretes (Shells de sistemas
operativos o de alguna aplicación
como un SMBD)
• Búsqueda de información que no es
tan común en base a patrones, etc.
¿Cómo funciona un programa de computadora?
Lenguajes naturales vs. Lenguajes de
programación
Compilación vs. Interpretación
Compilación vs. Interpretación
COMPILACIÓN INTERPRETACIÓN

•La ejecución del código traducido •Puede ejecutar el código en cuanto


suele ser más rápida. lo complete; no hay fases adicionales
•Solo el usuario debe tener el de traducción.
compilador; el usuario final puede •El código se almacena utilizando el
usar el código sin él. lenguaje de programación, no el de la
VENTAJAS
•El código traducido se almacena en máquina; esto significa que puede
lenguaje máquina, ya que es muy ejecutarse en computadoras que
difícil de entender, es probable que utilizan diferentes lenguajes máquina;
tus propios inventos y trucos de no compila el código por separado
programación sigan siendo secreto. para cada arquitectura diferente.

•La compilación en sí misma puede •No esperes que la interpretación


llevar mucho tiempo; es posible que incremente tu código a alta
no puedas ejecutar tu código velocidad: tu código compartirá la
inmediatamente después de cualquier potencia de la computadora con el
DESVENTAJAS modificación. intérprete, por lo que no puede ser
•Tienes que tener tantos realmente rápido.
compiladores como plataformas de •Tanto tú como el usuario final deben
hardware en los que deseas que se tener el intérprete para ejecutar su
ejecute su código. código.
Sistema de procesamiento típico de un
lenguaje
Fases de un
compilador
• Preprocesamiento
Transformaciones al Archivo Fuente, previas a la Compilación.
• Análisis Léxico
Reconocimiento de los Elementos del Lenguaje.
• Análisis Sintáctico
Reconocimiento de la Estructura del Lenguaje.
• Análisis Semántico
Reconocimiento de la coherencia de la Entrada.
• Generación de Código Intermedio
Transformación de la Entrada en una representación de código intermedio para una máquina
abstracta.
• Optimización de Código
Mejoras a la representación intermedia que resulten en un código más rápido de ejecutar. .
• Generación de Código
Transformación del código intermedio en código objeto.
• Depuración
Reconocimiento de Errores.
• Administración de la Tabla de Símbolos
Reconocimiento de los nombres de los identificadores utilizados en la Entrada y sus diferentes
atributos.

También podría gustarte