Subido por Gabriel Martinez Martinez

Mantenimiento Preventivo y correctivo

Anuncio
Mantenimiento Preventivo y
Correctivo de Un equipo de
Computo
Conceptos Básicos
L.I. GABRIEL MARTINEZ MARTINEZ
1
Imágenes en esta diapositiva son de dominio público
¿Qué es una computadora?


Máquina capaz de efectuar una secuencia de operaciones
mediante un programa, realizando así un procesamiento
sobre un conjunto de datos de entrada y obteniéndose
otro conjunto de datos de salida.
Funciones básicas del computador son:
 Procesamiento de datos
 Almacenamiento de datos
 Transferencia de datos
2
HARDWARE : Lo que puedes tocar o palpar.
SOFTWARE : Todo aquello que puedes ver pero no tocar
Hardware & Software

Hardware (mecamática) :
partes físicas, tangibles
de la computadora
CC BY 2.5 por Gustavb, tomado de
https://en.wikipedia.org/wiki/Computer_hardware#/
media/File:Personal_computer,_exploded_5.svg

CC BY 2.0 por Okubax, tomado de https://flic.kr/p/pd6V5G
Software (programática):
programas que contienen
instrucciones que la
computadora ejecuta.
3
Hardware
¿Cuántos
programadores
se necesitan para
cambiar
un bombillo?
EIF 200 FNDAMENTOS DE INFOMÁTICA
Ninguno,
es un problema de
hardware.
4
Unidad central de proceso (CPU)


La unidad central de proceso CPU es el
“cerebro” de la computadora.
Su misión consiste en coordinar y controlar o
realizar todas las operaciones del sistema.




Procesa o manipula la información almacenada en
memoria
Recupera información desde memoria (datos o
instrucciones)
Almacena los resultados de estos procesos en
memoria para su uso posterior
Sus partes principales son las siguientes:


Procesador, que a su vez se compone de:
 La unidad de control (UC).
 La unidad aritmético – lógica (UAL).
La memoria central (MC).
Imágenes en esta diapositiva son de dominio público
5
Unidad central de proceso (CPU)





La velocidad de un microprocesador se mide en megahercios
(MHz) y manipulan palabras de 4 a 64 bits.
Los microprocesadores históricos: 8080 hasta el 80486/80586,
Pentium, Pentiun MMX, Pentium II, Pentium III.
En el año 2000 Intel lanzó la siguiente generación, Pentium 4,
con una nueva microarquitectura diseñada para ser más rápida y
escalar mejor a los procesadores actuales.
En la actualidad fabrican microprocesadores con frecuencias
desde 1.3 GHz hasta 3 GHz.
Los microprocesadores modernos tienen una capacidad y
velocidad mucho mayores, trabajan en arquitecturas de 64 bits,
integran más de 700 millones de transistores, como es en el caso
de las serie Core i7, y pueden operar a frecuencias normales algo
superiores a los 3 GHz (3000MHz)
Imágenes en esta diapositiva son de dominio público
6
Unidad central de proceso (CPU)
Unidad Central de
Proceso (Procesador)
UAL
Unidad Aritmética
Lógica
Entrada
UC
Unidad de Control
Salida
Memoria Central
Memoria Auxiliar
CC-BY por Allan Ajifo https://www.flickr.com/photos/12599
2663@N02/14599057094/
7
Unidad de control (UC)

Funciones:
 Coordina las actividades de la computadora y determina que
operaciones se deben realizar y en que orden, además controla y
sincroniza todo el proceso de la computadora
 Supervisa la ejecución de los programas.
 Coordina y controla al sistema de cómputo, es decir, coordina
actividades de E/S.
 Determina que instrucción se debe ejecutar y pone a disposición
los datos pedidos por la instrucción.
 Determina donde se almacenan los datos y los transfiere desde
las posiciones donde están almacenados.
 Una vez ejecutada la instrucción la UC debe determinar donde
pondrá el resultado para salida o para su uso posterior.
8
Unidad aritmético-lógica (UAL)


Realiza operaciones aritméticas y lógicas, tales como suma, resta,
multiplicación, división y comparaciones, haciendo uso de
operadores como +, -, /, *, and, or, xor, not, >, >=, <, <=, = etc
Al realizar operaciones aritméticas y lógicas, la UAL mueve datos
entre ella y el almacenamiento
Un símbolo esquemático típico para una
ALU: A y B son los datos (registros); R es
la salida; F es el operando (instrucción) de
la Unidad de Control; D es un estado de la
salida
Imagen CC-BY-SA-3,0 por Cburnett, tomado de
https://simple.wikipedia.org/wiki/Arithmetic_lo
gic_unit#/media/File:ALU_symbol.svg
9
La Memoria



Almacena la información en un formato lógicamente
consistente.
Normalmente, tanto las instrucciones como los datos se
almacenan en áreas de memoria distintas y separadas.
Se divide en dos categorías:

