Вы находитесь на странице: 1из 161

CAPITU LO

ALGORITMOS Y PROGRAMAS

CONTENIDO

1.1. Los sistemas de

procesamiento de la información.

1.2. Concepto de algoritmo.

1.3. Los lenguajes de programación.

1.4. Datos, tipos de datos

1.5. Constantes y variables.

1.6. Expresiones.

1.7. Funciones internas.

y operaciones primitivas.

1.8. La operación de

1.9. Entrada y salida de información.

asignación.

ACTIVIDADES DE PROGRAMACIÓN RESUELTAS,

EJERCICIOS.

La principal

razón para.que.ras personas

aprendan renguajes y técnicas de

para

programación es utirizar la

resolver

computadora como una herramienta

problemas. La resorución de un probrema exige ar ,n"náa ro,

s¡guientes pasos:

1. Definición

o análisis del problema.

2. Diseño del algoritmo.

3. Transformación del

algoritmo en un programa.

4. Ejecución y validación del programa.

Uno de los objetivos

,v uv¡r ro

con

ra

un algoritmo es un

fundamentales de este libro

capíturo introduce ar rector

diseño de algoritmos. Este

atgoritm.o v de programa, así como

logar» al usuario

es el aprendizaje y

ion.uplo o.

"r

ólri-,iü,i,,c,u

ras herramie;t* q;; "n

tenguaJes

máquina: /os

u¡(rqurrra:

tos

tenguijes de proqramación.

de programación.

método para re-soríer un

problema.

orobrema. Art

Aunq::

popularización dertérmino ha

ilegado con er adven¡.iá"tá J" rá';r; ^:

mática. algoritmo proviene de Mohammed

ar-Khowárizmi, ma:e- z: _ -

persa que vivió durante er sigro rx y arcanzó gran reputación por- e :-_--

= ¡ nd ame ntos de p rog ra m ación

ciado de las reglas paso

números decimales;

a paso para su-e' '=s:=' ':-ultiplicar y dividir

:c en la palabra algo'

::s el gran matemático

=.=

f -:

la traducciÓn al

rismusderivó posteriormente en algori:-:.

griego (del siglo lv antes de Cristo ,

át nrár¡nro común divisor el otro gran padre de la

n j¡':::s

de dos

.-e ^'e-:: -- -eiodo para encontrar

s: ::^s lera con Al-Khowárizmi

algoritrnia o e-: a :-::'a:a de los algoritmos)'

El résto del capítulo trata

de los :a::: . as :peraciones elementales

algoritr.c I

D-3'esor Niklaus Wirth

-inven-

libros,

significándonos que sólo el diseño de un algoritmo

necesarias para el diseño del

tor de Pascal, Modula-2 y Oberon-:;:- : --3 ce sus más famosos

Algoritmos + Estructuras de daios =,':J'¿^as.

se-puede llegar a realizar un buen p

y una correcta estructura

Q'.-.;cr

fundamentales

de datos. Es:a e:-:o cr será una de las hipótesis

consideradas en es:3 l.'a

1.1. LOS SISTEMAS DE PROCESAMIENTO DE LA INFORMACIÓN

es'. «una máquin¡ o j:.lrrio eiectrónico capaz de ejecutar

Una definición antigua de computodora

operaciones repetitivas muy complejas

lás modemas cbmputadorar.

pttri

són

hecho, lostérminos

a altas velocidades.'. -\htrr'l bien. esta definición no describe

más que una máquiit: ¿e eje.-uta¡ operaciones aritméticas. De

procesaclorcletlatost,i¡tt",rrr,t(lePi'.)t.(súti'"ietrÍoltratttttúento)delainforma-

jerga informática usual

ción seutilizan con frecuencia en lugar de computafls¡¿ , ¡r7i1gr:.;,í¿r¡'. en 1a

en España).

En el

uso diario, datos e información son esencialme¡r,e s-lónrnos. Sin embargo, los informá-

