Algoritmos & Programacion - I - Introduccion A La Computacion

También podría gustarte

Está en la página 1de 18

ALGORITMOS y

PROGRAMACIN 75.40

Algoritmos y Programacin I
Clase Terica N 1
Introduccin a la Computacin
Autores : Ings. Cataldi - Lage

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.
Prof.

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

INTRODUCCIN - DEFINICIONES
DATO, PROCESO E INFORMACIN
Dato e informacin son dos trminos que suelen confundirse. Se consideran datos a toda
entrada de informacin a una computadora. Estos datos pueden ser administrativos, cientficos,
comerciales, etc. son elementos primitivos, de los cuales a travs del procesamiento se obtiene la
informacin.
La computadora se utiliza para procesar en forma automtica y a gran velocidad esos datos.
Como resultado del procesamiento de esos datos se obtiene la informacin deseada, la cual ser
til en la toma de decisiones.
DATO

PROCESO

INFORMACIN

SISTEMA
Un sistema es un conjunto de componentes relacionados que interactan para realizar
una tarea. Un sistema de informtica est compuesto por el Hardware (CPU, dispositivos
perifricos) y el Software (sistema operativo y los programas). El software de un sistema de
informacin est formado por los datos, los programas de ingreso, actualizacin e informe de
resultados y los procedimientos manuales y por mquina.
ESTRUCTURA DE UNA COMPUTADORA
Una PC es una computadora personal, originalmente diseada para servir a un slo
usuario. Sale al mercado en 1981 y va evolucionando en capacidad y velocidad, adems su costo
se va reduciendo. Existen diferentes configuraciones para adecuarse a la mltiples necesidades de
los usuarios.
La informtica es la ciencia que estudia el tratamiento, elaboracin , transmisin y utilizacin
de la informacin. Es una ciencia porque constituye un conjunto de conocimientos de validez
universal y porque utiliza el mtodo cientfico para el logro de sus objetivos.
Se denomina HARDWARE (ferretera) a todos los componentes electrnicos y mecnicos, es
decir fsicos de una computadora.
Se denomina SOFTWARE al conjunto de programas o procedimientos que determinan las
acciones de la mquina, es todo lo concerniente a la programacin.
Las computadoras estn estructuradas segn un modelo bsico de funcionamiento que
describe la interaccin que se realiza entre los elementos que la componen. Este modelo es:

Pgina 1 de 18

ALGORITMOS y
PROGRAMACIN 75.40

Algoritmos y Programacin I
Clase Terica N 1

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.
Prof.

Introduccin a la Computacin
Autores : Ings. Cataldi - Lage

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

MONITOR

MOUSE

CPU

IMPRESORA

SCANNER

TECLADO

MDEM

UNIDADES
Las unidades son las partes fsicas que componen nuestro ordenador, y se clasifican en
unidades de entradasalida (E/S) denominadas perifricos, y la unidad de proceso (UCP o CPU).
Adems de las unidades encontramos los soportes, que son elementos externos al ordenador, no
imprescindibles para su funcionamiento, pero necesarios para el almacenamiento de la informacin.
Unidades E/S
Las unidades de entradasalida son aquellos elementos del hardware que fueron diseados
para el ingreso y egreso de los datos. Existen unidades cuya tarea especfica es el ingreso de
datos, otras que solo sirven para el egreso de la informacin, y hay un tercer grupo que puede
cumplir con ambas funciones.

Entrada

Teclado
Mouse o Ratn, TrackBall, Cat
Scanner
Lectora de barras
Lpiz ptico
Lectora de CD-ROM (DVD)
Micrfono
Monitor
Sistema de vdeo

Unidades de
EntradaSalida

Placa de vdeo
Salida

Impresora
Plotter
Parlante
Placa de audio
Sistema de audio
Parlantes

E/S

Modem
Disqueteras
Grabadora/Reproductora de CD
Integer
Pantallas tctiles

Pgina 2 de 18

ALGORITMOS y
PROGRAMACIN 75.40

Algoritmos y Programacin I
Clase Terica N 1
Introduccin a la Computacin
Autores : Ings. Cataldi - Lage

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.
Prof.

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

Soportes de la informacin
Los soportes de la informacin son medios fsicos de almacenamiento de informacin. Ellos
pueden ser clasificados como:
Papel: es el soporte ms antiguo de informacin que an sigue en uso. Listados
Magnticos: son aquellos medios que estn basados en las propiedades magnticas para el
registro de la informacin. La mayora de los mismos son usados como elemento de
almacenamiento masivo.

Cintas de carrete abierto de 1/2" de ancho.


Cintas de vdeo (casete denominado super 8)
Disquetes
Cintas en tarjetas plsticas