Memoria principal: contiene el programa en ejecución y los
resultados de los cálculos intermedios de la computadora.

Memoria auxiliar o de almacenamiento secundario:
consta de dispositivos utilizados para almacenar los datos de
modo permanente. El programa se almacena en memoria
auxiliar de modo permanente y cuando se ha de ejecutar se
transfiere a la memoria central mediante órdenes al sistema
operativo.
10
Memoria central (interna)



Consta de una gran colección de pequeños
circuitos electrónicos capaces de almacenar un bit
(un bit es un circuito que puede tener exactamente
dos valores: cero/uno o encendido/apagado).
La memoria da al procesador almacenamiento
temporal para programas y datos. Todos los
programas y datos deben transferirse a la memoria
desde un dispositivo de entrada o desde el
almacenamiento secundario, antes de que los
programas puedan ejecutarse o procesarse los
datos
La memoria central se utiliza para almacenar
010111001
información.

Se divide a su vez en memoria RAM y memoria
ROM.
Imágenes en esta diapositiva son de dominio público
11
Memoria RAM (Random Access Memory)


Es normalmente volátil, lo que significa que todo cuanto se
almacena o guarda ella se pierde cuando se apaga la computadora.
Todos los programas y datos son transferidos a la memoria RAM,
desde un dispositivo de entrada o desde almacenamiento
secundario, antes de ser ejecutados o procesados.
Dispositivos de
almacenamiento
secundario
Dispositivos
entrada / salida
Memoria RAM
Procesador
12
Memoria RAM



Permite almacenar datos de entrada, instrucciones de los
programas que se están ejecutando en ese momento, los
datos resultados del procesamiento y los datos que se
preparan para la salida
En general, la información almacenada en memoria
puede ser de dos tipos: las instrucciones de un programa
y los datos con los que operan las instrucciones.
La cantidad de memoria RAM influye en la velocidad de
un PC. Entre más memoria RAM tenga, más rápido
trabaja y más programas puede tener abiertos al mismo
tiempo
Imágenes en esta diapositiva son de dominio público
13
Memoria ROM

Memoria ROM (Read Only Memory)



Memoria de solo lectura
Almacena ciertos programas e información que necesita la
computadora para cargar inicialmente al software cuando se
enciende la máquina. Esta información está grabada
permanentemente y no puede ser modificada por el programador.
No es volátil, por lo tanto su contenido no se pierde cuando se apaga
la energía.
Imágenes en esta diapositiva son de dominio público
14
Memoria central (interna)
La memoria central consta de un conjunto
de celdas de memoria (llamadas también palabras).
 El número de celdas de la memoria depende del tipo y
modelo de la computadora (32, 64, 128, etc,).
 Cada celda de memoria consta de un cierto número de
bits.
 La unidad elemental de memoria se llama byte (8 bits).
 Un byte tiene la capacidad de almacenar un carácter de
información.
 La memoria de un PC actual llega hasta varios miles de
millones de bytes.

15
Memoria central
(interna)


Cada celda o posición de memoria tiene asociados:
 Dirección: una única dirección que indica su posición relativa en
memoria y mediante la cual se puede acceder a la posición para
almacenar o recuperar información
 Contenido: información almacenada en una posición de memoria
La dirección de una celda es permanente y única, el contenido puede
cambiar mientras se ejecuta el programa.
Direcciones
999
998
1010 0011 1011 1101
Contenido de
la dirección
998
1
0
Memoria central de una computadora
16
Unidades de memoria
— ¿Qué es un terapeuta?
— 1000 gigapeutas
Como el byte es una unidad elemental de almacenamiento, se utilizan múltiplos
para definir el tamaño de la memoria central:
• 1 bit (b): unidad básica (1 , 0)
• 1 byte (B): ocho bits, representa letras, números o signos.
Base 10 (SI)
Base 2 (ISO/IEC 80000-13)
byte
B
100 = 1
byte
B
20 = 1
kilobyte
kB
103 = 1 000
kibibyte
KiB
210 = 1024
megabyte
MB
106 = 1 000 000
mebibyte
MiB
220 = 1 048 576
gigabyte
GB
109 = 1 000 000 000
gibibyte
GiB
230 = 1 073 741 824
terabyte
TB
1012 = 1 000 000 000 000
tebibyte
TiB
240 = 1 099 511 627 776
petabyte
PB
1015 = 1 000 000 000 000 000
pebibyte
PiB
250 = 1 125 899 906 842 624
exabyte
EB
1018 = 1 000 000 000 000 000 000
exbibyte
EiB
260 = 1 152 921 504 606 846 976
zettabyte
ZB
1021 = 1 000 000 000 000 000 000 000
zebibyte
ZiB
270 = 1 180 591 620 717 411 303 424
yottabyte
YB
1024 = 1 000 000 000 000 000 000 000 000 yobibyte
YiB
280 = 1 208 925 819 614 629 174 706 176
17
Memoria secundaria




