INVESTIGACIÒN M P

Anuncio
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN MARTÍN TEXMELUCAN
NOMBRE: JUAN ANTONIO SERRANO GALICIA
PROFESOR(A): YESENIA PEREZ REYES
CARRERA: ISC
MATERIA: PROGRAMACIÒN DE SISTEMAS
GRADO Y GRUPO: 5º”A”
FECHA DE ENTREGA: 25/08/11
INVESTIGACIÒN
M
ANUAL DE PRÁCTICAS
PROGRAMACIÓN DE SISTEMAS
SCC-0432
PLAN ISIC-2004-296
INGENIERÍA EN SISTEMAS COMPUTACIONALES
Índice
INTRODUCCIÓN ---------------------------------------------------------------------------------------------------------------1
1.- INTRODUCCIÓN A LA PROGRAMACIÓN DE SISTEMAS
1.1 ¿QUÉ ES Y QUÉ ESTUDIA LA PROGRAMACIÓN DE SISTEMAS?-----------------------------------------------2
1.2 HERRAMIENTAS DESARROLLADAS CON LA TEORÍA DE PROGRAMACIÓN DE SISTEMAS.---------3
1.3 LENGUAJES.
1.3.1 LENGUAJES NATURALES.----------------------------------------------------------------------------------------------4
1.3.2 LENGUAJES ARTIFICIALES.--------------------------------------------------------------------------------------------5
1.3.3 PROCESO DE LA COMUNICACIÓN.-----------------------------------------------------------------------------------6
1.4 TRADUCTOR Y SU ESTRUCTURA.
1.4.1 ENSAMBLADORES.------------------------------------------------------------------------------------------------------- 7
1.4.2 COMPILADORES.---------------------------------------------------------------------------------------------------------- 8
1.4.3 INTÉRPRETES.-------------------------------------------------------------------------------------------------------------- 9
1.5 GENERADORES DE CÓDIGO PARA COMPILADORES (COMPILADOR DE COMPILADOR).----10
CONCLUSION--------------------------------------------------------------------------------------------------------------------11
LISTA DE BIBLIOGRAFÍAS-------------------------------------------------------------------------------------------------12
Taller de base de datos [SCS0432]
INTRODUCCIÓN
Para poder empezar a hablar acerca de los tipos de lenguajes que podemos manejar
en la Programación de Sistemas tenemos que definir muy bien que es lenguaje, así
que me permito dar una breve explicación acerca de estos en su uso y
funcionamiento.
Fecha de Actualización 25/08/2011
Página 1
Taller de base de datos [SCS0432]
1.- INTRODUCCIÓN A LA PROGRAMACIÓN DE SISTEMAS
1.1 ¿QUÉ ES?
Un sistema es un conjunto de componentes que interaccionan entre si para lograr un objetivo
común. Las personas se comunican con el lenguaje, que es un sistema muy desarrollado
formado por palabras y símbolos que tienen significado que tienen significado para el que habla y
para quienes lo escuchan, lo mismo es para las computadoras las cuales tienen sistemas y se
comunican por medio de computadoras.
La programación es el proceso de convertir las especificaciones a grandes rasgos de los
sistemas en instrucciones de maquina que produzcan los resultados deseados.
¿QUE ESTUDIA?
QUE
El trabajo de un programador de sistemas es seleccionar, modificar y mantener el complejo
software del sistema operativo.
Por lo tanto, los programadores de sistemas desempeñan una función de apoyo al mantener el
ambiente del software del sistema operativo en el que trabajan los programadores de
aplicaciones y los operadores de las computadoras. También participan en las decisiones
relativas a reducciones o ampliaciones de hardware y/o software.
Programación de Sistemas Conceptos y Aplicaciones
Se entiende por programación de sistemas el conjunto de programas necesario para que una
computadora de una imagen coherente y monolítica ante sus usuarios. Es un área especializada
dentro de las ciencias de la computación. Así, mediante la programación de sistemas, no solo se
manejan las computadoras por medio del lenguaje maquina (0 y 1) sino por otros sistemas
operativos, sin lo cual sería muy difícil la interacción con la maquina.
Fecha de Actualización 25/08/2011
Página 2
Taller de base de datos [SCS0432]
EL ESTUDIO DE LA PROGRAMACIÓN DE SISTEMAS
En esta área se estudia la teoría de máquinas y su aplicación en el diseño de sistemas digitales y
de arquitectura de computadoras. Áreas específicas: Sistemas digitales para arquitecturas
paralelas y control de procesos y sistemas reconfigurables. Inteligencia artificial aplicada a
trabajo cooperativo
En las aplicaciones cooperativas realizadas en el entorno Web, es viable hacer uso de las
herramientas de inteligencia artificial. Se están diseñando y construyendo herramientas para
elaborar un sistema sin costura que opere en Web con la finalidad de proporcionar a un grupo de
coautores el soporte necesario para producir conjunta y simultáneamente un mismo documento.
1.2 HERRAMIENTAS DESARROLLADAS CON TEORIA DE PROGRAMACION DE
SISTEMAS
Muchas herramientas de software que manipulan programas fuente realizan primero algún tipo
de análisis. Algunos ejemplos de tales herramientas son:
1. Editores de estructuras.
Un editor de estructuras toma como entrada una secuencia de órdenes para construir un
programa fuente. El editor de estructuras no sólo realiza las funciones de creación y
modificación de textos de un editor de textos ordinario, sino que también analiza el texto del
programa, imponiendo al programa fuente una estructura jerárquica apropiada.
De esa manera, el editor de estructuras puede realizar tareas adicionales útiles para laa
preparación de programas.
Por ejemplo, puede comprobar si la entrada está formada correctamente, puede proporcionar
palabras clave de manera automática (por ejemplo, cuando el usuario escribe while, el editor
proporciona el correspondiente do y le recuerda al usuario que entre las dos palabras debe ir un
condicional) y puede saltar desde un begin o un paréntesis izquierdo hasta su correspondiente en o
Fecha de Actualización 25/08/2011
Página 3
Taller de base de datos [SCS0432]
paréntesis derecho. Además, la salida de tal editor suele ser similar a la salida de la fase de
análisis de un compilador
.
2. Impresoras estéticas
Una impresora estética analiza un programa y lo imprime de forma que la estructura del programa
resulte claramente visible. Por ejemplo, los comentarios pueden aparecer con un tipo de letra
especial, y las proposiciones pueden aparecer con una indentación proporcional a la profundidad
de su anidamiento en la organización jerárquica de las proposiciones
.
Fecha de Actualización 25/08/2011
Página 4
3. Verificadores estáticos.
Taller de base de datos [SCS0432]
Un verificador estático lee un programa, lo analiza e intenta descubrir errores potenciales sin
ejecutar el programa. La parte de análisis a menudo es similar a la que se encuentra en los
compiladores de optimización. Así, un verificador estático puede detectar si hay partes de un
programa que nunca se podrán ejecutar o si cierta variable se usa antes de ser definida. Además,
puede detectar errores de lógica, como intentar utilizar una variable real como apuntador,
empleando las técnicas de verificación de tipos.
Fecha de Actualización 25/08/2011
Página 5
Taller de base de datos [SCS0432]
4.
Intérpretes.
En lugar de producir un programa objeto como resultado de una traducción, un intérprete realiza las
operaciones que implica el programa fuente. Para una proposición de asignación.
Muchas veces los intérpretes se usan para ejecutar lenguajes de órdenes, pues cada operador
que se ejecuta en un lenguaje de órdenes suele ser una invocación de una rutina compleja,
como un editor o un compilador. Del mismo modo algunos lenguajes de “muy alto nivel”,
normalmente 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.
En pocas palabras un intérprete es aquel que Ejecuta línea por línea, pero realiza un código
intermedio.
5. Compiladores.
Tradicionalmente, se concibe un compilador como un programa que traduce un programa fuente, ,
al lenguaje ensamblador o de máquina de algún computador. Sin embargo, hay lugares, al parecer,
no relacionados donde la tecnología de los compiladores se usa con regularidad. La parte de
análisis de cada uno de los siguientes ejemplos es parecida a la de un compilador convencional.
a) Formadores de textos. Un formador de textos toma como entrada una cadena de caracteres,
Fecha de Actualización 25/08/2011
Página 6
Taller de base de datos [SCS0432]
la mayor parte de la cual es texto para componer, pero alguna incluye órdenes para indicar
párrafos, figuras o estructuras matemáticas, como subíndices o superíndices.
b) Compiladores de circuitos de silicio. Un compilador de circuitos de silicio tiene un lenguaje
fuente similar o idéntico a un lenguaje de programación convencional. Sin embargo las
variables del lenguaje no representan localidades de memoria, sino señales lógicas (0 o 1) o
grupos de señales en un circuito de conmutación. La salida es el diseño de un circuito en un
lenguaje apropiado.
c) Intérpretes de consultas. Un intérprete de consultas traduce un predicado que contiene
operadores relacionales y boléanos a órdenes para buscar en una base de datos registros
que satisfagan ese predicado.
1.3 LENGUAJES
1.3.1 LENGUAJES NATURALES
Se llama lenguaje natural al que utilizan los seres humanos en su comunicación
ordinaria, porque ha sido formado paulatinamente mediante el uso del grupo social, a
través de una dinámica histórica no deliberada. Así, son lenguajes naturales el
castellano, el inglés, el latín, el hindi o cualquier otro comúnmente hablado en algún
momento y en algún lugar.
Fecha de Actualización 25/08/2011
Página 7
Taller de base de datos [SCS0432]
El lenguaje natural posee una gran riqueza significativa, y no solo transmite
descripciones sino también emociones, órdenes u otros mensajes.
Un lenguaje se considera como un conjunto de oraciones, que usualmente es infinito y
se forma con combinaciones de palabras del diccionario. Es necesario que esas
combinaciones sean correctas(con respecto a sintaxis) y tengan sentido(con respecto
a la semántica). Un lenguaje es la función que expresa pensamientos y
comunicaciones entre la gente. Esta función es llevada a cabo por medio de señales y
vocales(voz) y posiblemente por signos escritos(escritura).
1.3.2 LENGUAJES ARTIFICIALES
Los lenguajes de programación no se hablan, lo cual significa también una gran
diferencia. Su fin no es que se entiendan en la comunicación oral, ya que las
computadoras actuales casi no toman en cuenta las ondas sonoras. Pero aún
suponiendo que fuera posible hablar a una computadora (lo cual es completamente
concebible).
Los programadores se dan cuenta de esto cuando distinguen entre lenguajes
artificiales o programación y lenguajes "naturales" como el español y el inglés. En sí,
la palabra "artificial" nos dice algo sobre el plan del programador. Aunque el español o
cualquier otro idioma son también producto de artificio, su creación a lo largo de siglos
no fue plenamente consciente y racional como ha sido la creación de lenguajes de
Fecha de Actualización 25/08/2011
Página 8
programación.
Taller de base de datos [SCS0432]
Lenguajes Artificiales (Basic, C, Cobol, Pascal…) para “explicar” a la computadora las
acciones a realizar. Por el contrario, los “Orientados a Objetos” permiten que el
programador ignore el lenguaje comprensible para la máquina poniendo a su
disposición una serie de objetos preprogramados. De este modo la tarea se simplifica
enormemente y se reduce a disponer, dentro de la ventana de programa y en la
secuencia adecuada, los programas y funciones de los que nos provee.
Los llamados lenguajes artificiales se denominan así por la oposición al lenguaje
natural. Cabe advertir que el uso de esta terminología en nada prejuzga acerca de la
relación entre el lenguaje y la realidad. Hablamos de lenguaje "natural" en cuanto éste
aparece como dado para los hablantes de una comunidad lingüística: desde que
nacemos aprendemos el lenguaje de nuestro grupo social sin que podamos, de
hecho, intervenir individualmente de modo apreciable en su conformación. Pero no por
esto dejaremos de reconocer que los símbolos son en principio arbitrarios y que no
existen significados "naturales" de los términos. En este último sentido, también el
lenguaje natural es, a su modo, artificial.
Entre los Lenguajes Artificiales suelen distinguirse el lenguaje técnico y el formal.
Fecha de Actualización 25/08/2011
Página 9
Taller de base de datos [SCS0432]
1) Lenguaje técnico.
El lenguaje técnico podría denominarse, con mayor propiedad, “Lenguaje natural con
términos técnicos”. Aparece cuando se otorga a determinados vocablos o expresiones
un significado restringido, a través de definiciones precisas.
Todos ellos hablan un mismo idioma, que conserva su vocabulario general y su
construcción gramatical; pero cada uno agrega a esta base común términos
estrictamente definidos que constituyen el lenguaje específico (o lajerga profesional)
de cada ciencia, con un mayor grado de univocidad en los conceptos relevantes para
determinado sector del conocimiento.
2)Lenguaje formal.
A veces la necesidad de precisión es tal que el uso de un lenguaje técnico no es
suficiente: las palabras utilizadas pueden traer a la mente asociaciones no queridas, y
la vaguedad (o a veces la ambigüedad) no puede en ocasiones reducirse
aceptablemente. En tales casos suele resultar necesario o conveniente el recurso a
los lenguajes formales.
Un lenguaje formal es aquel en el que se han eliminado los términos del lenguaje
ordinario y se emplean únicamente símbolos arbitrarios, de cuyo significado se
prescinde para dirigir la atención exclusivamente sobre las relaciones entre dichos
símbolos, expresadas en fórmulas, tal como en el álgebra o en la lógica formal.
En álgebra, por ejemplo, decimos:
(a+b) = (b+a)
Esta expresión formal puede verse como un mero cálculo, sin referencia alguna a la
realidad concreta, y en este sentido la comprendemos como la enunciación de cierta
Fecha de Actualización 25/08/2011
Página 10
Taller de base de datos [SCS0432]
propiedad de la suma (a saber, su conmutatividad). Pero también podemos asignar
valores a los símbolos arbitrarios;
1.3.3 PROCESO DE LA COMUNICACIÓN
La comunicación es un fenómeno inherente a la relación grupal de los seres vivos por
medio del cual éstos obtienen información acerca de su entorno y de otros entornos y
son capaces de compartirla haciendo partícipes a otros de esa información. La
comunicación es de suma importancia para la supervivencia de especies gregarias,
pues la información que ésta extrae de su medio ambiente y su facultad de transmitir
mensajes
serán
claves
para
sacar
ventaja
del
modo
de
vida
gregario.
Los elementos o factores de la comunicación humana son: fuente, emisor o
codificador, código (reglas del signo, símbolo), mensaje primario (bajo un código),
receptor o decodificador, canal, ruido (barreras o interferencias) y la retroalimentación
o realimentación (feed-back, mensaje de retorno o mensaje secundario).
• Fuente: Es el lugar de donde emana la información, los datos, el contenido que se
enviará, en conclusión: de donde nace el mensaje primario.
Fecha de Actualización 25/08/2011
Página 11
Taller de base de datos [SCS0432]
• Emisor o codificador: Es el punto (persona, organización…) que elige y selecciona
los signos adecuados para transmitir su mensaje; es decir, los codifica para poder
llevarlo de manera entendible al receptor. En el emisor se inicia el proceso
comunicativo.
• Receptor o decodificador: Es el punto (persona, organización…) al que se destina
el mensaje, realiza un proceso inverso al del emisor ya que en él está el descifrar e
interpretar lo que el emisor quiere dar a conocer. Existen dos tipos de receptor, el
pasivo que es el que sólo recibe el mensaje, y el receptor activo o perceptor ya que es
la persona que no sólo recibe el mensaje sino que lo percibe y lo almacena. El
mensaje es recibido tal como el emisor quiso decir, en este tipo de receptor se realiza
lo que comúnmente denominamos el feed-back o retroalimentación.
• Código: Es el conjunto de reglas propias de cada sistema de signos y símbolos que
el emisor utilizará para trasmitir su mensaje, para combinarlos de manera arbitraria
porque tiene que estar de una manera adecuada para que el receptor pueda captarlo.
Un ejemplo claro es el código que utilizan los marinos para poder comunicarse; la
gramática de algún idioma; los algoritmos en la informática…, todo lo que nos rodea
son códigos.
• Mensaje: Es el contenido de la información (contenido enviado): el conjunto de
ideas, sentimientos, acontecimientos expresados por el emisor y que desea trasmitir al
receptor para que sean captados de la manera que desea el emisor. El mensaje es la
información.
• Canal: Es el medio a través del cual se transmite la información-comunicación,
estableciendo una conexión entre el emisor y el receptor. Mejor conocido como el
soporte material o espacial por el que circula el mensaje. Ejemplos: el aire, en el caso
de la voz; el hilo telefónico, en el caso de una conversación telefónica.
• Referente: Realidad que es percibida gracias al mensaje. Comprende todo aquello
que es descrito por el mensaje.
• Situación: Es el tiempo y el lugar en que se realiza el acto comunicativo.
• Interferencia o barrera: Cualquier perturbación que sufre la señal en el proceso
Fecha de Actualización 25/08/2011
Página 12
Taller de base de datos [SCS0432]
comunicativo, se puede dar en cualquiera de sus elementos. Son las distorsiones del
sonido en la conversación, o la distorsión de la imagen de la televisión, la alteración
de la escritura en un viaje, la afonía del hablante, la sordera del oyente, la ortografía
defectuosa, la distracción del receptor, el alumno que no atiende aunque esté en
silencio.
• Retroalimentación o realimentación (mensaje de retorno): Es la condición
necesaria para la interactividad del proceso comunicativo, siempre y cuando se reciba
una respuesta (actitud, conducta…) sea deseada o no. Logrando la interacción entre
el emisor y el receptor. Puede ser positiva (cuando fomenta la comunicación) o
negativa (cuando se busca cambiar el tema o terminar la comunicación). Si no hay
realimentación, entonces solo hay información más no comunicación.
1.4 TRADUCTOR Y SU ESTRUCTURA
Un traductor es un programa que tiene como entrada un texto escrito en un lenguaje
(lenguaje fuente) y como salida produce un texto en un lenguaje (lenguaje objeto) que
preserva el significado de origen. Ejemplo de traductores son los ensambladores y los
compiladores.
A continuación presentamos algunos esquemas del comportamiento de traductores y
su estructura.
Fecha de Actualización 25/08/2011
Página 13
Taller de base de datos [SCS0432]
Fecha de Actualización 25/08/2011
Página 14
Taller de base de datos [SCS0432]
1.4.1 ENSAMBLADORES
El programa ensamblador es el programa que realiza la traducción de un programa
escrito en ensamblador a lenguaje maquina. Esta traducción es directa e inmediata,
ya que las instrucciones en ensamblador son mas que neumáticos de las
instrucciones
maquinas
que
ejecuta
directamente
la
CPU
Funciones De Un Ensamblador
La tarea fundamental de un ensamblador es traducir un programa en lenguaje de
ensamblador al código correspondiente en lenguaje de máquina.
En esencia, el ensamblador debe realizar las siguientes tareas:
1. Convertir los códigos ("opcode" o mnemónicos: ej. LDA, STX) a su código
equivalente en lenguaje de máquina
Fecha de Actualización 25/08/2011
Página 15
Taller de base de datos [SCS0432]
2. Convertir los operandos simbólicos (las etiquetas o variables) en las direcciones
correspondientes de los operandos
3. Construir las instrucciones en lenguaje de máquina en el formato apropiado
4. Convertir las constantes definidas en el programa en su verdadera representación
5. Escribir el "listing" en lenguaje de ensamblador con el código en lenguaje de
máquina correspondiente
6. Procesar las directrices al ensamblador (las directrices son instrucciones o
comandos dirigidos al ensamblador, que éste procesa y ejecuta al hallarlos en el
programa en lenguaje de ensamblador; estas directrices no se traducen a lenguaje de
máquina, si no que el ensamblador ejecuta alguna acción, como reservar memoria
para variables, entre otras).
Tipos de ensambladores. Podemos distinguir entre tres tipos de ensambladores:
1.-Ensambladores básicos.
Son de muy bajo nivel, y su tarea consiste básicamente en ofrecer nombres
simbólicos a las distintas instrucciones, parámetros y cosas tales como los modos de
direccionamiento. Además, reconoce una serie de directivas (o meta instrucciones)
que
indican
ciertos
parámetros
de
funcionamiento
del
ensamblador.
2.-Ensambladores modulares, o macro ensambladores.
Descendientes de los ensambladores básicos, fueron muy populares en las décadas
de los 50 y los 60, antes de la generalización de los lenguajes de alto nivel. Hacen
todo lo que puede hacer un ensamblador, y además proporcionan una serie de
directivas para definir e invocar macroinstrucciones (o simplemente, macros).
3.-Ensambladores de alto nivel.
Ensambladores modulares 32-bits o de alto nivel. Son ensambladores que
aparecieron como respuesta a una nueva arquitectura de procesadores de 32 bits,
muchos de ellos teniendo compatibilidad hacia atrás pudiendo trabajar con programas
Fecha de Actualización 25/08/2011
Página 16
Taller de base de datos [SCS0432]
con estructuras de 16 bits. Además de realizar la misma tarea que los anteriores,
permitiendo también el uso de macros, permiten utilizar estructuras de programación
más complejas propias de los lenguajes de alto nivel.
A pesar del hecho de que codificar en un lenguaje de alto nivel es más productivo,
algunas ventajas de codificar en lenguaje ensamblador son:
a) Proporciona más control sobre el manejo particular de los requerimientos de
hardware.
b) Genera módulos ejecutables más pequeños y más compactos
c) Con mayor probabilidad tiene una ejecución más rápida.
d) El ensamblador brinda la oportunidad de conocer más a fondo la operación de
su PC, esto le permite implementar software y hardware de un manera más
consciente.
e) Conserva usted el control total de lo que deberá hacer su PC, siempre y
cuando está sea físicamente capaz de hacerlo.
f) Los programas en ensamblador son más rápidos, más compactos y tienen
mayor capacidad que los creados en otros lenguajes.
g) Pueden optimizarse al máximo sus programas (tanto en tamaño como en
velocidad de ejecución).
1.4.2 COMPILADORES
Un compilador es querer traducir un programa de un lenguaje de alto nivel, a otro
lenguaje de nivel inferior (típicamente lenguaje máquina). De esta manera un
programador puede diseñar un programa en un lenguaje mucho más cercano a como
piensa un ser humano, para luego compilarlo a un programa más manejable por una
computadora.
Los compiladores son programas o herramientas encargadas de compilar. Un
compilador toma un texto (código fuente) escrito en un lenguaje de alto nivel y lo
Fecha de Actualización 25/08/2011
Página 17
Taller de base de datos [SCS0432]
traduce a un lenguaje comprensible por las computadoras (código objeto).
Básicamente, existen dos grandes formas de ejecutar programas: programas
compilados (previamente pasados por un compilador) y programas interpretados
(necesitan
pasar
por
un
intérprete
para
ejecutarse
en
tiempo
real).
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 tantas veces como se quiera. Este proceso de traducción se conoce como
compilación.
Partes de un compilador
Normalmente
los
compiladores
están
divididos
en
dos
partes:
Front End: es la parte que analiza el código fuente, comprueba su validez, genera el
árbol de derivación y rellena los valores de la tabla de símbolos. Esta parte suele ser
independiente de la plataforma o sistema para el cual se vaya a compilar.
Back End: es la parte que genera el código máquina, específico de una plataforma, a
partir de los resultados de la fase de análisis, realizada por el Front End.
Esta división permite que el mismo Back End se utilice para generar el código
máquina de varios lenguajes de programación distintos y que el mismo Front End que
sirve para analizar el código fuente de un lenguaje de programación concreto sirva
para generar código máquina en varias plataformas distintas.
Fecha de Actualización 25/08/2011
Página 18
Taller de base de datos [SCS0432]
El código que genera el Back End normalmente no se puede ejecutar directamente,
sino
que
necesita
ser
enlazado
por
un
programa
enlazador
(linker).
Tipos de compiladores
Esta taxonomía de los tipos de compiladores no es excluyente, por lo que puede
haber compiladores que se adscriban a varias categorías:
Compiladores cruzados: generan código para un sistema distinto del que están
funcionando.
Compiladores optimizadores: realizan cambios en el código para mejorar su
eficiencia,
pero
manteniendo
la
funcionalidad
del
programa
original.
Compiladores de una sola pasada: generan el código máquina a partir de una única
lectura del código fuente.
Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes
de poder producir el código máquina.
Compiladores JIT (Just In Time): forman parte de un intérprete y compilan partes del
código según se necesitan.
Fecha de Actualización 25/08/2011
Página 19
Taller de base de datos [SCS0432]
En pocas palabras este es el comportamiento de un compilador
1.4.3 INTÉRPRETE
Un intérprete es un programa capaz de analizar y ejecutar otros programas, escritos
en un lenguaje de alto nivel. Los intérpretes suelen contraponerse a los compiladores,
ya que mientras que los segundos se encargan de traducir un programa desde su
descripción en un lenguaje de programación al código máquina del sistema destino,
los primeros sólo realizan la traducción a medida que sea necesario y normalmente,
no guardan el resultado de dicha traducción.
Fecha de Actualización 25/08/2011
Página 20
Taller de base de datos [SCS0432]
El intérprete tiene estas características
- Traduce y ejecuta una línea del programa a la vez
- Si hay error, detiene ejecución del programa
- Programas más lentos pero más portables y flexibles
Es quema del comportamiento de un intérprete:
1.5 GENERADOR DE CODIGO PARA COMPILADORES
En un principio, estas máquinas ejecutaban instrucciones consistentes en códigos
numéricos que señalan a los circuitos de la máquina los estados correspondientes a
cada operación. Esta expresión mediante códigos numéricos se llamó Lenguaje
Máquina, interpretado por un secuenciador cableado o por una microprograma. Pero
los códigos numéricos de las máquinas son engorrosos. Pronto los primeros usuarios
de estos ordenadores descubrieron la ventaja de escribir sus programas mediante
claves más fáciles de recordar que esos códigos numéricos; al final, todas esas claves
Fecha de Actualización 25/08/2011
Página 21
Taller de base de datos [SCS0432]
juntas se traducían manualmente a Lenguaje Máquina. Estas claves constituyen los
llamados lenguajes ensambladores, que se generalizaron en cuanto se dio el paso
decisivo de hacer que las propias máquinas realizaran el proceso mecánico de la
traducción. A este trabajo se le llama ensamblar el programa.
Como opera:
EL COMPILADOR DE COMPILADORES.
Con el fin de aumentar la velocidad de producción de los compiladores y reducir el
personal que intervenga en ellos, se han desarrollado lenguajes de alto nivel llamados
compilador de compiladores.
Los primeros lenguajes de este tipo aparecieron en 1958 y suelen estructurarse en
sublenguajes específicos para cada parte del proceso de compilación. En general, el
programa objeto producido por un compilador –a su vez generado por un compilador
de compiladores- es mejor y está más optimizado que el producido por un compilador
escrito a mano. Es evidente: las características especiales que un computador
determinado imprime en la traducción de los programas objetos son más fáciles de
expresar en un lenguaje de alto nivel y los algoritmos usados generalizan más que los
manuales.
Fecha de Actualización 25/08/2011
Página 22
Taller de base de datos [SCS0432]
PRUEBAS Y MANTENIMIENTO.
Un compilador debe generar código correcto. Idealmente, se desearía tener un
computador que comprobara mecánicamente que un compilador implanta fielmente su
especificación. Varios artículos estudian la corrección de algunos algoritmos de
compilación pero desgraciadamente, los compiladores casi nunca se especifican de
forma que una implantación arbitraria se pueda comprobar mecánicamente en vez de
una especificación formal. Como los compiladores son funciones bastante complejas,
también hay que comprobar que la especificación misma sea correcta.
CONCLUSIÓN
El software de sistema juega un papel muy importante en el área de la computación.
La programación de sistemas esta muy enfocado al manejo de los microprocesadores.
Ya que como objetivo es desarrollar varias plataformas de software base ya que
nosotros debemos de aprender a manipularlos.
BIBLIOGRAFIAS
http://maestros.its.mx/karinac/CAPITULO%201ps.pdf
http://antares.itmorelia.edu.mx/~jcolivar/courses/ps207a/ps2_u1.pdf
Fecha de Actualización 25/08/2011
Página 23
Descargar