ticos suelen hacer una diferer-rcia: tlatos se refiere a la repie.:n:.¡i.in de algún hecho, concepto o eniidad real (los datos pueden tomar cliferentes formas: por eiemplo. palabras escritas o habladas,

números l' dibuios);

yn sí;¡gmg

9n

inJbrmación implica datos procesado' 1 Lrrgu.lrzildos'

general se define como qgnjunto de compcn.ntes .(rnectados e interactivos, que

de

I

información es U! sistema

¡lrl1.

prtrceso de la información'. entra'

rienen un propósito y una unidad total. Sisi'éma de procesámiento

que - transibrma datos brutos en infbrmación orgotti-ctdrz. -ii3r;1¡.,;i¡i

La Fi-slira 1 .1 muestra los tres componentes de un sistem: ce

.j.;. r,¡1¡¿7a r- ¡trocesatlor.Lltqgery4pL

.,nple caja ¡: puede aceptar datos

que puede ser bastanl- ccn-rplicado. se representa por una

liamados entrctcla,l' esta errrtr;J3 se translbrrna entonces para pro-

J.ri.'ri una intormación denominada salida o resultcttlos.

B:t¡'los

este esquema, muchos dispositilos u organi5ill\-rs pueden ser considerados sistelnas

de lalnformación. Un temostato qr.le cr-,ntrol¡ 1a temperatura cle un edificio es un

i- ::-u¡ "t-liento

:,>=::i

:e i -' ;-*e ;¡iti

la

'n

J3 :r\-r.e \amiento de la información. La entrada es 1a temperatura media y la salida es una

1a caldera del aire acondicionado. E1 cor¡z.in de un anrmal o un ser humano es un

sr!:iil: ;,:::l1eic de procesamiento de Ia información.

E- --¡r--r:t:¡

in-.trucciones que especifican 1a secuencia de operaciones a realizar. en orden' )-riima específico o clase de problentas. se denomina aigoritmo. En otras palabras,

para res\r!.,:.: ,::

lln algoritmo 3: ,/,,-i :ti¡tnttla para la resoluciótt cle wt problertto.

:

Entrada=datoS ---)

Procesador

S a I i d a=inf ormación

-----,

Figura 1.1, Sistema de proceso de información.

\

Pararealtzar un proceso se le debe suministrar al procesador un algoritmo adecuait¡. F:: --r:.-

plo, al cocinero debe dársele una receta, al pianista la partitura y así sucesivamente.

cocinero y al pianista como procesadores. Cuando el procesador es una computadora, el algoritmo ha de expresarse de una forma que reci- be el nombre de programa. Un programa se escribe en un lenguaje de programación y a ]¡14c1i1_id3d

de expresar un algoritmo en forma de programa se le denomina programación. Cada paso en el algo-

ritmo está expresado por medio de una instrucción en el programa. Por consiguiente, un programa

consta de una secuencia de instrucciones, cada una de las cuales especifica las operaciones que debe

r e alizar la c omputadora. Existen dos conceptos importantes a considerar en los sistemas de procesamiento de la infor- mación: hardware y software. Hardware es el conjunto de componentes físicos de una computadora

consi,ie¡.n;- :.