La memoria secundaria es un conjunto de dispositivos para
el almacenamiento masivo de datos de una computadora,
con mayor capacidad que la memoria principal, pero más
lenta que ésta: cd, dvd, disco duro, unidades de memoria
flash, etc.
Almacena los datos en forma temporal o permanente.
Con la evolución de las tecnologías se han conseguido
dispositivos de almacenamiento masivos de datos.
Se clasifican en grupos:



Dispositivos Magnéticos
Dispositivos Ópticos
Unidades de Estado Sólido
18
Cintas magnéticas






Primeros dispositivos de almacenamiento de datos que se utilizaron
Han sido los más empleados para almacenar copias de seguridad.
Poseen una gran capacidad de almacenamiento pero tienen la
desventaja de ser dispositivos de acceso secuencial.
A mayor capacidad de almacenamiento, mayor longitud de cinta y
en consecuencia, mayor tiempo de acceso.
En general, las cintas son medios removibles, fiables y económicos
con altas capacidades de almacenamiento.
Están por salir del mercado aunque aun se usan en algunas partes.
Imágenes en esta diapositiva son de dominio público
19
Discos



Dispositivos formados por componentes
electromagnéticos o por componentes ópticos que
permiten un acceso rápido a bloques físicos de datos.
La información se registra en la superficie del disco y se
accede a ella por medio de cabezas de lectura/escritura
que se mueven sobre la superficie.
Su principal característica es el acceso directo a la
información y se les conoce también como unidades de
almacenamiento masivo.
Imágenes en esta diapositiva son de dominio público
20
Discos magnéticos


Pueden ser duros, de gran capacidad de
almacenamiento (hasta cientos de GB),
discos flexibles (360 KB a 1,44 MB) o
arreglos de discos de varios TB.
Los discos duros suelen estar fijos en los
sistemas y normalmente no se pueden
extraer, aunque cada vez es más
frecuente encontrar discos duros
removibles utilizados como copias de
seguridad.
Imágenes en esta diapositiva son de dominio público
21
Discos ópticos
Emplean la misma tecnología que los dispositivos
compactos de audio para almacenar información digital:







muy resistentes al paso del tiempo
poseen gran capacidad de almacenamiento
son transportables y compatibles entre computadoras.
Hicieron posible el desarrollo de la multimedia.
Los CD’s permiten almacenar 650 o 700 MB de información y hay
de solo lectura CD-R o de lectura y escritura CD-RW.
Los DVD son dispositivos:





alta capacidad de almacenamiento
interactivos
total compatibilidad con los medios existentes
su formato sirve tanto para las computadoras como para los dispositivos
electrónicos de consumo
pueden almacenar el equivalente de 7 a 26 CDs convencionales.
Imágenes en esta diapositiva son de dominio público
22
Flash Disk


Es un pequeño almacén de datos de tamaño pequeño que
se puede transportar como llavero, se puede utilizar en
cualquier computadora que disponga de un puerto USB y
pueden almacenar hasta varios GB a precios módicos.
Mal llamada llave maya.
Imágenes en esta diapositiva son de dominio público
23
Dispositivos de entrada y salida
Imágenes en esta diapositiva son de dominio público
24
Dispositivos de entrada

•
•
•
•
•
•
Permiten al usuario del ordenador introducir datos,
comandos y programas en la CPU.
Teclado: más común. La información introducida con el
mismo, es transformada por el ordenador en modelos
reconocibles.
Lápices ópticos, que transmiten información gráfica desde
tabletas electrónicas hasta el ordenador
Joysticks y el ratón, que convierte el movimiento físico en
movimiento dentro de una pantalla de ordenador
Escáneres luminosos, que leen palabras o símbolos de una
página impresa y los traducen a configuraciones electrónicas
que el ordenador puede manipular y almacenar
Módulos de reconocimiento de voz, que convierten la palabra
hablada en señales digitales comprensibles para el
ordenador.
Dispositivos de almacenamiento para introducir datos en la
unidad de proceso.
Imágenes en esta diapositiva son de dominio público
25
Dispositivos de salida
Estos dispositivos permiten al
usuario ver los resultados de los
cálculos o de las manipulaciones
de datos de la computadora.
• Monitor: más común. Presenta
los caracteres y gráficos en una
pantalla similar a la del
televisor.
• Impresoras: permiten obtener
una copia impresa de la
información que reside en los
dispositivos de
almacenamiento-
Imágenes en esta diapositiva son de dominio público
26
SOFTWARE
Imágenes en esta diapositiva son de dominio público
27
SOFTWARE
Las operaciones que debe realizar el
hardware son especificadas por una lista de instrucciones,
llamadas programas o software.
 El software se divide en dos grandes grupos:



