PROGRAMACIÓN
OTOÑO’2006
1. INTRODUCCIÓN A LA
PROGRAMACIÓN
1.1 ALGORITMOS, PROGRAMAS Y
PROGRAMACIÓN
• Un ALGORITMO es una secuencia
ordenada, finita e inequívoca de pasos a
seguir para resolver un determinado
problema.
Paso 1
Inicio
Paso 2
Paso 3
Fin
Inicio
numOculto10
Escribir(“Adivina Numero: ”)
Leer(numUsuario)
Si numUsuario=numOculto entonces
Escribir(“Ganaste !!”)
sino
Escribir(“Perdiste!”)
fin_si
Fin
• Un algoritmo debe ser expresado en forma
de un PROGRAMA de computadora, el cual
consiste de un conjunto de instrucciones
que la computadora pueda entender y
posteriormente ejecutar
#include <stdio.h>
int numOculto=10;
main() {
int numUsuario;
}
printf(“\nAdivina numero:”);
scanf(“%d”, numUsuario);
if (numUsuario==numOculto)
printf(“Ganaste!!”);
else
printf(“Perdiste!”);
• Un LENGUAJE DE PROGRAMACION es
el medio nos permite escribir un programa
Ejemplos: Ensamblador, Ada, Modula,
Pascal, Smalltalk, C, Java, Haskell, ML, Lisp
• A la actividad de expresar un algoritmo en
forma de programa se le denomina
PROGRAMACION.
• A los programas se les denomina empleando
el término de SOFTWARE
• y al equipo físico se le denomina usando el
término de HARDWARE
• En el caso de programas que están
destinados a alguna aplicación específica se
les conoce como PAQUETES DE
APLICACIONES como Excel, Word,
Mathematica, Matlab, etc. Sin embargo,
cuando se desea hacer algo para lo cual no
existe un paquete, uno tiene que escribir
sus propios programas para resolver su
problema.
• SOFTWARE DEL SISTEMA son los
programas encargados de proporcionar
servicios vitales para que un usuario pueda
interactuar con un sistema de cómputo; de
los cuales uno de más importantes es el
SISTEMA OPERATIVO
• El SISTEMA OPERATIVO es un conjunto
de programas que nos facilitan el uso de los
recursos de la máquina. Por ejemplo:
• WindowsXP
Condor
• Unix
Novell Netware
• Linux
Amoeba
• QNX
Sprite
1.2 COMPONENTES DE UNA
COMPUTADORA TIPICA
Unidad de Control
Procesador Central
(CPU Central
Processor Unit)
Unidad Aritmética
Lógica (ALU)
Ejemplo: Intel, Motorola
Dispositivos de E/S
Memoria
Memoria interna (Memoria principal)
ROM (Read Only Memory),
PROM (Programmable Read Only Memory),
RAM (Random Access Memory)
Memoria secundaria (Memoria externa)
1.3 Lenguajes de Programación
y Traductores
LENGUAJE DE PROGRAMACIÓN es
un conjunto de símbolos, junto con un
conjunto de reglas para combinar
dichos símbolos que se usan para
expresar programas.
Se componen de:
• léxico. P/E Alfabeto={a,b,c,d, . , “,”, +, -}
• sintaxis. P/E Después de una a siempre va
una b.
• Semántica. P/E ‘+’ significa unir dos
cadenas.
Para que una computadora pueda ejecutar un
programa escrito en un determinado
lenguaje de programación, éste debe ser
traducido a un lenguaje que la computadora
entienda, el LENGUAJE DE MAQUINA.
1001010100011011
1111000111000100
Ventajas:
Programas muy eficientes en cuanto a tiempo
de ejecución y uso de memoria
Desventajas:
Resulta muy difícil programar en él.
Clasificación de los lenguajes de programación
a) De acuerdo a la proximidad del lenguaje con
la máquina o con el lenguaje natural:
•
Lenguajes de bajo nivel: Lenguajes de
máquina.
•
Lenguajes de nivel medio: Ensambladores y
Macroensambladores.
• Lenguajes de alto nivel, como Pascal,
Fortran, C, C++, Lisp, Basic, Prolog, etc.
b) Por el tipo de problemas que nos permiten
resolver con más facilidad:
• Aplicaciones científicas, en donde
predominan operaciones numéricas propias
de algoritmos numéricos. P/E Fortran y
Pascal.
• Procesamiento de datos, como COBOL y
SQL.
• Tratamiento de textos como C.
• Inteligencia artificial, como aplicaciones
en sistemas expertos, juegos y visión
artificial. P/E LISP y PROLOG.
• Programación de Sistemas: Software que
permite la interfaz entre el hardware y el
usuario. P/E ADA, MODULA-2 y C
c) Por el estilo de programación que fomentan:
• Lenguajes imperativos o procedurales.
Establecen cómo debe ejecutarse una tarea,
dividiéndola en partes y especificando las
subtareas asociadas. La mayoría de los
lenguajes de alto nivel son de este tipo:
Fortran, Pascal, Basic, etc.
• Declarativos. Los programas se construyen
mediante descripciones de funciones o
expresiones lógicas que indican las relaciones
entre determinadas estructuras de datos
(PROLOG).
• Lenguajes orientados a Objetos. Se
centran más en los datos y su estructura.
Un programa consiste de descripciones de
unidades denominadas objetos que
encapsulan a los datos y las operaciones
que actúan sobre ellos (C++).
• Lenguajes orientados al problema.
Diseñados para problemas específicos. Son
generadores de aplicaciones que permitan
automatizar la tarea de desarrollo de
software de aplicaciones.
Cuando se asocia un mnemónico a una
instrucción de máquina, tenemos lo que se
conoce como LENGUAJE ENSAMBLADOR.
Además se permite el uso de comentarios y
direccionamiento simbólico.
• ENSAMBLADOR programa que traduce las
instrucciones en lenguaje ensamblador a
lenguaje de máquina.
programa fuente
Ensamblador
programa objeto
Características:
• Conjunto de instrucciones reducido y
rígido.
• No hay portabilidad ya que hay una fuerte
dependencia con el hardware de la
computadora.
• Permite el uso óptimo de los recursos de la
máquina.
Se llaman MACROINSTRUCCIONES ( o
MACROS) a las abreviaturas para un grupo
de instrucciones. Una sola instrucción
representa un bloque de código.
MACROENSAMBLADOR es un programa que
traduce un lenguaje de macroinstrucciones
a lenguaje de máquina.
COMPILADORES es un programa que acepta
un programa fuente en un lenguaje de alto
nivel y produce su correspondiente
programa objeto.
Algunos compiladores traducen sólo
programas completos, mientras que otros
traducen partes de un programa
(MODULOS ).
LIGADOR programa que une los módulos
traducidos, en un sólo programa.
INTERPRETE es un programa que traduce
programas escritos en un lenguaje de alto
nivel a lenguaje de máquina; sin embargo,
en este caso no existe independencia entre
la fase de traducción y la de ejecución.
CARGADOR es un programa que carga un
programa objeto a memoria principal y lo
prepara para su ejecución.
1.4 Sistemas Operativos
SISTEMA OPERATIVO es un conjunto de
programas que permiten utilizar los
recursos de la máquina. Esto es, sirve como
un enlace entre el hardware y el usuario.
• Sistemas operativos de red
• Sistemas operativos distribuidos
Un sistema operativo debe ser:
1. Eficiente, debe realizar sus funciones de
forma rápida.
2. Fiable, ya que un fallo de él, puede causar
que el sistema se ''caiga''.
3. Deben ser de tamaño pequeño.
Un sistema operativo debe contar con
programas de apoyo que permitan realizar
operaciones como:
a) Editar
b) Transferir información
c) Ejecutar programas
Categorías de sistemas operativos:
1. Sistemas
operativos
monousuario
y
monotarea
2. Sistemas operativos multitarea
3. Sistemas operativos multiusuario
4. Sistemas operativos para multiprocesador
(multiproceso).
Descargar

Acetatos primera parte (-