(Figura 7.2,¡

miento de una

Jísico- y software es el conjunto de programas que controlan el funciona-

-equipo

lógico-.

se compone de:

-equipo

computadora

E1 hardware de una computadora

l. La Unidatl Central de Proceso, UCP (Central Processing Unit, CPU). La UCP es el conjunto de circuitos electrónicos capaces de ejecutar algunos cálculos sencillos como suma o multi- plicación de números. La potencia de una computadora depende completamente de la velo-

cidad y fiabilidad de la UCP.

2. Memoria central. La información procesada por la UCP se almacena normalmente en la

memoria central hasta que se terminan 1os cálculos. Los programas de computadora se

almacenan también en la memoria central.

Diferentes dispositivos,

3. Dispositivos de almacenomienÍo secundario (memoria auxiliar).

tale-s como discos y cintas magnéticas, se usan para almacenar

máción. Para ser procesados por la UCP, los datos se almacenan en dispositivos de almace-

namiento auxiliaiy luego tienen que llevarse a la memoria central.

granáél'Cantidádé§AeÍifói-

4. Periferico o dispositivos de entrada/salida (E/S)

Estos

dispositivos permiten al usuario

comunicarse

impresora, monitor, etc. Un sistema de computadora puede tener diferentes dispositivos

lu computadora. Algunos dispolitivos típicos de E/S son el teclado, la

"on

periféricos conectados a ella.

En la práctica, una instalación grande de computadora puede tener diferentes UCP, cada una con su propia memoria central compaftida, una variedad de dispositivos de almacenamiento secundario

Dispositivos

de

entrada/sa lida

E/S

(periféricosl

Almacenamiento

secu ndario

(memoria auxiliar:

Figura 1.2. Diagrama esquemático de una computadora (hardware),

7

F u ndamentos de prog ra mación

--

y periféricos localizados en diferentes partes de un mismo edificio o diferentes edificios e incluso

dilerentes ciudades o países.

1.2. CONCEPTO DE ALGOR¡TMO

El objetivo fundamental de este texto es enseñar'a resolver problemas mediante una computadora.

Un programador de computadora es antes que nada una persona que resuelve problemas, por lo que para llegar a ser un programador eficaz se necesita aprender a resolr er problemas de un modo rigu- roso y sistemático. A 1o largo de todo este libro nos ret-eriremos a la metodología necesaria para resolver problemas mediante programas, concepto que se denomina metodología.de.Ia progra- macién. El eje central de esta'metodología es el eoncepto- r'a tra¡ado- de algoritmo.

La resolución de un problema exige el diseño de un algoritmo que resuelva el problema pro-

puesto.

Problema

---------->

Diseño

del

algoritmo

---------->

Programa

de

computadora

Figura 1.3. Resolución de un problema.

Los pasos para la resolución de un problema son:

' ' 1. Diseño del algoritmo que describe la secuencia ordenada de pasos

. '2.

ambigüedades- que

-sin

conducen a la solución de un problema dado. (Análisis del probletrta t' desarrollo del algorinno.)

Expresar el algoritmo como un pro grama en un lenguaje de pro-uramación adecuado. (Fase de

codificación.') 3. EjecuciónT,validación

del programa por la computadora.

Para lle-ear a la realización de un programa es necesario e1 diseño previo de un algoritmo, de

modo que sin algoritmo no puede existir un programa.

Los algoritmos son independientes tanto del lenguaje de programación en que se expresan

como de ia computadora que 1os ejecuta. En cada problema el algoritmo se puede expresar en un len- -suaie direrente de pro-eramación y ejecutarse en una computadora distin'ta: sin embargo. el algorit-

mo será siempre el mismo. Así, por ejemplo, en una analogía con la r-ida diaria, una receta de un

plato de cocina se puede expresar en español, inglés o francés. pero cualquiera que sea el lenguaje. los paso: para 1a eiaboración del plato se realizarán sin imponar el idioma del cocinero.

En la ;iencia de 1a computación y en la programación, los al-eoritmos son más imporlantes que lo: lensu¡je. de programación o las computadoras. Un lenguaje de programación es tan sólo un

medio pan e\prrsar un algoritmo y una computadora es sólo un procesador para ejecutarlo. Tanto el len-uuaje de prtrtramación como la computadora son los medios para obtener un fin: conseguir que el al-soritmo se e-ie'-ute r se efectúe el proceso correspondiente.

Dada la importancia del

algoritmo en la ciencia de la computación. un aspecto muy importante

1a enseñanza y práctica de esta tarea se dedica gran pafte de este libro.

será el diseño de atsotittt¡o-s. \

1.2.

Las

¡

I

alg«

Eie

IJn

cli

ell

Lo

Ei

S¿

L

SC

si

El diseño de la mar oía de los alsoritmos requiere creatividad r conocimientos profundos de la técnica de la pro-uramación. En esencia. la soluciótt cle Lm problema se puede expresar mediante wt

algoritnto.

b-

1.2.1. Características de los algoritmos

Algoritmos y programas s

Las características fundamentales que debe cumplir todo algoritmo son:

a Un algoritmo debe ser preciso e indicar el orden de

o Un algoritmo debe

arjiniao. Si se sigue un

mismo resultado cada

"sia,

vez.

, realización de cada paso. algoritmo dos veces, se debe obtener el

o Un algoritmo debe ser finito. Si se sigue

sea. debe tener un número finito de pasos.

un algoritmo. se debe terminar en algún momento; o

La definición de un algoritmo debe describir tres

partes: Entrqcla, proceso y Salida. En el

algoritmo de recetá de cociña citado anteriormente se tendrá:

Entrada: ingredientes y

Proceso: elaboráción de la receta

utensilios empleados.

en la cocina.

Salida:

terminación del plato (por ejemplo, cordero).

Ejemplo 1.1

(Jn cliente ejecufa un pediclo

a unaftibrica. Laflíbrica examina en su banco de ¿atos laficlta ctel

empresa acepfa el pedido; en caso confrario, rechazará

cliente, si el cliente es solvente entonces la

, el pedido. Redactar el algoritmo correspondiente.

, Los pasos del algoritmo son:

1 . Inicio.

2 .

3. Examinar la

4. Si

5. Fin.

el

Leer

el

pedido.

ficha

cliente

del

cliente.

es solvent_e,

aceptar

pedido;

.l

caso contrarro,

rechazar

pedido.

Ejemplo 1.2

se desea diseñar un algoritmo para saber si un número es primo o no.

U

Un número es primo si sólo puede dividirse por sí mismo

sores que é1 mismo y la unidad). por ejemplo, 9, g, 6, 4, rz,'

sibles

El

etcétera.

y por la unidad (es deci¡ no tiene más divi- 16,20, etc., no son primos, ya que son divi-

divisible por 3, g ío ei por 2, etc.

por números distintos. a ellos mismos y a la unidad. Arí, 9

",

algoritmo de resolución del problema pasa por dividir sucesivamenteil número pir 2,3, 4

,

1. Inrc io .

2. Poner X igual a

2 (,X = 2, X, .¡artable que representa

X

(N/X) .

de N./X es

enLero, enLonces N no es

contrario,

a

los

busca N) .

divisores

que se

3

4

6.

Divrdir N por

Si el resultado

al pur]r-o 7; en caso

Suma I

al !i

r.=

un numero primo y

continuar eL proceso.

a X (X <- X + 1).

igrual a Nr, entonces N es un numeto primo; en caso contrarrt,

p.r1-_o J.

Frn.

del

rrurer:

E:!u

página 19.

- .'

condición puede ser sustituida por x

= n diw 2 (donde div es el operador dir.i-iión eni¡:

Fundamentos de ProgramacrÓn

Por ejemplo, si N es 131,los pasos anteriores seían:

1.

Inicio.

)-i,)

\

3 y 4. L3L/x. Como eI resullado no es €:---=1" := l-:--l

5.

+

)

'r-96

Jl,

X =

se bifu

b. ^o10 ^

-

no

3.

.,

es

'a

aI

o:-. -

:

'

3 y

5.

6- Como x no es 131 bifurca

3 y

7 .

4. 131/X resultado no es

X e

4.

Fin.

3 + 1,

L3L/x

X = 4.

,

etc.

al

entero'

Punto :'

!rcceso

ñ

Ejemplo 1.3

Realiz,ctr la suma de todos los números pares entre 2 t 1000'

--'

El problemaconsisteensumar2

Utilizaremos las palabras

+ 4 + 6 + E

-

SUMA y NUMERO (t'ariables' serán

representar

La

las sumas sucesivas (2 + 4), (2 + 4 + 6), (2 - =- á - : l' etc'

solución se puede escribir con el siguiente algoritmo:

l. Inicao.

2. Establecer SUM-A a 0.

1 LsLob-e-or N. v-RO a z.

4. Sumar NUMERO a SU14-A. El

1

'l

resultado sel:a =

5. Incrementar NUMERO en 2 unidades '

6. Si NUMERO =< 1000 l¡ífurcar valor de SUMA y terminar

1. Frn.

al paso 4i e:

el proceso'

i.no-inudas más tarde)

¡- su;na (SUILA) .

esc::ibir e1 ultimo

para

1,3. LOS LENGUAJES DE PROGRAMACION

Como se ha visto en el apartado anterior, para que un procesador realice un proceso se le debe sumi-

nistrar en primer tugar un algoritmo adeóuado. El p¡gcesador debe sg'capaz de interpretatgl-¿lgo- ritmo. 1o que significa

o comprender las instrucciones de cada paso'

. realizar las operaciones coffespondientes.

1.3.

Los

SdiIk

máq

conS

fica

l

,sua-i

tipo:

tluc

cual

1.:

Lor

"t

m3

irn'

m3

dii

di:

CuanrJo el procesador es una computadora, el algoritmo se ha de expresar en un formato que se

denomiaa prr-, qrnurn. L n programa

conducen a e\presarun uigoitrno

- guajes utilizados pam escribir

se éscribe en un lenguaje de programación y las operaciones

en folrna de programa se llaman programacióre. Así pues, los len-

progtamas de computadoras son los lenguajes de programación y pro-

-que

gramndores son los escritores 1' diseñadores de programas'

Los principales tipo: de len-euajes utilizados en la actualidad son tres:

o lenguaje nuíquinLt.

c. Ienguaje de bajo ni'el tettsotttblador),

o lenguajes de alto ntel.

f'

,

L-

*_

Algori!,tcs , :

1.3.1. lnstrucciones a la computadora

Los diferentes pasos (acciones) de un algoritmo se expresan en los programas conlo il¡sr¡:¿ . ¡ . ,:.

sentencies o proposiciones (normalmente el término instrucción se suele referir a los leng;r-;.

máquina y bajo nivel, reservando la sentencia o proposición para los lenguajes de alto nir.el . P :

consiguiente, un programa consta de una secuencia de instrucciones, cada una de las cuales espe fica ciertas operaciones que debe ejecutar la computadora. La elaboración de un programa requerirá conocer eljuego o repeftorio de instrucciones del 1en- guaje. Aunque en el Capítulo 3 se analizarán con más detalle las instrucciones, adelantaremos los tipos fundamentales de instrucciones que una computadora es capaz de manipular y ejecutar. Las ins-

todoslos le-nguaje5.(-- programación se pueden condensar en

truccionq¡ !-A_t:lsJ-c,qmu-nes-.a.casi

cuatro gfupos:

-

o

o

o

c

Ins.tt:uc.cioues de eülra.da/,tslidaJnstrucciones de trans.ferencia de información y datos entre dispositivos periféricos (tec1ado, impresora, unidad de disco, etc.) y la memoria central.

Instrucciones aritméticq-lósicqs.Instmcciones-que

ejecutan operaciones aritméticas (suma,

iesta;rnültlpticacióñ. división. potenciación), lógicas (operaciones and, or, not, etc.).

Instrucciones selecf ivas. Instrucciones que permiien la selección de lareas alternativas en fun-

ción de los resultados de diferent"r

Instrucciones repetitivas. Instrucciones que permiten la repetición de secuencias de instruc-

condicionales.

"^pi.riónes

ciones un número determinado o indeterminado de veces.

1.3.2. Lenguajes máquina

-!.o--s lep"ggSig§.m"á-$d4?*sgg-49uellos,qu-e-.sstán qs-qn-los en lenguajes directamente inteligibles por la

máquina (computadora), ya que sus instrucciones son cadenas binctrias (cadenas o series de carac-

teres

implicadas

que especifican una operación, y.las.posiciones (dirección) de memoria

en.la operación se denomi-nan instrucciones de máquina o código mtíquina. El cédi§o

-dígito-s--O.y.1)

máquina es el conocido código binario.

-f--as-iqstr!99r_9!es-en le¡ggaje má_q¡i_na{,gpCtd§.fr"dd*bpt{lyax

diferirán

y, por tanro,

de una computadora a otrá. El lenguaje máquina de un PC (computadora personal) será

de la c_ompur_ad-ora

diferente de un sistema HP 9000 (HP, Hewlett Packard) o un sistema 6000 de IBM.

I-a;venrltiqs dg programay en ]epgu4je máquina son la posibilidad de cargar (rransferir un

Posiciones

de memoria

01

00

001 0

01

01

01 00

0102

001 1

0000

01

00

0000

01

01

0000

01 10

lnstrucciones binarias (código máquina)

Figura 1,4. lnstrucciones en lenguaje máquina.

r

Fundamentos de programacion

T

programa a la memoria.¡ s.U qgg_e_sidaqde traducción ppsterior. 1o que supone una velocidad de eje-

c uc i ón superi oia cüal quier ot ro len guaje- de prrogra m ac i ón.

Los incenvenientes

-en

recomendables los lenguajes

la actualidad- superan a 1as I'enta3as. 1o que hace prácticamente no máquina. Estos inconr e nientes son:

o

dificultad y lentitud en 1a codificación.

.

poca fiabilidad,

o

dificultad grande de verificar y poner a punto los programas.

o

los programas só1o son ejecutables en el mismo procesador (VCP, Unidad Central de Pro-

ceso).

máquina, desde e1 punto de r.ista de1 usuario, se han creado otros len-

guajes que permiten

g.uóiu, óasi siempre inglés, aunque existen excepciones. como es el caso de las versiones españolas

del lenguaje LOGO).

Para evitar los lenguajes

escribir programas con instrucciones simila¡es al lenguaje humano (por des-

Estos lenguajes son los de alto nivel y bajo nivel.

1.3.3. Lenguaies de baio nivel

los-Ienguajes

elios,

de bajo ni+et son más fáciles de utilizar que 1os lenguajes máquina, pero, al igual que

dépenden de 1a máquina en parricular. El len-uuaje de bajo nivel por e¡c9!919Q_e;91*e11am

g!¿1,1or (issembly language). Las instrucciones en lenguaje ensamblador son instruccio-nes qglocidgs

nemotécnicos típicos de operaciones aritméticas son:

en ingles, ADD, SUB, DIV: e_tc:; en español,

comonematécnko§ (mneruonics'). Po+ejemplo,

SUM, F-'S. l---. etc.

Una instrucción típica de suma sería:

N,P

Esta instrucción podría significar <<sumar el número contettido en la posición de memorio M al

,"ir,'¿¡p alntacenado en la posición de memoria N t' situar el resultctclc¡ en la posición de memoria

P Er identemente. es mucho más sencillo recordar ia instrucción anterior con un nemotécnico qtte

. * :¿:ir alente en código máquina:

'

,

-- --,-

1010

1011

j-: ;;¡grama escrito en lenguaje ensamblador no puede ser ejecutado directamente por la com-

:;¿*ta

esro se diferencia esencialmente cle1 lenguaje máquina-, sino que requiere una

-!:n

r::= -ri i¡-i-j- t: ; ión al lenguaje máquina.

E- :: ::":t: ori_einal escrito en lenguaje ensamblador se denomina programa fuente y e7 pto-

-¡;ir;¡á-. en lenguaje máquina se conoce como programa objeto, ya directamente inteligible

JüEi\i;*i*{-d-

=¿::,¿

F\.r: -r

E- -:.,,jr-,--,-,- ;¿+ra€r¿susfuentc a objeto e.s-un programa llamado ensamblaelar (assembler),

I'

eistei;; en c¿sr. t':,,jas las computadoras (Figura 1.5).

\o s¿ ,lebe cc,ni]¿ndir

bladt,r ,r¿-r-rc¡nr¡¿¡ . encars¡do cle

-aunque

en español adoptan el mismo nombre- el programa ensam-

efectuar la traducción del programa fuente escrito a lenguaje

máquina. con el i¿,r¡¡, 1;,,¿ ¿t!stünblaclor (assembly language), lenguaje de programación con una

estructura r gramática derlnirlas. Los lenguajes ensambl¿dore! presentanlat,entaja frente a los lenguajes máquina de su mayor

facilidad de codificación r

en seneral. su velocidad de cálculo.

J

7

Programa

fuente en

ensamblador

(assemblyl

Programa

ENSAMBLADOR

(assembler)

Figura 1.5. Programa ensamblador,

Algoritmos y programas

Programa

objeto en

código

máquina

Los inconvenientgs más notables de los lenguajes ensambiadLrres son:

o . D-ependencia total de la máquina,

1o que impide la transp nabilidad

de los programas (posi-

bilidad de ejecutar un programa en diferentes máquina-r r. Ei lenruaje ensamblador del PC es

distinto del lenguaje ensamblador del Apple Macrnto:h.

o La formación de los programadores es más compleja que i: c¡,rr;.pondiente a 1os proglema-

- dores de alto nivel, ya que exige no sólo las técnica-s ri.e ,¡ü=.r-r,,:ión. sjlo tambié-ñl_sono-

cimiento del interior de la máquina.

Hoy día los lenguajes ensambladores tienen sus aplicacitn¿s n;., ieiucidr< en 1a pro_eramación

de aplicaciones y se centran en aplicaciones de tiempo electrónicos, etc.

real.

1.3.4. Lenguajes de alto nivel

.r,nir,:,i üe procasL1s r de dispositiYos

Los lenguajes de alto nivel son los más utilizados por 1os pro_:r::nadores. Están diseñados para que las personas-escriban y entiendan los programas de un moi¡ r.rucho mris t=a-ci1-qué-IliTáñ3ü¡ies máquina y ensambladores. Otra razón es que un prosram3 e.--:--Io en un lenguaje de alto nivel es independiente de la máquina; esto es, las instrucciones del prrr_irama de la computadora no depggden del diseño del hardware o de una computadora en particul:r. En --onsecuencia. los programas escri-

tos en lenguajes de alto nivel son portables o transporrLibir--r. lo que signilica la posibilidad de poder ser ejecutados con poca o ninguna modificación en dilerentes tipos de computadoras; al contrario

que los programas en lenguaje máquina o ensamblador. que sóio se pueden ejecutar en un determi- nado tipo de computadora.

Los lenguajes de alto nivel presentan las siguienres;+,.r:.r;-las:

o

o

El tiempo de formación de los programadores es relativamente_ c_qrto e-omparado con otros len-

guajes.

La escritura de programas se basa en reglas sintácucas similares a los leuguajas hum,a.nos.

Nombres de las instrucciones, tales como :.:-r--. r

-:1

?RINT, O.pEN,.etc.

¡ Las modificaciones y puestas a punto de los programas son más fáciles.

o Reducción del coste de los programas.

. Transportabilidad.

Los inconvenientes se concretan en:

o Incremento del tiempo de puesta a punto.

' iirénte para con§eguir éfpiograrna féfi"iili,o.

al necesita¡.se {ifelenteg t¡aducciones del,programa

o

.

o

No se aprovechan 1os recursos intemos de 1a m{quina* qu-e -s-e axplotan mtlcho mejor en len-

guajes máquina y ensambladores.

Aumento de la ocupación de memoria.

El tiempo de ejecución de los programas es mucho,mayor.

10 F u ndame ntos de progra macion

A1 igual que sucede con los ienguajes ensambladores. lo-s prosramas fuente tienen que ser tra- ducidos por programas traductores. llamados en es¡eca5o caii\ltúiljrd{e intérpretes.

Los lenguajes de programación de alto nivel existentes hov son muy numerosos aunque la

práctica demuestra que su uso mayoritario se reduce a

C C++ COBOL FORTRAN BASIC Pascal \¡lsual B,\SIC

están muy extendidos:

Clipper Ada Modula-2 Prolog LISP Smalltal}r

y comienzan a difundirse:

v11yt O!_ject Delphi Miranda Eiffel

aunque los dos primeros no dejan de ser entomos de

te en los lenguajes Clipper y Turbo Pascal.

1.3.5. Traductores de lenguaje

programación orientados a objetos con sopor-

Los traduq!-9,res.de leruguctje son programas que traducen a su \ ez los programas fuente escritos en lenguájes de altonivel a código rnáquina. Los traductores se dividen en:

h'

o

compiladores,

o

intérpretes.

1.3.5.1. lntérpretes

Vn irúérpretg es lJn traductor que toma un programa fuente 1o traduce y a continuación 1o ejecuta.

prácticamente ya no se utilizan, aunque las

r.ersiones a&§ISNUckBAS[C-se comerciali-zan-todar,r-a--con-efSistema-Qp-erativo -DO"S que .t)rre en 1as computadoras personales. Sin embargo, está muv e\tendida 1a versión interpretada del lenuuaje Smalltalk, un lenguaje orientado o objetos puro.

Los programas intérpretes clásicos como

EASIQ,

Programa fuente

lntérprete

Traducción y ejecución

línea a línea

Figura 1.6. lntérprete.

Algoritmos y c.rc-.-.:

11

Programa fuente

Programa objeto

Figura 1.7. La compilación de programas.

1.3.5.2. Compiladores

U-n,soflpiladaL§*tJ;E-l],rograma-quclmduce

nivel

-l,os4rogramas-fuente-eseeitss-e+,lenguqjes-de-alto

*Los

;-alenguaje-máquina.

-PascaLEOIIIRANT-,

programas escritos

en lenguajes alto nivel se llarnan prograruas"fwettte y el program-a-Ira--

ducido

grama fuente.

programg objeto o códiga abjefo. El compilador traduce -sentencia a sentencii