software del sistema: conjunto de programas indispensables
para que la máquina funcione: sistema operativo, los
compiladores / intérpretes (lenguajes de programación) y los
programas utilitarios
software de aplicaciones: programas que realizan tareas
concretas, nóminas, contabilidad, análisis estadístico, los
editores de texto, etc.
Imágenes en esta diapositiva son de dominio público
28
Imágenes en esta diapositiva son de dominio público
Sistema Operativo




Es el software encargado de ejercer el control y coordinar el uso del
hardware entre diferentes programas de aplicación y los diferentes
usuarios.
Es un administrador de los recursos de hardware y software del
sistema.
Ofrece una distribución ordenada y controlada de los procesadores,
memorias y dispositivos de E/S entre los diversos programas que
compiten por ellos.
Tiene dos funciones primordiales, que son:


Gestionar el hardware. Se refiere al hecho de administrar de una forma
más eficiente los recursos de la máquina.
Facilitar el trabajo al usuario. Permite una comunicación con los
dispositivos de la máquina.
29
Sistema Operativo

Consta de varios componentes:
 Kernel del sistema (componente central),
 Sistema de administración de memoria (asigna un
área de memoria para cada programa que se está
ejecutando),
 Administrador del sistema de archivos (organiza y
controla el uso de los discos),
 Controladores de dispositivos (controlan los
dispositivos de hardware conectados a la
computadora), y
 Bibliotecas del sistema (contiene todos los tipos de
programas utilitarios).
30
Categorías de sistemas
operativos
Multitarea
 Capacidad del SO para ejecutar varias tareas
simultáneamente.
 Multiusuario
 Permite a varios usuarios acceder a una computadora.
 Son también multitareas.
 Multiproceso
 Coordina las operaciones de las computadoras que
tienen más de un procesador. Cada procesador ejecuta
procesos diferentes

31
Ejemplos de sistemas operativos




MS DOS
Creado por Microsoft
en1984.
Gran volumen de
software disponible.
Monousuario
Monotarea
WINDOWS
Creado por Microsoft a
mediado de la década de los
80.
 Multitarea
 Interfaz gráfica

32
Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños
Ejemplos de sistemas operativos
UNIX



Creado por Laboratorios Bell
en 1969.
Multiusuario, multitarea y
multiproceso
Sólido y capaz, pero de difícil
aprendizaje.
GNU / LINUX






Creado en 1991 por Linus Torvalds
Multitarea, multiusuario,
multiproceso
Protege la memoria para que un
programa no pueda hacer caer al
resto del sistema
Se distribuye con código fuente
(Software libre)
Comparte la memoria entre
programas aumentando la velocidad y
disminuyendo el uso de memoria
Hay diferentes “distribuciones”
(Debian, RedHat, Mandrake, etc.)
33
Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños
Lenguajes de programación


Sirven para escribir programas que permitan la
comunicación usuario/máquina.
Los principales tipos de lenguajes de programación son
tres:
 lenguaje máquina
 lenguaje de bajo nivel o
ensamblador
 lenguajes de alto nivel
34
Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños
Lenguaje máquina



Escritos en lenguajes directamente legibles por la máquina, ya que sus
instrucciones son cadenas binarias (series de 1 y 0’s) que especifican la
operación a realizar, los registros del procesador y celdas de memoria
implicados, etc.
Dependen del hardware de la computadora y por tanto difieren de una
computadora a otra.
Las ventajas de programar en lenguaje máquina:



posibilidad de cargar un programa sin necesidad de traducción posterior
velocidad de ejecución superior a cualquier otro lenguaje de
programación.
Inconvenientes:




dificultad y lentitud en la codificación
poco amigables
dificultad de verificar y poner a punto los programas
los programas solo son ejecutables en el mismo procesador
Imágenes en esta diapositiva son de dominio público
35
Lenguajes de bajo nivel
Son más fáciles de utilizar que los lenguajes
máquina.
 Dependen de la máquina en particular.
 El lenguaje de bajo nivel por excelencia es el lenguaje
ensamblador, sus instrucciones son conocidas como
nemotécnicos, por ejemplo; ADD, SUB, DIV, etc.
 Un programa escrito en lenguaje ensamblador no puede ser
ejecutado directamente por la computadora, sino que requiere
una fase de traducción al lenguaje máquina.

Imágenes en esta diapositiva son de dominio público
36
Lenguajes de bajo nivel



Ventajas:
 Más fáciles de codificar
 Mayor velocidad de cálculo
Desventajas:
 Dependencia
total de la máquina lo que impide la
transportabilidad de los programas
 Formación de programadores en este lenguaje es más compleja ya