Medios pticos: estn basados en la capacidad de poder o no reflejar la luz emitida por un
determinado elemento (emisor)
CD-ROM.
DVD (Digital Vdeo Disk o Digital Versatil Disk
El Disco Rgido es difcil de catalogar ya que es un sistema en s mismo, y posee una unidad
de entrada/salida que son las cabezas lectoras-grabadoras y un soporte que son los
discos propiamente dicho. Alguno de ellos vienen con una pequea pero completa
unidad de proceso.
LA UNIDAD CENTRAL DE PROCESO Y EL PROCESADOR
La unidad central de proceso UCP es el verdadero cerebro de la computadora; su misin
consiste en coordinar y controlar o realizar todas Las operaciones del sistema. Se compone de
elementos cuya naturaleza es exclusivamente electrnica (circuitos).
Sus partes principales son Las siguientes:
El Procesador (P). Que a su vez se compone de:
La unidad de control (UC).
La unidad aritmticolgica (UAL).
La Memoria Central (MC).
La unidad central de proceso tambin incorpora un cierto nmero de registros rpidos
(pequeas unidades de memoria) de propsito especial, que son utilizados internamente por la
misma.
Una aproximacin a diseo interno de un microprocesador es el siguiente

Pgina 3 de 18

ALGORITMOS y
PROGRAMACIN 75.40

Algoritmos y Programacin I
Clase Terica N 1
Introduccin a la Computacin
Autores : Ings. Cataldi - Lage

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.
Prof.

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

Figura 1
Como vemos en el esquema 1, la unidad de control y la unidad aritmticolgica constituyen
lo que se ha venido a denominar el procesador central del sistema; este elemento es parte de la
unidad central de proceso encargada del control y ejecucin de las operaciones del sistema. Estos
elementos en un ordenador personal se encuentran integrados en un nico chip llamado
microprocesador. Las funciones principales de la UCP de un ordenador son:
Ejecutar las instrucciones de los programas almacenados en la memoria del
sistema.
Controlar la transferencia entre la UCP y la memoria o las unidades de E/S
Responder a las peticiones de servicio procedente de los perifricos.
Todo programa tiene como objetivo realizar diferentes funciones o aplicaciones, solo limitadas
por la capacidad e imaginacin del programador.
Para que un programa sea ejecutado el mismo se debe hallar en determinadas posiciones de
memoria y escrito en un lenguaje que la UCP pueda entender. La UCP lo nico que comprende es
lenguaje binario.
La UCP lee en forma ordenada la lista de instrucciones, luego las interpreta, y posteriormente
controla su ejecucin de cada una de ellas. Las ejecuciones se realizan en forma consecutiva una
tras otra.
Pgina 4 de 18

ALGORITMOS y
PROGRAMACIN 75.40

Algoritmos y Programacin I
Clase Terica N 1
Introduccin a la Computacin
Autores : Ings. Cataldi - Lage

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.
Prof.

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

Para ejecutar cada instruccin la UCP realiza la siguiente serie de pasos:


Lee de la memoria la instruccin que hay que ejecutar y la guarda en un
registro interior de la UCP.
Identifica la instruccin que acaba de leer
Comprueba si la instruccin necesita utilizar nuevos de memoria, si fuera as,
determina donde debe ir a buscarlos.
Busca los datos en la memoria y los trae en UCP.
Ejecuta la instruccin propiamente dicha.
El resultado de la misma puede ser que se almacene o invoque la necesidad
de tener que comunicarse con la memoria o con otro elemento externo a la
propia UCP.
Vuelve al primer paso para empezar una nueva instruccin.
La anterior es una lista simplificada de los pasos que ejecuta el microprocesador.
La ejecucin de cada instruccin implica el movimiento de datos, como estos pasos deben ser
se deben realizar en forma secuencial y ordenada, para lo cual la UCP siguen las seales dadas
por un reloj. El reloj es un elemento simple pero de gran importancia como se ver luego. Para una
mejor compresin del funcionamiento de la UCP, la misma se puede dividir en dos unidades la
unidad de control y la unidad aritmtico-lgica.
.
Unidad de control (UC)
La unidad de control (UC) es el centro nervioso de la computadora; desde ella se controla y
gobiernan todas las operaciones (bsqueda, decodificacin, y ejecucin de la instruccin). Para
realizar su funcin, consta de los siguientes elementos:

Registro de contador de programas (CP)


Registro de Instrucciones (RI)
Decodificador (D)
Reloj (R)
Generador de Seales o Secuenciador (S)

Registro de contador de programas (CP). Tambin denominado registro de control de


Secuencia (RCS), contiene permanentemente la direccin de memoria de la prxima instruccin a
ejecutar. Si la instruccin que se est ejecutando en un instante determinado es de salto o de
ruptura de secuencia, el RCS tomar la direccin de la instruccin que se tenga que ejecutar a
continuacin; esta direccin la extraer de la propia instruccin en curso.
Como ya se dijo el primer paso para la ejecucin de una instruccin, consiste en ir a buscarla
en memoria, el CP indica cual es la direccin de memoria donde se halla esa instruccin. Una vez
obtenida y antes de continuar con los siguientes pasos una seal de control incrementa el CP en
una unidad, por lo cual los programas deben estar escritos (cargados) en posiciones consecutivas
de memoria. El CP pasa la direccin al Registro de Direcciones
Registro de Direcciones (RD). Contiene la direccin de memoria donde se encuentra la
prxima instruccin y esta comunicado con el Bus de Direcciones. El tamao de este registro
determina el tamao de la memoria que puede direccionar.( Si es de 32 bits se puede direccionar
232=4.294.967296 (4 GB posiciones de memoria).
Con la direccin de memoria, se transfiere a travs el Bus de Datos desde la memoria central
al Registro de Datos en la UC la instruccin correspondiente. Esta transferencia se realiza mediante
Pgina 5 de 18

ALGORITMOS y
PROGRAMACIN 75.40

Algoritmos y Programacin I
Clase Terica N 1
Introduccin a la Computacin
Autores : Ings. Cataldi - Lage

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.
Prof.

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

seales de control. Una vez que la instruccin se encuentra en la UCP, el cdigo de la instruccin
pasa al registro de instrucciones.
Registro de Instrucciones (RI). Contiene la instruccin que se est ejecutando en cada
momento. Esta instruccin llevar consigo el cdigo de operacin (CO), accin de que se trata, y en
su caso los operandos o las direcciones de memoria de los mismos. Pasa el CO al decodificador.
Decodificador (D). Se encarga de extraer y analizar el cdigo de operacin de la instruccin
en curso (que est en el RI) y dar las seales necesarias al resto de los elementos para su
ejecucin por medio del Generador de Seales.
Generador de Seales(GS). En este dispositivo se generan rdenes muy elementales
(micrordenes) que, sincronizadas por los impulsos del reloj, hacen que se vaya ejecutando poco a
poco la instruccin que est cargada en el RI.
Reloj (R). Proporcionar una sucesin de impulsos elctricos a intervalos constantes
(frecuencia constante), que marcan los instantes en que han de comenzar los distintos pasos de
que consta cada instruccin.

Figura 2
Unidad aritmticolgica (UAL)
Esta unidad es la encargada de realizar las operaciones elementales de tipo aritmtico
(generalmente sumas o restas) y de tipo lgico (generalmente comparaciones). Para realizar su
funcin, consta de los siguientes elementos:

Banco de registros (BR).


Circuitos operadores (CIROP).
Registro de resultado (RR).
Sealizadores de estado (SE).

Pgina 6 de 18

ALGORITMOS y
PROGRAMACIN 75.40

Algoritmos y Programacin I
Clase Terica N 1
Introduccin a la Computacin
Autores : Ings. Cataldi - Lage

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.
Prof.

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

Banco de registros (BR). Est constituido por 8, 16 32 registros de tipo general que sirven
para situar dates antes de cada operacin, para almacenar datos intermedios en las operaciones y
para operaciones internas del procesador.
Circuitos operadores (CIROP). Compuesto de uno o varios circuitos electrnicos que
realizan operaciones elementales aritmticas y lgicas (sumador, complementador, desplazador,
etc).
Registro de resultado (RR). Se trata de un registro especial, en el que se depositan los
resultados que producen los circuitos operadores.
Sealizadores de estado (SE). Registro con un conjunto de biestables en los que se deja
constancia de algunas condiciones que se dieron en la ltima operacin realizada.

LA MEMORIA CENTRAL (MC)


Es la parte de la unidad central de proceso de una computadora donde estn almacenadas
las instrucciones y los datos necesarios para que un determinado proceso pueda ser realizado.
La memoria central est constituida por una multitud de celdas o posiciones de memoria,
numeradas de forma consecutiva, capaces de retener, mientras la computadora est conectada, la
informacin necesaria.
Por otra parte, es una memoria de acceso directo, es decir, puede accederse a una de sus
celdas conociendo su posicin. Para esta memoria el tiempo de acceso es ms corto que para Las
memorias auxiliares, por tanto, los datos que manejan los procesos deben residir en ella en el
momento de su ejecucin.
Es importante no confundir los trminos celda o posicin de memoria con el de palabra de
computadora, ya que esta ltima es el conjunto de posiciones de memoria que pueden introducirse
o extraerse de la memoria de una solo vez (simultneamente).

Pgina 7 de 18

ALGORITMOS y
PROGRAMACIN 75.40

Algoritmos y Programacin I
Clase Terica N 1
Introduccin a la Computacin
Autores : Ings. Cataldi - Lage

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.
Prof.

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

La memoria central tiene asociados dos registros para la realizacin de operaciones de lectura
o escritura, y un dispositivo encargado de seleccionar una celda de memoria en coda operacin de
acceso sobre la misma:

Registro de direccin de memoria (RDM)).


Registro de intercambio de memoria (RIM).
Selector de memoria (SM).

Registro de direccin de memoria (RDM). Contiene la direccin de memoria donde se


encuentran o va a ser almacenada la informacin (instruccin o dato), tanto si se trata de una
lectura como de una escritura de o en memoria central, respectivamente.
Registro de intercambio de memoria (RIM). Si se trata de una operacin de lectura, el RIM es
quien recibe el dato de la memoria sealado por el RDM, para su posterior envo a uno de Los
registros de la UAL. Si se trata de una operacin de escritura, la informacin a grabar tiene que
ester en el RIM, para que desde l se transfiera a la posicin de memoria indicada por el RDM.
Selector de memoria (SM). Es el dispositivo que, tras una orden de lectura o escritura, conecta
la celda de memoria cuya direccin figure en el RDM con el RIM, posibilitando la transferencia de
Los dates en un sentido o en otro.
La memoria central suele ser direccionable por octeto o byte; por tanto, una celda o posicin de
memoria contiene 8 bits. Una de Las caractersticas fundamentales de una computadora es su
capacidad de memoria interna (memoria central), la cual se mide en un mltiplo del byte
denominado Kilobyte, Kbyte, Kb o simplemente K, y que equivale a 1 024 bytes (1 024 = 2'). Otro
mltiplo utilizado ampliamente en Los ltimos tiempos es el Megabyte o simplemente Mega, que
equivale a 1 024 * 1 024 Bytes; es decir, a 1 048 576 bytes.
Bus de
Direcciones
Registro de direccin

Bus de
Datos
Registro de intercambio

de memoria

de memoria

Bus de
Control
Selector
Memoria Central
0001
0010
0110
1011
TIPOS DE INSTRUCCIONES
Pgina 8 de 18

ALGORITMOS y
PROGRAMACIN 75.40

Algoritmos y Programacin I

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.

Clase Terica N 1

Prof.

Introduccin a la Computacin

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

Autores : Ings. Cataldi - Lage

Nos referiremos en este apartado a instrucciones del lenguaje mquina. Son aquellas que
puede ejecutar directamente el hardware de la computadora.
Las instrucciones mquina se pueden clasificar por la funcin que desempean en:

Instrucciones de transferencia de datos.


Instrucciones de ruptura de secuencia.
Instrucciones aritmticas y lgicas.
Instrucciones declarativas.
Etctera.

O por su contenido, teniendo en cuenta que todas ellas tienen en primer lugar lo que se
llama cdigo de operacin (CO), que indica qu operacin se debe realizar por el procesador, y
aquellas en Las que su misin sea hacer alguna operacin con determinados dates; llevarn,
adems, implcita o explcitamente dichos dates, que denominaremos operandos.
Instrucciones de tres operandos
Tambin se denominan instruccin es de tres direcciones. En primer lugar constan de un
cdigo de operacin al que siguen tres operandos, de Los cuales, Los dos primeros son Los
operandos y el tercero es la direccin donde se depositar el resultado. Este formato de instruccin
es el ms cmodo de trabajar, pero es el que precise mayor nmero de bits.
Esquema siguiente.
Cdigo de operacin

Operando1

Operando2

Operando3

Instrucciones de dos operandos


Constan de un cdigo de operacin, seguido de dos operandos, de Los cuales uno de ellos
acta adems como receptor del resultado. Tambin se denominan instrucciones de dos
direcciones.
En el siguiente esquema se ve la Instruccin de dos operandos.
Cdigo de operacin

Operando 1

Operando2

Instrucciones de un operando
Tambin denominadas instrucciones de una direccin. Son Las que se utilizan generalmente
en mquinas cuya arquitectura funciona con filosofa de acumulador.
El acumulador es un registro especial, en el que se encuentra uno de Los operandos para
este tipo de instrucciones y donde adems se guarda el resultado.
En la instruccin se encuentra el cdigo de operacin seguido del segundo operando
Cdigo de operacin

Operando 1

Instrucciones sin operandos


Tambin denominadas instrucciones sin ninguna direccin. Este tipo de instrucciones se
utilizan generalmente en computadoras cuya arquitectura tiene filosofa de pila.
Una pila est formada por dates almacenados en orden consecutivo en la memoria, existiendo
un registro especial denominado puntero de pila que nos indica la direccin del ltimo dato
Pgina 9 de 18

ALGORITMOS y
PROGRAMACIN 75.40

Algoritmos y Programacin I
Clase Terica N 1
Introduccin a la Computacin
Autores : Ings. Cataldi - Lage

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.
Prof.

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

introducido en ella. Cuando un dato es sacado de ella, el puntero de pila decrece, apuntando al
dato que est a continuacin en la pila hacia el fondo de la misma y que ser aquel dato que se
introdujo en primer lugar. Cuando se trata de introducir un dato en ella el puntero toma la direccin
de memoria siguiente en orden ascendente y se introduce en dicha direccin.
Estas instrucciones slo llevan cdigo de operacin, de tal forma que cuando se trata de una
operacin, se sacan Los operandos de la pila (previamente introducidos) y el resultado se introduce
en la misma.
cdigo de operacin
Una computadora en su lenguaje mquina puede tener instrucciones de las anteriores, segn
sea su arquitectura.
METODOS DE DIRECCIONAMIENTO
Se habla de direccionamiento en una instruccin al modo de indicar en la misma el lugar
donde est situado el dato que va a intervenir en ella. Los direccionamientos utilizados en Las
instrucciones son Los siguientes:

Direccionamiento inmediato: en l, el dato a utilizar se halla en la


propia instruccin, en el acumulador o en la pila.
Direccionamiento directo: en este caso la instruccin contiene la
direccin de memoria central donde se encuentra el dato.
Direccionamiento indirecto: la instruccin contiene la direccin de
memoria central donde se encuentra la direccin de memoria que
contiene el dato.
Direccionamiento indexado: en el la direccin de memoria central
donde se encuentra el dato, se obtiene sumndole a la direccin
que lleva la instruccin una cantidad, que se encuentra en un
registro especial llamado ndice.

LENGUAJES DE PROGRAMACIN
Para poder desarrollar las capacidades del hardware, se ha necesitado la creacin de cdigos
por medio d los cuales hacer que el ordenado ejecute una serie de rdenes a este conjunto de
cdigos se denomina lenguaje.
Un lenguaje de programacin es una notacin para escribir programas, a travs de los cuales
podemos comunicarnos con el hardware y dar as las rdenes adecuadas para la realizacin de un
determinado proceso. Un lenguaje viene definido por una gramtica o conjunto de reglas que se
aplican a un alfabeto constituido por el conjunto de smbolos utilizados.
Los distintos niveles en que se clasifican los lenguajes, no son ndice de la capacidad del
lenguaje. Cuando se habla de lenguajes de bajo nivel implica indicar que el lenguaje es fcil de ser
procesado por el microprocesador, ocupa poca lugar en memoria y de muy difcil programacin para
el hombre, cuando hablamos de alto nivel nos indica que el mismo programa es de fcil programar
por un programador pero ocupa mucho lugar de memoria y es de difcil acceso al hardware, de tal
forma que segn utilicemos un nivel u otro as tendremos que utilizar un determinado lenguaje
ligado a sus correspondientes traductores.
Pgina 10 de 18

ALGORITMOS y
PROGRAMACIN 75.40

Algoritmos y Programacin I
Clase Terica N 1
Introduccin a la Computacin
Autores : Ings. Cataldi - Lage

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.
Prof.

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

El siguiente esquema representan la evolucin de los distintos lenguajes.


Periodo

Influencias

Lenguajes

1950 - 1955

Ordenadores primitivos

Lenguajes ensamblador.
Lenguajes experimentales de alto nivel

1956 - 1960

Ordenadores pequeos, caros y lentos


Cintas magnticas.
Compiladores e intrpretes
Optimizacin del cdigo.

FORTRAN
ALGOL 58 y 60
COBOL
LISP

1961 - 1965

Ordenadores grandes y caros


Discos magnticos
Sistemas operativos
Lenguajes de propsito general.

FORTRAN IV
COBOL 61 Extendido
ALGOL 60 Revisado
APL (como notacin slo)

1966 - 1970

Ordenadores de diferentes tamaos,


velocidades, y costes.
Sistemas caros de almacenamiento
masivo de datos.
Sistemas operativos multitarea e
interactivos.
Compiladores con optimizacin.
Lenguajes estndar, flexibles y
generales.

PL/I
FORTRAN 66 (estndar)
COBOL 65 (estndar)
ALGOL 68
SIMULA 67
BASI
C
APL/360

1971 - 1975

Micro ordenadores.
Sistemas pequeos y baratos de
almacenamiento masivo de datos.
Programacin estructurada.
Ingeniera del software.
Lenguajes sencillos.

PASCAL
COBOL 74
PL/I

1976 - 1980

Ordenadores baratos y potentes.


Sistemas distribuidos.
Programacin interactiva.
Abstraccin de datos.
Programacin con fiabifidad y fcil
mantenimiento.

ADA
FORTRAN 77
PROLOG
C

1980

Ordenadores ms baratos y potentes.


Mayor abstraccin de datos.

SmallTalk
OOCOBOL
C++
Ojective C
Object Pascal (Delphi)
Visual Basic

Menor costo de memorias


Programacin Orientada o Objetos

Lenguajes de programacin se clasifican:


Bajo nivel (Lenguaje mquina)
Intermedios (Lenguaje ensamblador), C
Alto nivel Gestin Cientficos Propsito general y especficos
Pgina 11 de 18

ALGORITMOS y
PROGRAMACIN 75.40

Algoritmos y Programacin I
Clase Terica N 1
Introduccin a la Computacin
Autores : Ings. Cataldi - Lage

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.
Prof.

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

Lenguaje mquina
El lenguaje mquina es el nico que entiende directamente la computadora, utiliza el alfabeto
binario que consta de los dos nicos smbolos 0 y 1, denominados bits (abreviatura inglesa de
dgitos binarios). Fue el primer lenguaje utilizado en la programacin de computadoras, pero dej de
utilizarse por su dificultad y complicacin, siendo sustituido por otros lenguajes ms fciles de
aprender y utilizar, que adems reducen la posibilidad de cometer errores.
EJEMPLO

0000
1000
0011
0111
1110

0001
1001
1010
0100
1001

1010
1001
1001
0111
0010

0001
1010
1100
0000
0000

01 A1
89 9A
3A 9C
74 70
E9 20

Lenguaje ensamblador
El lenguaje ensamblador es el primer intento de sustituir el lenguaje mquina por otro ms
similar a los utilizados por las personas. En este lenguaje cada instruccin equivale a una
instruccin en lenguaje mquina, utilizando para su escritura palabras nemotcnicas en lugar de
cadenas de bits.
EJEMPLO

INICIO:

FIN :

ADD
MOV
CMP
JE
JMP
END

B, 1
A, E
A, B
FIN
INICIO

Este lenguaje presenta la mayora de los inconvenientes del lenguaje mquina:


Cada modelo de computadora tiene un lenguaje ensamblador propio diferente del de
los dems, por lo cual un programa slo puede utilizarse en la mquina para la cual
se program.
El programador ha de conocer perfectamente el hardware del equipo, ya que maneja
directamente las posiciones de memoria, registros del procesador y dems elementos
fsicos.
Todas las instrucciones son elementales, es decir, en el programa se deben describir
con el mximo detalle todas las operaciones que se han de llevar a cabo en la
mquina para la realizacin de cualquier proceso.
Por otro lado, tanto el lenguaje mquina como el ensamblador gozan de la ventaja de mnima
ocupacin de memoria y mnimo tiempo de ejecucin en comparacin con el resultado de la
compilacin del programa equivalente escrito en otros lenguajes.

Lenguajes de alto nivel

Pgina 12 de 18

ALGORITMOS y
PROGRAMACIN 75.40

Algoritmos y Programacin I
Clase Terica N 1
Introduccin a la Computacin
Autores : Ings. Cataldi - Lage

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.
Prof.

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

Los lenguajes de alto nivel, tambin denominados lenguajes evolucionados, surgen con
posterioridad a los anteriores, con los siguientes objetivos, entre otros:
Lograr independencia de la mquina, pudiendo utilizar un mismo programa en
diferentes equipos con la nica condicin de disponer de un programa traductor o
compilador, que lo suministra el fabricante, para obtener el programa ejecutable en
lenguaje binario de la mquina que se trate. Adems, no se necesita conocer el
hardware especfico de dicha mquina.
Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una
forma ms sencilla, eliminando muchas de las posibilidades de cometer errores que
se daban en el lenguaje mquina, ya que se utilizan palabras (en ingls) en lugar de
cadenas de smbolos sin ningn significado aparente.
Incluir rutinas de uso frecuente como son las de entrada/salida, funciones
matemticas, manejo de tablas, etc, que figuran en una especie de librera del
lenguaje, de tal manera que se pueden utilizar siempre que se quieran sin necesidad
de programarlas cada vez.
Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran
cantidad de ellos que existen actualmente en uso (FORTRAN, LISP, ALGOL, COBOL, APL,
SNOBOL, PROLOG, MODULA2, ALGOL68, PASCAL, SIMULA67, ADA, C++, LIS, EUCLID, BASIC),
adems de las diferentes versiones o dialectos que se han desarrollado de algunos de ellos.

FORTRAN
Abreviatura de Frmula Translator (traductor de frmulas), fue definido alrededor del ao
1955 en los Estados Unidos por la compaa IBM. Es el ms antiguo de los lenguajes de alto nivel,
pues antes de su aparicin todos los programas se escriban en lenguaje ensamblador o en
lenguaje mquina.
Es un lenguaje especializado en aplicaciones tcnicas y cientficas, caracterizndose por su
potencia en los clculos matemticos, pero estando limitado en las aplicaciones de gestin, manejo
de archivos, tratamiento de cadenas de caracteres y edicin de informes.
A lo largo de su existencia han aparecido diferentes versiones, entre las que destaca la
realizada en 1966 por ANSI (American National Standard Institute) en la que se definieron nuevas
reglas del lenguaje y se efectu la independencia del mismo con respecto a la mquina, es decir,
comenz la transportabilidad del lenguaje. Esta versin se denomin FORTRAN IV o FORTRAN 66.
En 1977, apareci una nueva versin ms evolucionada que se llam FORTRAN V o FORTRAN 77,
esta versin est reflejada en el documento ANSI X3.9-1978: Programming Language FORTRAN
y define dos niveles del lenguaje denominados FORTRAN 77 completo y FORTRAN 77 bsico,
siendo el segundo un subconjunto del primero. Esta ltima versin incluye adems instrucciones
para el manejo de cadenas de caracteres y de archivos, as como otras para la utilizacin de
tcnicas de programacin estructurada. Estas caractersticas hacen que el lenguaje tambin sea
vlido para determinadas aplicaciones de gestin.

COBOL
Es el lenguaje ms usado en las aplicaciones de gestin, creado en 1960 por un comit
denominado CODASYL, patrocinado por el Departamento de Defensa de los Estados Unidos, a fin
de disponer de un lenguaje universal para aplicaciones comerciales como expresa su nombre
(COmmon Business Oriented Language).

Pgina 13 de 18

ALGORITMOS y
PROGRAMACIN 75.40

Algoritmos y Programacin I
Clase Terica N 1
Introduccin a la Computacin
Autores : Ings. Cataldi - Lage

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.
Prof.

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

Entre sus caractersticas se pueden citar su parecido al lenguaje natural (ingls), es autodocumentado y tiene gran capacidad en el manejo de archivos, as como en la edicin de informes
escritos. Entre sus inconvenientes estn sus rgidas reglas de formatos de escritura, la necesidad
de describir todos los elementos al mximo detalle, la extensin excesiva en sus sentencias e
incluso duplicacin en algunos casos, la inexistencia de funciones matemticas y, por ltimo, su no
adecuacin a las tcnicas de programacin estructurada. a

PL/1
Fue creado a comienzos de los aos 60 por IBM para ser usado en sus equipos del sistema
360. El PL/I (Programming Language 1) se desarroll inspirndose en los lenguajes ALGOL,
COBOL y FORTRAN, tomando las mejores caractersticas de los anteriores y aadiendo algunas
nuevas, con el objetivo de obtener un lenguaje lo ms general posible, til para aplicaciones
tcnico-cientficas, comerciales, de proceso de textos, de bases de datos y de programacin de
sistemas.
Entre sus novedades est su gran libertad en el formato de escritura de los programas,
soportar la programacin estructurada y el diseo modular. No obstante, no ha superado a sus
progenitores en sus aplicaciones especficas debido en parte a su amplitud y por ello, al tamao de
su compilador, que hasta ahora slo se poda instalar en grandes equipos.

BASIC
Fue diseado por
en 1965 con el objetivo
como se indica en su
instruccin simblico de

los profesores John G. Kemeny y Thomas E. Kurtz del Dartmouth College


principal de conseguir un lenguaje fcil de aprender para los principiantes,
nombre Benginners All-purpose Symbolic Instruction Code (Cdigo de
propsito general para principiantes).

Entre sus principales novedades estn las de ser un lenguaje interpretado y de uso
conversacional, til para aplicaciones tcnicas y de gestin. Estas caractersticas, unidas a la
popularizacin de las microcomputadoras y computadoras personales, ha hecho que su utilizacin
se haya extendido enormemente, a la vez que ha propiciado el surgimiento de una gran diversidad
de versiones que extienden y adaptan a necesidades particulares el lenguaje original. Existen
multitud de intrpretes y compiladores del lenguaje.

PASCAL
Fue creado por el matemtico suizo Niklaus Wirth en 1970, basndose en el lenguaje ALGOL, en cuyo diseo haba participado en los aos 60. Su nombre proviene del filsofo y
matemtico francs del siglo xvii Blaise Pascal, que invent la primera mquina de tipo mecnico
para sumar.
Aunque en principio la idea del diseador era proporcionar un lenguaje adecuado para la
enseanza de los conceptos y tcnicas de programacin, con el tiempo ha llegado a ser un
lenguaje ampliamente utilizado en todo tipo de aplicaciones, poseyendo grandes facilidades para la
programacin de sistemas y diseo de grficos.
Aporta los conceptos de tipo de datos, programacin estructurada y diseo descendente,
entre otros, adems de haberse convertido en predecesor de otros lenguajes ms modernos, como
MODULA-2 y ADA.

C
Pgina 14 de 18

ALGORITMOS y
PROGRAMACIN 75.40

Algoritmos y Programacin I
Clase Terica N 1
Introduccin a la Computacin
Autores : Ings. Cataldi - Lage

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.
Prof.

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

Fue creado en 1972 por Dennis Ritchie a partir del trabajo elaborado por su colega de los
laboratorios Bell Telephone, Ken Thompson. Estos haban diseado con anterioridad el sistema
operativo UNIX, y su intencin al desarrollar el lenguaje C fue la de conseguir un lenguaje idneo
para la programacin de sistemas que fuese independiente de la mquina con el cual escribir su
sistema UNIX.
Aunque fue diseado inicialmente para la programacin de sistemas, posteriormente su uso
se ha extendido a aplicaciones tcnico-cientficas, de bases de datos, de proceso de textos, etc.
La utilizacin ptima de este lenguaje se consigue dentro de su entorno natural, que es el
sistema operativo UNIX. Entre sus caractersticas destaca el uso de programacin estructurada
para resolver tareas de bajo nivel, as como la amplia librera de rutinas de que dispone.

ADA
Es el ltimo intento de obtener un nico lenguaje para todo tipo de aplicaciones e incluye los
ltimos avances en tcnicas de programacin. Su diseo fue encargado por el Departamento de
Defensa de los Estados Unidos a la empresa Honeywell-Bull despus de una seleccin rigurosa
entre varias propuestas realizadas sobre una serie de requerimientos del lenguaje y de haber
evaluado negativamente veintitrs lenguajes existentes. De stos se seleccionaron como base para
la creacin del nuevo lenguaje el PASCAL, el ALGOL y el PL/I. La estandarizacin del lenguaje se
public en 1983 con el nombre de ADA en honor de la considerada primera programadora de la
historia Augusta Ada Byron, condesa de Lovelace.
Entre las caractersticas del lenguaje se encuentran la compilacin separada, los tipos
abstractos de datos, programacin concurrente, programacin estructurada, libertad de formatos de
escritura, etc., presentando como principal inconveniente su gran extensin.

Interpretes y Compiladores
Existen dos tipos principales de traductores de los lenguajes de programacin de alto nivel:
Compilador, que analiza el programa fuente y lo traduce a otro equivalente escrito en
otro lenguaje (por ejemplo, en el lenguaje de la mquina). Su accin equivale a la de
un traductor humano, que toma un libro y produce otro equivalente escrito en otra
lengua.
Intrprete, que analiza el programa fuente y lo ejecuta directamente, sin generar
ningn cdigo equivalente. Su accin equivale a la de un intrprete humano, que
traduce las frases que oye sobre la marcha, sin producir ningn escrito permanente.
Intrpretes y compiladores tienen diversas ventajas e inconvenientes que los hacen
complementarios:
Un intrprete facilita la bsqueda de errores, pues la ejecucin de un programa
puede interrumpirse en cualquier momento para estudiar el entorno (valores de las
variables, etc.). Adems, el programa puede modificarse sobre la marcha, sin
necesidad de volver a comenzar la ejecucin.
Un compilador suele generar programas ms rpidos y eficientes, ya que el anlisis
del lenguaje fuente se hace una sola vez, durante la generacin del programa
equivalente. En cambio, un intrprete se ve obligado generalmente a analizar cada
instruccin tantas veces como se ejecute (incluso miles o millones de veces).
Un intrprete permite utilizar funciones y operadores ms potentes, como por ejemplo
ejecutar cdigo contenido en una variable en forma de cadenas de caracteres.
Usualmente, este tipo de instrucciones es imposible de tratar por medio de
Pgina 15 de 18

ALGORITMOS y
PROGRAMACIN 75.40

Algoritmos y Programacin I
Clase Terica N 1
Introduccin a la Computacin
Autores : Ings. Cataldi - Lage

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.
Prof.

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

compiladores. Los lenguajes que incluyen este tipo de operadores y que, por tanto,
exigen un intrprete, se llaman interpretativos. Los lenguajes compilativos, que
permiten el uso de un compilador, prescinden de este tipo de operadores.

EVOLUCIN HISTRICA DE LA PROGRAMACIN


En el comienzo de la informtica, slo haba una forma de programar (en binario), que
consista en la ejecucin secuencial (una tras otra) de instrucciones de la mquina, con posibles
cambios de secuencia basados en dos tipos especiales de instrucciones de control
Las instrucciones de control se dividieron en dos tipos:
instrucciones de transferencia
instrucciones de llamada de subrutina.
Las instrucciones de transferencia dan lugar a un salto sin retorno en la ejecucin, y a su
vez pueden ser condicionales (si el salto se produce nicamente cuando se cumple una condicin
determinada) o incondicionales.
La instruccin de llamada de subrutina guarda la direccin de retorno para que la secuencia
de ejecucin original se reanude cuando termina la ejecucin de la subrutina (momento en el que se
ejecutar una instruccin de retorno).
En la dcada de los aos cincuenta surgi un nuevo tipo da lenguajes (llamados simblicos, o
de segunda generacin: assembler), que trataban de simplificar la programacin: ya que, a medida
que los programas eran cada vez ms complejos, se haca impracticable utilizar directamente el
lenguaje de la mquina, en el que las instrucciones estaban formadas por secuencias de ceros y
unos.
Un lenguaje simblico no es ms que una representacin codificada del lenguaje de la
mquina, donde cada instruccin simblica se traduce (en principio) por una sola instruccin de la
mquina equivalente, y el cdigo de operacin y la direccin de memoria asociados a cada
instruccin de la mquina se representan mediante smbolos alfanumricos. En particular,
dependiendo del lenguaje simblico utilizado, las instrucciones de cambio de secuencia se suelen
representar mediante los siguientes smbolos:
La instruccin de transferencia incondicional: JMP (jump, es decir, salto); B
(branch, ramificacin); GOTO (go to, ir a); etc.
Las instrucciones de transferencia condicional: JZ (jump on zero, salto si el
resultado anterior es cero); BC (branch on condition, ramificacin condicional); etc.
La instruccin de llamada de subrutina: CALL (llamar, en ingls); BAL (branch and
link, es decir, ramificacin con enlace); etc.
La instruccin de retorno de subrutina: RET (return, retorno); etctera.
A finales de los aos cincuenta, y a medida que las aplicaciones iban creciendo en tamao y
en complicacin, la programacin en los lenguajes simblicos resultaba an demasiado compleja,
por lo que se inventaron los lenguajes de alto nivel o de tercera generacin, tales como FORTRAN,
LISP, COBOL, ALGOL, APL, PL/I, BASIC, Pascal, C, etc., que hacan ms legibles los programas
mediante expresiones de aspecto matemtico, como X + Y * Z (que significa, en muchos de los
lenguajes citados, sumar el valor de la variable X al resultado de multiplicar el valor de la variable Y
por el de la variable Z).

Pgina 16 de 18

ALGORITMOS y
PROGRAMACIN 75.40

Algoritmos y Programacin I
Clase Terica N 1
Introduccin a la Computacin
Autores : Ings. Cataldi - Lage

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.
Prof.

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

Todos estos lenguajes, y muchos ms que no voy a mencionar por el momento, no son
totalmente independientes entre s, sino que unos influyeron en el diseo de los otros, por lo que
forman una jerarqua histrica. Adems de simplificar la sintaxis de las expresiones, los lenguajes
de alto nivel introdujeron una serie de instrucciones de control para hacer ms simple la definicin
de la estructura de los programas. Estas instrucciones pueden agruparse en las siguientes clases:
Una instruccin de transferencia incondicional (siempre se produce un salto sin
retorno en la ejecucin), generalmente representada mediante el smbolo GOTO,
GO TO, u otro equivalente.
Instrucciones de transferencia condicional, como las sentencias GO TO calculada
y asignada de FORTRAN, o la sentencia IF del mismo lenguaje, en su forma original.
Instrucciones de ejecucin condicional, como el conjunto IF- THEN-ELSE de
ALGOL y Pascal, la instruccin CASE de Pascal o el conjunto if-else y la instruccin
switch de C.
Instrucciones de ejecucin en bucle, en sus formas DO-UNTIL, DO-WHILE y FOR.
La instruccin de llamada de subrutina, representada mediante el smbolo CALL, o
implcitamente, especificando slo el nombre de la subrutina que se invoca, junto con
un conjunto de argumentos entre parntesis.
La instruccin de retorno de subrutina: RETURN o equivalente.

PROGRAMACIN ESTRUCTURADA
En ciertos lenguajes clsicos (como APL o las formas primitivas de FORTRAN y BASIC) se
emplea con frecuencia la instruccin GOTO de transferencia incondicional, que permite pasar la
ejecucin del programa a otra parte del mismo, sealada por una etiqueta. En otros (como C o
Pascal) se utiliza un estilo diferente de programar (la programacin estructurada) en la que la
instruccin GOTO est prohibida o, al menos, desaconsejada. Por ello, la programacin
estructurada se llama a veces programacin sin GOTO. En la programacin estructurada se utilizan
slo cuatro estructuras de control bsicas:
El bloque de instrucciones consecutivas. En C se representa con los smbolos { y
).
La instruccin condicional. En C y en PASCAL existen dos tipos principales:
1. La instruccin if-else: Si la condicin se cumple, se ejecuta la instruccin 1. En
caso contrario, se ejecuta la instruccin 2.
2. La instruccin switch (o case of):
- Si la variable tiene el valor1, se ejecuta el bloque de instrucciones 1.
- Si tiene el valor2, se ejecuta el bloque de instrucciones 2. Y as
sucesivamente.
- Si no tiene ninguno de los valores indicados, se ejecuta el bloque de
instrucciones n.
El bucle: En C (o en PASCAL) existen tres tipos principales:
1. La instruccin for: Se ejecuta primero la instruccin iniciadora. A continuacin, mientras la
condicin se cumpla, se ejecutan repetidamente las instrucciones, seguidas por la instruccin
terminadora.
2. La instruccin while: Mientras la condicin se cumpla, se ejecutan repetidamente las
instrucciones. Si la condicin no se cumple cuando la ejecucin llega a la instruccin while, las
instrucciones no se ejecutan ninguna vez.
Pgina 17 de 18

ALGORITMOS y
PROGRAMACIN 75.40

Algoritmos y Programacin I
Clase Terica N 1
Introduccin a la Computacin
Autores : Ings. Cataldi - Lage

Martes 14 a 17 Hs
Jueves 14 a 17 Hs.
Prof.

Ing. F. J. LAGE

J.T.P. Ing. Z. CATALDI


A.T.P. Srita. A Pauluzzi
Sr P. Corradino
Sr. F. Gmez

3. La instruccin do: Mientras la condicin se cumpla, se ejecutan repetidamente las instrucciones.


Si la condicin no se cumple cuando la ejecucin llega a la instruccin do, las instrucciones se
ejecutan al menos una vez.
La cuarta instruccin de control es la llamada de subrutina, a la que dedicaremos el
apartado siguiente.

PROGRAMACIN PROCEDIMENTAL
La llamada de subrutina (conocida, en general, como instruccin CALL) sirve para relacionar
unos programas con otros y permite modular las aplicaciones, descomponindolas en dos o ms
secciones llamadas procedimientos, subrutinas, o funciones, segn los casos. Por esta razn los
lenguajes de programacin clsica se llaman tambin procedimentales. Gracias a la capacidad de
invocar la ejecucin de procedimientos, los distintos programas que constituyen una aplicacin
suelen formar una estructura jerrquica, con un programa principal (main en C) que llama a otros
subprogramas, y stos a otros, hasta llegar a los niveles ms bajos de la jerarqua, donde suelen
situarse los programas que prestan servicios especiales a casi todos los dems. La jerarqua en
cuestin no forma siempre, un rbol invertido, sino un esquema algo ms complejo. Es cierto que
siempre suele haber un nodo principal o raz (el programa principal), pero un mismo nodo puede
tener ms de un antecesor (puesto que una subrutina puede ser invocada por varios mdulos).
Adems, es posible que haya ciclos, simples o compuestos, pues los mdulos pueden ser
recursivos, directamente o indirectamente. En cambio, en esta forma de programar, los datos no
tienen ninguna organizacin preestablecida: cada programador decide cmo se relacionan unos
con otros y cmo se distribuyen entre los subprogramas. En principio, existen dos clases de datos:
Datos globales: son accesibles por todos los subprogramas.
Datos locales: son accesibles por un solo subprograma, mdulo o funcin.
A veces, dependiendo del lenguaje de programacin, los datos locales son automticamente
heredables por los subprogramas o funciones situados, en la jerarqua de llamadas, por debajo del
subprograma en que dichos datos han sido definidos.

Pgina 18 de 18

También podría gustarte