2. Conceptos Básicos
Cuando hablamos de informática hacemos
referencia a una amplia extensión de áreas y
especialidades. Por lo que vamos a enfocarnos en
el área de Algoritmo y Programación, para ello es
necesario tener unas bases principales.
Inicialmente debemos tener claro la metodología
de la programación, gracias a esta podemos dar
soluciones informática a determinados problemas
de la vida cotidiana.
Joaquin Lara Sierra
3. Periféricos
Un computador es capaz de ejecutar ordenes y realizar
operaciones básicas (sumar, restar, multiplicar, dividir valores
numéricos. Almacenar o recuperar información). Su capacidad
y potencia depende de la eficacia, fiabilidad, rapidez y
precisión así como de la memoria disponible.
Pero siempre para el desarrollo de estas tareas existirá esa
estrecha dependencia de la maquina - hombre. Sin esta la
maquina solo es una herramienta carente de utilidad, pues es el
hombre quien marca las pautas para su correcto
funcionamiento a través de la lógica y el razonamiento.
En definitiva un computador solo es capaz de aceptar datos de
entrada, procesarlos y facilitar datos o resultados de salidas
Joaquin Lara Sierra
4. Clasificación
Periféricos de entrada. Capaces de suministrar datos y ordenes a un
sistema desde el mundo exterior. Ejemplo de este tipo de periféricos
tenemos el teclado, el mouse entre otros.
Periféricos de salida. Encargados de procesar al exterior los resultados
obtenidos en procesos u operaciones realizadas por la unidad central de
proceso. Entre estos tenemos la pantalla del computador, impresoras. etc.
Periféricos de entrada y salida. Capaces de introducir como extraer
información de la CPU. Los mas conocidos el disco y la cinta magnética
Periféricos de comunicación con otro sistema físico. Encargados de
facilitar el intercambio de información entre un computador y un
determinado sistema externo con el objeto de supervisarlo y controlarlo.
Ejemplos: Sistemas de lecturas analógicas, sistemas de accionamiento
analógicos.
Periféricos de comunicación con otro ordenador. Son aquellos
encargados de establecer y facilitar el intercambio de información entre
dos o mas computadores por ejemplo un modem.
Joaquin Lara Sierra
5. Evolución y clasificación de
lenguajes
Un lenguaje de programación es una notación o conjunto de
símbolos y caracteres combinados entre sí de acuerdo con una
sintaxis ya definida para posibilitar la transmisión de
instrucciones a la CPU.
Estos símbolos o caracteres son traducidos a un conjunto de
señales eléctricas representadas en código binario (0 y1). La
razón de convertir esos símbolos y caracteres a 0 y 1´s se debe a
que el microprocesador1 sólo entiende un lenguaje, que es el
código binario o código de maquina.
Joaquin Lara Sierra
6. Lenguaje de Bajo Nivel.
Aquellos que por sus características se encuentran mas próximo a la
arquitectura de la máquina. Ejemplos: El lenguaje de máquina y el lenguaje
ensamblador.
Lenguaje de maquina. Todos aquellos problemas a los que se pretende
dar una solución informática se plantean en el ámbito de expresión de
algún lenguaje natural y para dicha solución (mediante órdenes o
instrucciones) pueda ser entendida por un computador, debe ser traducida
a un lenguaje denominado lenguaje de maquina. Se caracteriza por:
Ser considerado el primer lenguaje de programación.
Ser el único lenguaje inteligible2 directamente por un
computador.
Basarse en la combinación de dos únicos símbolos (el uno y el
cero) denominados bit (binary digit)
Ser propio de un determinado procesado, es decir, que cada
procesador tiene su propio y particular lenguaje de máquina
que no podrá ser entendido por cualquier otro.
Joaquin Lara Sierra
7. Lenguaje de Bajo Nivel.
Lenguaje ensamblador. Surge como sustituto del lenguaje maquina y
está basado en el uso de memotécnicos3 .La programación de
ensamblador precisa de un amplio conocimiento sobre la constitución,
estructura y funcionamiento interno de un ordenador, asi como un hábil
manejo de los códigos y sistemas de numeración, en especial el binarios y
el hexadecimal. Se caracterizan por:
Ejecutarse mas rápidamente que si hubieran sido desarrollados en un lenguaje de alto
nivel.
Ocupar mucho menos espacio en memoria.
Facilitar el trabajo a la hora de desarrollar programas que controlen periféricos o
dispositivos E/S, simulen movimientos, generen sonidos, etc.
Aportan mayor velocidad de operación y que el código fuente sea ensamblado
directamente a lenguaje de maquina.
Generar programas más largos que los desarrollados en lenguaje de alto nivel.
No ser transportable; es decir , un programa escrito para un microprocesador concreto
no funcionará con un microprocesador diferente.
Ser el lenguaje de programación más difícil de escribir y depurar, lo que dificulta la
verificación, corrección y modificación de los mismo.
Joaquin Lara Sierra
8. Lenguajes de Alto Nivel
Son aquellos lenguajes que por sus características se encuentran
más próximos al usuario o programador y se consideran como
tales el resto de los lenguajes de programación como por
ejemplo: C, Pascal etc.
Una de las características mas importante de estos lenguajes es
que, a diferencia de los lenguajes de bajo nivel, son
independientes de la arquitectura del computador utilizado como
soporte, lo que implica que los programas desarrollados en
lenguajes de alto nivel puedan ser ejecutados sobre ordenadores
con distintos microprocesador. Esto hace que el programador no
necesite amplios conocimientos sobre el funcionamiento interno
del ordenador para el que está programando. Por otro lado , cabe
destacar una mayor facilidad en el desarrollo, depuración y
mantenimiento de los programas frente a los desarrollados con
lenguaje de bajo nivel.
Joaquin Lara Sierra
9. Fases de elaboración de un
programa
El desarrollo de una aplicación o conjunto de programas para
obtener solución informática a un determinado problema se basa
en un concepto denominado ciclo de vida, que en su aspecto
clásico estableces una serie de etapas o fases que hay que seguir
secuencialmente y de forma ordenada cuando se desea desarrollar
un determinado producto de software.
Análisis
Diseño
Codificación o construcción
Explotación
Mantenimiento
Joaquin Lara Sierra
11. Análisis
En esta fase se establece cuál es el producto a desarrollar,
siendo necesario especificar los procesos y estructuras de
datos que se van a emplear, para satisfacer las necesidades
del usuario, por lo que debe existir una gran comunicación
entre el usuario y el analista para conocer todas las
necesidades y restricciones en el desarrollo de la aplicación.
En aquellos casos en los que exista ambigüedad o falta de
información por parte del usuario, puede ser necesario el
desarrollo de prototipos que sirvan para definir con
precisión sus requerimientos.
Regresar
Joaquin Lara Sierra
12. Diseño
En esta fase se alcanza una solución óptima, detallada y con la
mayor precisión posible para el desarrollo de la aplicación,
teniendo en cuenta los recursos físicos del sistema (tipo de
ordenador, periféricos, comunicaciones, etc) y los recursos lógicos
(sistema operativo, programas de utilidad, compiladores, bases de
datos).
Para la representación de los algoritmos diseñados, se pueden
emplear organigramas, ordinogramas, notación pseudo codificada
y tablas de decisión
Con la finalización de esta etapa se obtiene como documentación
el denominado cuaderno de carga
Regresar
Joaquin Lara Sierra
13. Codificación o construcción
Consiste en la traducción de la solución obtenida a un
determinado lenguaje de programación, basándonos en las
especificaciones de diseño expresadas en el cuaderno de
carga, dando como resultados unas instrucciones ejecutables
por el computador. Así mismo, se deberán realizar las pruebas
necesarias para depurar errores y verificar la calidad de los
programas.
Regresar
Joaquin Lara Sierra
14. Explotación
En esta fase se realiza la implantación de los programas
(aplicación) en el entorno operativo o sistema físico donde van
a funcionar habitualmente y su puesta en marcha para obtener
un funcionamiento normal de todo sistema.
Las actividades que se pueden realizar son, la instalación de los
programas, pruebas globales de aceptación del sistema,
conversión de la información del sistema anterior al nuevo
sistema y la eliminación del sistema anterior.
En esta fase se debe completar la formación con respecto al
sistema y el uso de la aplicación por parte del usuario así como
la documentación necesaria para la explotación del sistema y el
manual de uso o guía de la aplicación.
Regresar
Joaquin Lara Sierra
15. Mantenimiento
Esta fase completa el ciclo de vida y en ella se realizan las
correcciones necesarias para subsanar errores y deficiencias
del producto desarrollados, existiendo la posibilidad de
ciertas acciones de esta fase puedan reiniciar el ciclo de
vida.
El tiempo invertido en la actividad de mantenimiento , está
basado en un desarrollo correcto y documentado de las fases
anteriores del ciclo de vida.
Regresar Continuar
Joaquin Lara Sierra
16. Ensambladores, compiladores e
intérpretes
Cuando programamos en un lenguaje diferente al lenguaje de
maquina, los programas diseñados deben ser traducidos a
código binario, para que así las instrucciones especificadas
en ellos puedan ser entendidas y ejecutadas por la CPU.
El sistema o programa de software encargado de traducir
estos programas (denominados también programas fuentes)
puede ser un ensamblador, intérprete o compilador; También
reciben el nombre de traductores del lenguaje. Como tarea
previa a un proceso de traducción, se comprueba que el
programa fuente está correctamente escrito de acuerdo con la
definición del lenguaje de programa utilizado.
Joaquin Lara Sierra
17. Ensambladores, compiladores e
intérpretes
Ensambladores. Se encargan de transformar o traducir
directamente los programas escritos en ensamblador a su
equivalente en código máquina o código binario para que
puedan ser ejecutados por la CPU.
Intérpretes. Se encargan de procesar y traducir cada
instrucción o sentencia de un programa escrito en un
lenguaje de alto nivel a código maquina y después ejecutarla.
(Es decir el microprocesador ejecuta la orden o instrucción
una vez traducida y después de comprobar que no existe
error alguno de sintaxis).
Joaquin Lara Sierra
18. Ensambladores, compiladores e
intérpretes
Compiladores. Un compilador es un programa de software
escrito en algún lenguaje de programación cuyo objetivo es
traducir el correspondiente programa fuente (Ficheros
constituidos por un conjunto de instrucciones desarrolladas
en un lenguaje de alto nivel ) a su equivalente en código de
maquina, también denominado programa objeto.
Joaquin Lara Sierra
19. Etapas del proceso de compilación:
Edición. Consiste en la escritura del programa (empleando un
lenguaje de programación previamente seleccionado) y su
posterior grabación sobre un soporte de almacenamiento
permanente (por ejemplo, en un disco). La edición del programa
debe realizarse mediante la utilización de un editor, que puede
formar parte o no del compilador utilizado. En esta fase se
obtiene el denominado programa fuente.
Compilación. En esta fase se traduce el programa fuente a su
equivalente en código máquina, obteniendo en caso de no
producirse ningún error el denominado programa objeto. En
caso de producirse errores, el compilador los mostrará
utilizando los mensajes correspondientes, que nos permitirán
corregir el programa fuente y proceder de nuevo a su
compilación.
Joaquin Lara Sierra
20. Etapas del proceso de compilación:
Linkado. Esta fase también recibe el nombre de montaje y
consiste en unir o enlazar el programa objeto obteniendo en la
fase de compilación con determinadas rutinas internas del
lenguaje y, si el método de programación es modular, se
enlazan los distintos módulos para obtener así el programa
ejecutable.
Ejecución. Esta fase consiste en la llamada del programa
ejecutable a través del sistema operativo. Inicialmente se debe
comprobar el buen funcionamiento del programa mediante el
uso de unos juegos de pruebas que especifican los resultados
que se desean obtener en función de unos determinados datos de
entrada.
Joaquin Lara Sierra
21. Los principales errores en la
ejecución de un programa son:
Datos de entradas incorrectos que producen una parada del
sistema (por ejemplo, introducir un dividendo con valor
cero en una operación de división)
Bucles mal definidos que producen un funcionamiento
continuo del programa (por ejemplo, un bucle sin fin o
bucle infinito).
Datos de salida incorrectos, producidos por un mal
desarrollo del programa o ambigüedad en las
especificaciones del usuario.
Joaquin Lara Sierra