SIST-PROGR-alumnos

Anuncio
SISTEMAS DE PROGRAMACION / UNIDAD I: INTRODUCCIÓN AL SOFTWARE DE SISTEMAS
1.1. PROGRAMAS COMPUTACIONALES Y SOFTWARE COMPUTACIONAL.
1.1.1. Software de sistemas
I.- Ensambladores.
PALABRAS
CLAVE
El nivel del lenguaje ensamblador.
Tradicionalmente se ha denominado nivel 0 o bajo nivel al nivel del lenguaje maquina. El nivel de el lenguaje
ensamblador equivale al nivel de el lenguaje maquina, esto es, nivel 0 o nivel bajo. Una instrucción del lenguaje
ensamblador es equivalente a una instrucción del lenguaje maquina.
El nivel de un lenguaje como cobol, pascal, java, ada, modula 3, etc. es de nivel alto. El resultado de un
lenguaje de bajo nivel a lenguaje maquina es la misma cantidad de código, pero en uno de alto nivel (pascal,
java, etc.) a lenguaje maquina podrá ser mayor al original.
Algunos autores consideran a lenguajes de programación como el lenguaje “C”, un nivel de lenguaje intermedio.
Las funciones de un Ensamblador
Los ensambladores fueron los primeros traductores de lenguajes simbólicos o nemonicos, y que fueron escritos
por Nathaniel Rochester de IBM en 1953.
Un ensamblador es un programa que convierte a otro programa escrito en lenguaje ensamblador a un lenguaje
maquina o binario.
Normalmente un ensamblador traduce un programa en 2 pasos (pasadas).
Durante el primer paso el ensamblador convierte el código de operación (opcode) de cada instrucción a su
correspondiente a binario. Además construye la tabla de símbolos. En el segundo paso reemplaza los operandos
con direcciones binarias y crea un archivo objeto.
II.- Cargadores y Ligadores
Concepto de Cargadores y Ligadores.
Se requiere después de la traducción o ensamble o compilación de un paso extra que es el ligado.
Ligador.- Un ligador es un programa que combina mas de un archivo objeto generado o producido por un
ensamblador o compilador, y después produce un archivo ejecutable.
Cargador.- Un cargador es un programa que toma como entrada un archivo ejecutable, lo carga a la memoria
principal y provoca el inicio de ejecución del programa o archivo ejecutable. Para eso el cargador pasa la
dirección de la primera instrucción del programa ejecutable al PC.
RESUMEN
L.I.OSCAR RAMIREZ CORTÉS
Página 0
PALABRAS
CLAVE
Funciones de un cargador y de un ligador.
Ligador
Tiene dos funciones que son:
1.- Unir dos o mas módulos o archivos objetos ensamblados o compilados separadamente.
2.- Una segunda función del ligador es resolver las referencias a diferencias dentro del programa ejecutable.
Para realizar este trabajo un ligador construye una tabla de módulos.
Se le suma la dirección de carga para resolver las referencias a direcciones. A este proceso se le conoce como
relocalización.
Cargador.
La función principal del cargador es copiar el modulo ejecutable o programa ejecutable a la memoria para que
dicho programa inicie su ejecución.
Otra función es checar que la copia del ejecutable sea correcta. Esto es, que no se alteren los datos o bytes del
ejecutable.
Otra función del cargador es la re-localización de direcciones de los programas cargados. El cargador usa
técnicas para verificar que los datos copiados del archivo ejecutable a memoria sean correctos o iguales.
RESUMEN
1
Programación de Sistemas
L.I. & MSC Oscar Ramírez Cortés
III.- Compiladores.
PALABRAS
CLAVE
Funciones de compiladores.
La función mas importante es traducir un programa escrito en un lenguaje de alto nivel (Java, C++, pascal,
etc.) a un programa en código objeto (usualmente máquina).
Otras funciones del compilador son:
 Detectar errores de escritura (Léxico, Sintáctico y Semántico).
 Optimizar el código que se genera.
 Producir código transportable hacia diferentes arquitecturas.
 Traducir un programa escrito de alto nivel y producir otro programa en código objeto que pueda ser
lenguaje maquina o lenguaje ensamblador.
RESUMEN
2
Programación de Sistemas
L.I. & MSC Oscar Ramírez Cortés
PALABRAS
CLAVE
IV.- Intérpretes
Principios de Interpretación.
En lugar de producir un programa objeto como resultado de una traducción, un intérprete realiza las
operaciones que implica el programa fuente. Por ejemplo un intérprete podría construir un árbol, y después
efectuar las operaciones de los nodos conforme recorre el árbol.
Muchas veces los intérpretes se utilizan para ejecutar lenguajes de órdenes, pues cada operador que se ejecuta
en un lenguaje de este tipo suele ser una invocación de una rutina, como un editor o un compilador. Del mismo
modo algunos lenguajes de alto nivel son interpretados, porque hay muchas cosas sobre los datos, como el
tamaño y la forma de las matrices que no se pueden deducir en el momento de la compilación.
Intérprete: Es un traductor que realiza la operación de compilación paso a paso. Para cada sentencia que
compone el texto de entrada, se realiza una traducción, ejecuta dicha sentencia y vuelve a iniciar el proceso con
la sentencia siguiente. La principal ventaja del proceso de compilación frente al de interpretación es que los
programas se ejecutan mucho más rápidamente una vez compilados; por el contrario, es más cómodo
desarrollar un programa mediante un intérprete que mediante un compilador puesto que en el intérprete las
fases de edición y ejecución están más integradas. La depuración de los programas suele ser más fácil en los
intérpretes que en los compiladores puesto que el código fuente está presente durante la ejecución. Estas
ventajas pueden incorporarse al compilador mediante la utilización de entornos de desarrollo y depuradores
simbólicos en tiempo de ejecución.
Diferencia entre Intérpretes y Compiladores.
INTERPRETE: Es un programa que lee línea a línea un programa escrito en un lenguaje; en lenguaje fuente y lo
va traduciendo a un código intermedio, para ejecutarlo.
COMPILADOR: Es un programa que lee totalmente un programa escrito en un lenguaje; el lenguaje fuente, y lo
traduce a un programa equivalente a otro lenguaje, lenguaje objeto.
RESUMEN
3
Programación de Sistemas
L.I. & MSC Oscar Ramírez Cortés
Descargar