que exige conocer no sólo las técnicas de programación sino
también el interior de la máquina
Actualmente las aplicaciones desarrolladas en lenguaje
ensamblador están relacionadas principalmente con aplicaciones
de tiempo real, control de procesos y de dispositivos electrónicos.
37
Lenguajes de alto nivel


Son los más utilizados (más fáciles de
entender).
Normalmente no dependen de la
máquina por lo tanto son portables o
transportables y pueden ser ejecutados
con poca o ninguna modificación en
diferentes tipos de computadoras.


Existen actualmente numerosos
lenguajes de programación, entre
ellos: C, C++, COBOL, PASCAL, Visual
BASIC, Java, C#, Prolog, LISP, SQL,
Delphi, Power Builder, HTML, etc.
Los programas fuente escritos en
lenguajes de alto nivel tienen que ser
traducidos por programas traductores
llamados compiladores e intérpretes.
Imágenes en esta diapositiva son de dominio público
38
Lenguajes de alto nivel

Ventajas:





El tiempo de formación de los programadores es
relativamente corto comparado con otros lenguajes.
La escritura de programas se basa en reglas
sintácticas similares a los lenguajes humanos, por
ejemplo: READ, WRITE, PRINT, etc.
Las modificaciones y puestas a punto de los
programas son más fáciles.
Reducción del coste de los programas.
Transportabilidad.
39
Lenguajes de alto nivel

Desventajas:




Se requieren diferentes traducciones del programa
fuente para llegar al programa objeto.
No se aprovechan los recursos internos de la
máquina, que se explotan mejor en lenguajes máquina
y ensamblador.
Hay un incremento en la ocupación de memoria.
Requieren un mayor tiempo de ejecución.
40
Historia de los lenguajes de
programación



Muchos de los lenguajes actuales tienen sus raíces en los lenguajes
que nacieron a finales de los 50 y primeros años de los 60, tales
como COBOL (1960), FORTRAN IV (1961), BASIC (1964), LOGO
(1967).
En la década de los setenta y primeros años de los ochenta
emergieron nuevos lenguajes como Pascal (1971) y C (1972) y Ada
(1979), que se convirtieron en dominantes, desplazando a otros
como ALGOL y BASIC.
Otros lenguajes como COBOL y FORTRAN, lograron adaptarse y se
mantuvieron como lenguajes de referencia en el mundo de los
negocios y en el campo científico.
41
Historia de los lenguajes de
programación






Todos estos lenguajes se conocían como lenguajes de programación
imperativos o estructurados.
En paralelo con el desarrollo de estos lenguajes surgieron dos nuevos
estilos o paradigmas de programación:
 programación funcional y
 programación orientada a objetos
A principios de los ochenta apareció C++ como lenguaje imperativo
con propiedades de orientación a objetos.
1995 surge Java: lenguaje orientado a objetos con una funcionalidad
muy dirigida a la red Internet.
2000 surge C#, que está relacionado directamente con C, C++ y Java.
C# representa en la primera década del siglo XXI a un lenguaje de
programación con la mayoría de las grandes propiedades que todo
buen lenguaje debe cumplir.
42
SOFTWARE

Programa de computadora:



Programación:


conjunto de instrucciones que se pueden utilizar para escribir un programa.
Programa fuente:


proceso de escribir un programa o software.
Lenguaje de programación:


Un programa es un conjunto de instrucciones lógicas que le dicen a la
computadora que debe hacer.
Un programa debe satisfacer la necesidades de los usuarios utilizando
eficientemente los recursos disponibles
aquel que nos permite escribir un algoritmo mediante un lenguaje formal. Por
eso al código desarrollado al programar se le llama código fuente.
Programa objeto:

es el resultado de traducir un programa fuente a un lenguaje comprensible por la
máquina
43
TRADUCTORES:
Ensambladores, Compiladores
e Interpretes
44
Traductores

Son programas que traducen los programas
fuente escritos en lenguaje de alto nivel en
instrucciones escritas en lenguaje máquina (0,1)
que la computadora pueda entender. Se
clasifican en:



Ensambladores
Intérpretes
Compiladores
45
Traductores



Ensambladores
 Tipo de traductor que convierte programas escritos en lenguaje
ensamblador en programas escritos en código máquina.
Intérpretes
 Se trata de traductores-ejecutores ya que con cada instrucción realizan un
proceso triple de lectura-traducción-ejecución. Son relativamente lentos,
pero muy buenos para la depuración de programas.
 Los intérpretes han vuelto a renacer con la aparición de Java.
Compiladores
 Es el tipo de traductor más conocido. Se trata de un programa que traduce
código fuente escrito en un lenguaje de alto nivel (Pascal, C, C++) en
código máquina . Son más rápidos que los intérpretes pero presentan
mayor dificultad a la hora de detectar errores.
 Para conseguir el programa máquina real se debe utilizar un programa
