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


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

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. 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 Salida Impresora Plotter Parlante Placa de audio Sistema de audio Parlantes E/S Modem Disqueteras Grabadora/Reproductora de CD Integer Pantallas tctiles Placa de vdeo

Entrada

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.

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

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. 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
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

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 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).


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

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

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.

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

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). 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 de memoria Bus de Control Selector Memoria Central 0001 0010 0110 Bus de Datos Registro de intercambio de memoria

Pgina 8 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

1011 TIPOS DE INSTRUCCIONES 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 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 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 Operando 1 Operando2 Operando1 Operando2 Operando3

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

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 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
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

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. El siguiente esquema representan la evolucin de los distintos lenguajes. Periodo 1950 - 1955 1956 - 1960 Influencias Ordenadores primitivos Ordenadores pequeos, caros y lentos Cintas magnticas. Compiladores e intrpretes Optimizacin del cdigo. Ordenadores grandes y caros Discos magnticos Sistemas operativos Lenguajes de propsito general. 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. Micro ordenadores. Sistemas pequeos y baratos de almacenamiento masivo de datos. Programacin estructurada. Ingeniera del software. Lenguajes sencillos. Ordenadores baratos y potentes. Sistemas distribuidos. Programacin interactiva. Abstraccin de datos. Programacin con fiabifidad y fcil mantenimiento. Ordenadores ms baratos y potentes. Mayor abstraccin de datos. Lenguajes Lenguajes ensamblador. Lenguajes experimentales de alto nivel FORTRAN ALGOL 58 y 60 COBOL LISP FORTRAN IV COBOL 61 Extendido ALGOL 60 Revisado APL (como notacin slo) PL/I FORTRAN 66 (estndar) COBOL 65 (estndar) ALGOL 68 SIMULA 67 BASI C APL/360 PASCAL COBOL 74 PL/I

1961 - 1965

1966 - 1970

1971 - 1975

1976 - 1980

ADA FORTRAN 77 PROLOG C

1980

Menor costo de memorias Programacin Orientada o Objetos

SmallTalk OOCOBOL C++ Ojective C

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

Object Pascal (Delphi) Visual Basic Lenguajes de programacin se clasifican:


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

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.

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

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


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
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

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). 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 tcnicocientficas, 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 los profesores John G. Kemeny y Thomas E. Kurtz del Dartmouth College en 1965 con el objetivo principal de conseguir un lenguaje fcil de aprender para los principiantes, como se indica en su nombre Benginners All-purpose Symbolic Instruction Code (Cdigo de instruccin simblico 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 AL-GOL, 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.

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

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
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:
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

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 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.
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

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). 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.
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

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: 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. 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.

1.

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