llamado montador o enlazador (linker). El proceso de montaje conduce a
un programa de lenguaje máquina directamente ejecutable.
46
Diferencias entre un compilador y un
intérprete


Los compiladores realizan la traducción en tiempo de
desarrollo. Es decir, el programa aún no se está
ejecutando. El compilador recibe todo el código fuente,
lo analiza, lo optimiza y lo traduce a lenguaje máquina
dejando un programa completo listo para su ejecución.
Típicos lenguajes compilados son el C o el PASCAL
Los intérpretes realizan la traducción en tiempo de
ejecución. Es decir, a medida que el programa se va
ejecutando, el intérprete va traduciendo instrucciones al
lenguaje máquina. Ejemplos: BASIC, LISP, Prolog.
48
Lenguajes Interpretados
49
Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños
Lenguajes Compilados
50
Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños
Imágenes en esta diapositiva son de dominio público
El proceso ….





El programador, con ayuda de un
editor de textos genera, en el lenguaje
de alto nivel el programa (código
fuente).
A continuación otro programa, realiza
la traducción de este código fuente al
lenguaje máquina propio del
microprocesador (código objeto).
Los programas que realizan esta labor
son los compiladores e intérpretes.
El programa, ya en lenguaje máquina,
debe ponerse al alcance del
microprocesador. Esto se realiza
mediante los programas cargadores.
Las funciones mas importantes de un
cargador son: colocar un programa
objeto en la memoria e iniciar su
ejecución
51
Proceso de
ejecución
Inicio
Modificación
programa
fuente
Editar programa
fuente
Compilar el
programa
si
Existen errores en
la compilación?
no
Programa
Enlazador
Programa
ejecutable
Ejecución
52
Tipos de errores

De tiempo de compilación:
Errores detectados por
preprocesador, el analizador sintáctico y el propio compilador. Los
hay meramente sintácticos, por ejemplo un paréntesis no cerrado;
también de tipo lógico, por ejemplo la referencia a una variable no
declarada previamente, etc.

De tiempo de enlazado: Son detectados por el enlazador. Por
ejemplo una llamada a función cuya definición no aparece por
ninguna parte (el enlazador no es capaz de encontrarla en los
directorios que tiene asignados como "normales" para buscar);
también la inversa: dos funciones del mismo nombre situadas en dos
módulos (fuentes) distintos (la referencia aparece duplicada).

De tiempo de ejecución (runtime): Se producen cuando se
ejecuta el programa; son los más difíciles de diagnosticar y verificar,
sobre todo en aplicaciones grandes (los relativos a "pérdidas
misteriosas" de memoria y punteros descontrolados son
especialmente temibles).
53
Gravedad de los errores

Errores fatales ("Errors"): Son errores graves, el proceso no
puede continuar y es detenido después de mostrar la información
pertinente.

Advertencias ("Warnings"): No son errores graves pero si
circunstancias sospechosas o inusuales de las que el compilador
entiende que merecen una advertencia por si es algo que se nos ha
escapado inadvertidamente (por ejemplo: una variable declarada
que no se utiliza para nada más). En estos casos, el proceso
continua y si no hay errores graves se construye un ejecutable.

En todos los casos el aviso incluye indicación del archivo
("fuente" .C/.CPP), el número de línea, y el nombre de la función
donde se produce el error, así como una explicación más o menos
clara de su motivo.
54
Máquinas virtuales
Java y .net



Los programas interpretados o compilados tienen distintas ventajas e
inconvenientes. En un intento de combinar lo mejor de ambos mundos,
durante la década de los 90 surge con fuerza el enfoque de máquina
virtual. La solución consiste en que se define una máquina teórica o
‘máquina virtual’ con su propio “lenguaje máquina”.
Los principales lenguajes de esta tecnología son, por un lado, el lenguaje
Java de Oracle (creado por Sun Microsystems), y por otro, los lenguajes de
la plataforma .NET de Microsoft: Visual Basic y C#.
La filosofía de la máquina virtual es la siguiente:



El código fuente se compila, detectando los errores sintácticos, y se genera una
especie de ejecutable, con un código máquina dirigido a una CPU imaginaria.
A esta especie de código máquina se le denomina código intermedio, lenguaje
intermedio, p-code, o byte-code .
Como esa CPU imaginaria no existe, para poder ejecutar ese ejecutable, se
construye un intérprete. Este intérprete es capaz de leer cada una de las
instrucciones de código máquina imaginario y ejecutarlas en una CPU real. A
este intérprete se le denomina máquina virtual.
55
Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños
Ejemplo

Suponga que se escribe un programa en lenguaje JAVA y que se tienen dos
ordenadores:







CPU Pentium y sistema operativo Windows.
CPU Sparc y sistema operativo Solaris
En el primer ordenador se instala un compilador de Java y una máquina virtual de
Java específicos para Windows+Pentium.
En el segundo se instala un compilador y máquina virtual específicos para
Solaris+Sparc.
Se confecciona un programa sencillo escrito en Java en el primer ordenador y se
compila, generando un ejecutable intermedio.
Se puede utilizar la máquina virtual del primer ordenador para ejecutar ese código
intermedio, o se puede coger ese ejecutable intermedio y llevarlo a la máquina con
Solaris+Sparc, para ejecutarlo, y se tendrá exactamente el mismo resultado.
Este sistema es también utilizado por los juegos Java de los teléfonos móviles o las
PDA. Distintas marcas de teléfonos móviles son capaces de ejecutar el mismo
juego, aun cuando cada teléfono tiene una CPU y un sistema operativo distinto.
56
Ventajas de la máquina virtual


Portabilidad: El código intermedio ya está libre de errores
sintácticos, y es un código muy sencillo (al estilo del código
máquina). Si existe un intérprete para este código en distintas
plataformas, el mismo código se puede ejecutar en cada una de ellas.
Además, la construcción de este intérprete será relativamente
sencilla y su ejecución más rápida, ya que no ha de comprobar la
sintaxis.
Estabilidad: El código intermedio no es ejecutado por una CPU real
directamente, sino por una CPU virtual: la máquina virtual. Esto
permite un mayor control sobre este código, facilitando la labor de
impedir que un código descontrolado afecte a la estabilidad de la
plataforma real.
57
Compilar
-Genera un ejecutable
Interpretar
-No genera un ejecutable
Máquina virtual
-Genera una especie de
ejecutable, pero portable entre
plataformas, dirigido a una CPU
imaginaria.
-El proceso de traducción se realiza -El proceso de traducción se realiza -Se realiza una sola traducción a
una sola vez
en cada ejecución
código intermedio, y una
interpretación muy rápida del
código intermedio en cada
ejecución.
-La ejecución es muy rápida debido -La ejecución es más lenta, ya que -La ejecución no es tan rápida
a que el programa ya ha sido
para cada línea del programa es
como en la compilación
traducido a código máquina
necesario realizar la traducción
tradicional ni tan lenta como en
la intepretación.
-El ejecutable va dirigido a una
-No hay ejecutable, así que si existe -El ejecutable va dirigido a una
plataforma concreta (una CPU, un un intérprete para una plataforma CPU imaginaria. Se puede
sistema operativo, y quizá alguna concreta, el programa se podrá
transportar a una plataforma
otra consideración), siendo
ejecutar en ambas. Típicamente, los para la cual exista una "máquina
prácticamente imposible portarlo a programas interpretados son
virtual" (el intérprete de código
otra.
mucho más portables que los
intermedio)
compilados,.
-Una vez compilado el programa, el -El código fuente es necesario en -El código fuente no es necesario
código fuente no es necesario para cada ejecución, así que no puede
para la ejecución, sólo el código
ejecutarlo, así que puede
permanecer en secreto
intermedio.
permanecer en secreto si se desea.
-Los errores sintácticos se detectan -Los errores sintácticos se detectan -Los errores sintácticos se
durante la compilación. Si el fuente durante la ejecución, ya que
detectan durante la compilación.
contiene errores sintácticos, el
traducción y ejecución se van
compilador no producirá un
haciendo simultáneamente.
58
ejecutable.
Entornos integrados de desarrollo
(IDE)

Un ambiente de desarrollo integrado, en inglés
Integrated Development Environment (IDE),



aplicación que proporciona servicios integrales para facilitarle al
programador el desarrollo de software.
proveen un marco de trabajo amigable para la mayoría de los
lenguajes de programación tales como C++, Phyton, Java, C#,
Delphi, Visual Basic, etc.
Hoy día mediante entornos gráficos integrados de
desarrollo se unifican, en un único entorno amigable,
todas las funciones asociadas al desarrollo de programas:
editor de código, un compilador, un depurador y un
constructor de interfaz gráfica (GUI).
59
Entornos integrados de desarrollo
(IDE)


En los entornos de desarrollo tradicionales (por ejemplo,
desarrollo en lenguaje C sobre UNIX) el código fuente se
generaba mediante un editor de textos de propósito
general. Luego, y en línea de comandos, se invocaba al
compilador con todos sus parámetros y al denominado
cargador/enlazador.
Algunos IDE’s soportan múltiples lenguajes, tales como
Eclipse, Visual o NetBeans, ambas basadas en Java o
MonoDevelop, basado en C#. El soporte para lenguajes
alternativos es a menudo proporcionada por plugins, que
les permite ser instalado en el mismo IDE al mismo
tiempo. Por ejemplo, Eclipse y NetBeans tiene plugins para
C / C + + , Ada , Perl , Python , Ruby y PHP , entre otros
lenguajes
60
Code Block
Code::Blocks es un entorno de desarrollo integrado libre, de código
abierto y multiplataforma para el desarrollo de programas en lenguaje
C y C++.
61
Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños
NetBeans IDE




NetBeans comenzó como un proyecto estudiantil en Republica
Checa (originalmente llamado Xelfi), en 1996 bajo la tutoría de la
Facultad de Matemáticas y Física en la Universidad Carolina en
Praga. La meta era escribir un entorno de desarrollo integrado (IDE)
para Java parecida a la de Delphi
Es un entorno de desarrollo - una herramienta para que los
programadores puedan escribir, compilar, depurar y ejecutar
programas.
Está escrito en Java - pero puede servir para cualquier otro lenguaje
de programación. Existe además un número importante de módulos
para extender el NetBeans IDE.
NetBeans IDE es un producto libre y gratuito sin restricciones de
uso.
62
Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños
Microsoft Visual Studio



Es un entorno de desarrollo integrado (IDE, por sus siglas en inglés)
para sistemas operativos Windows. Soporta varios lenguajes de
programación tales como Visual C++, Visual C#, Visual J#, ASP.NET
y Visual Basic .NET, aunque actualmente se han desarrollado las
extensiones necesarias para muchos otros.
Visual Studio permite a los desarrolladores crear aplicaciones, sitios y
aplicaciones web, así como servicios web en cualquier entorno que
soporte la plataforma .NET.
Se pueden crear aplicaciones que se intercomuniquen entre estaciones
de trabajo, páginas web y dispositivos móviles.
63
Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños
Microsoft Visual C++



Es uno de los más famosos entornos de desarrollo visuales para
programar en C++.
Permite agregar toda clase de objetos gráficos a la interfaz, como
botones, cuadros de texto, cronómetros, imágenes, etiquetas,
puertos, etc.
Se puede utilizar la última versión de SQL Server Express, con el fin
de visualizar y gestionar una base de datos desde la interfaz gráfica
del programa.
64
Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños
ZinjaI



Es un IDE libre y gratuito para programar en C/C++.
Para ser utilizado por estudiantes de programación
durante el aprendizaje. Con énfasis en depurado de
programas como un recurso educativo.
Interfaz inicial sencilla, con funcionalidades avanzadas
que permiten el desarrollo de proyectos tan complejos
como el propio ZinjaI.
65
Los diferentes logos presentes en esta página pertenecen a sus respectivos dueños
Paradigmas de programación


Representa un enfoque
particular o filosofía para la
construcción del software
Indican las diversas formas
que, a lo largo de la evolución
de los lenguajes, han sido
aceptadas como estilos para
programar y para resolver los
problemas por medio de una
computadora
Imágenes en esta diapositiva son de dominio público
66
Paradigmas de programación




Paradigma estructurado: Básicamente el código se divide en bloques,
estructuras, que pueden o no comunicarse entre si. Este software se controla
con secuencia, selección e interacción. Otorga una mejor comprensión del
código y permite su reutilización de una forma mas fácil.
Paradigma orientado a Objetos: Este tipo de programación posee como
idea principal encapsular estado y operaciones en objetos. Estos objetos
pueden comunicarse entre sí, poseen clases y herencia. Se puede destacar
como ventaja la facilidad de reutilización de código. Ejemplos de algunos
lenguajes orientados a objetos son: Simula, Smalltalk, C++ y Java.
Paradigma funcional: Este tipo de paradigma demuestra un tipo de
programación en forma de funciones matemáticas. Los lenguajes puramente
funcionales evitan efectos secundarios que pueden ser comunes en otros tipos
de paradigmas. Está representado por Scheme.
Paradigma lógico: Se definen reglas lógicas que luego a traves de un motor
de inferencias lógicas, resolver problemas planteados por el sistema. Está
representado por Prolog.
67
Referencias









http://itesocci.gdl.iteso.mx/~ia27563/basico.htm
http://members.xoom.com/mcruz/index-0.html
http://www.pegasosoft.com/curso/introduccion.htm
http://www.infosistemas.com.mx/soto10.htm
http://www.euitt.upm.es/java/cursojava/1_Intro/1.3_OOP/oop.ht
m
http://www.fciencias.unam.mx/revista/temas/contenido.html
http://www.monografias.com
Enciclopedia Microsoft® Encarta® 98 © 1993-1997 Microsoft
Corporation. Reservados todos los derechos.
Gaitán Rivera, Jorge Romeo. 1er. Semestre de Ingeniería
Electrónica.
68
Referencias
Lenguajes, compiladores e intérpretes
http://igrgavilan.iespana.es/doc/MA_20070506_MT_Len
guajes.pdf

Compiladores e intérpretes. Introducción
http://www.angelfire.com/linux/eotto/comp_clase1.pdf
webdelprofesor.ula.ve/forestal/mariaq/archivos_guias.../T
ema1.ppt

69
Descargar