PDF de programación - Algorítmica y Lenguajes de Programación

<<>>
Imágen de pdf Algorítmica y Lenguajes de Programación

Algorítmica y Lenguajes de Programacióngráfica de visualizaciones

Publicado el 7 de Junio del 2018
504 visualizaciones desde el 7 de Junio del 2018
190,0 KB
16 paginas
Algorítmica y Lenguajes de Programación

Lenguajes de programación

Lenguajes. Introducción
n Un lenguaje de programación permite

expresar un algoritmo de forma
comprensible para un ordenador.

n FORTRAN será el lenguaje de programación

a utilizar durante el curso.

n Antes de comprender cómo funciona un
lenguaje de programación es necesario
entender cómo trabaja un ordenador
electrónico.

2

1

Lenguajes. Máquinas algorítmicas

n Ordenadores actuales aproximadamente medio siglo.
n Antecedentes históricos:

n 3000 AC: Ábaco.
n 1274: Ramón Llull, dispositivos demostraciones lógicas.
n 1500: Leonardo DaVinci, máquinas de calcular mecánicas.
n 1624: Schickard desarrolló una calculadora con 4

operaciones básicas.

n 1671: Leibniz construyó una calculadora con las 4

operaciones más la raíz cuadrada.

n 1830: Babbage diseño una computadora programable

impulsada a vapor. Su colaboradora, Ada Lovelace, escribió
programas para la máquina.

n Posteriormente: tarjetas perforadas, electricidad,

lámparas, transistores y chips...

3

Lenguajes. Arquitectura Von Neumann (i)
n En 1944 John von Neumann, Proyecto

Manhattan, escribió un artículo en el que describía
una arquitectura, inspirada por las ideas de
Babbage, que aún perdura.

n

La arquitectura Von Neumann divide el
ordenador en 4 partes:
1. Unidad Aritmética (UA).
2. Unidad de Control (UC).
3. Memoria (M).
4. Dispositivos de entrada/salida (E/S).

4

2

Lenguajes. Arquitectura Von Neumann (ii)
n La Unidad Aritmética realiza operaciones

aritméticas básicas y funciones más
complejas (raíces, logaritmos, funciones
trigonométricas, etc.)

n La Unidad de Control controla la ejecución
de las operaciones y dirige el funcionamiento
del resto de unidades de tal forma que el
trabajo conjunto de todas conduzca a la
consecución de las tareas específicas
programadas en el sistema.

5

Lenguajes. Arquitectura Von Neumann (iii)

n

La Unidad de Control realiza las siguientes
operaciones:
1. Recupera de memoria la siguiente instrucción a

ejecutar.

2. Decodifica la instrucción y determina las acciones

que debe llevar a cabo.

3. Envía órdenes a la memoria para recuperar o

almacenar datos, a la UA para llevar a cabo
operaciones y a los dispositivos de E/S para
recibir o envíar datos al usuario.

6

3

Lenguajes. Arquitectura Von Neumann (iv)
n La Memoria almacena tanto datos
numéricos como instrucciones; está
dividida en celdas, cada una con una
dirección única que permite el acceso a
su contenido.

n Los dispositivos de entrada/salida

con la máquina.

7

Lenguajes. Arquitectura Von Neumann (v)

n La arquitectura Von Neumann no hace

referencia a cuestiones de índole tecnológica;
una máquina electrónica puede implementar esta
arquitectura de la misma forma que un dispositivo
mecánico.

Memoria

Unidad

Aritmética

Unidad de

Control

Dispositivos

E/S

Usuario

8

4

Lenguajes. El código binario (i)
n Los ordenadores utilizan internamente el código

binario.

n La mínima información que puede manipular un

ordenador electrónico es un dígito binario, también
llamado bit: 0 y 1. Los bits pueden agruparse
formando unidades superiores:
n 23= 8 bits forman un byte, octeto o carácter.
n 210 = 1024 bytes forman un kilobyte o K.
n 1024 kilobytes forman un megabyte o mega. Un megabyte

es aproximadamente el tamaño de un disquete.

n 1024 megabytes forman un gigabyte o giga. El código

genético de un ser humano ocupa apenas 3 gigabytes.

n 1024 gigabytes forman un terabyte o tera. Un terabyte

puede almacenar más de 100 días de audio.

9

Lenguajes. El código binario (ii)
n El sistema binario permite representar
cualquier número natural (con tal de
disponer de suficientes dígitos); por ejemplo
el número binario 10010110 se corresponde
al número 150 decimal:

10010110 = 1·27 + 0·26 + 0·25 + 1·24 + 0·23
+ 1·22 + 1·21 + 0·20 = 128 + 0 + 0 + 16

+ 0 + 4 + 2 +0 = 150

n Para convertir un número decimal a binario
basta con realizar una serie de divisiones en
cascada.

10

5

Lenguajes. El código binario (iii)

n Conversión de un número decimal a

binario:

150

2
0 75
1

2
37
1

2
18
0

2
9
1

2
4
0

2
2
0

2
1
1

2
0

0
2

0

1
1
2

1
2
2

0
2

3

1
4
2

0
5
2

0
2

6

1
7
2

1 0 0 1 0 1 1 0

11

Lenguajes. Representación de caracteres

n

n

n

Para representar caracteres en un sistema binario debe
desarrollarse un código conocido por todos los usuarios que
establezca:

n

n

Los caracteres de los que dispondrá el código.
El número asociado a cada carácter (dicho número se podrá representar,
obviamente, en binario).

Los códigos de caracteres codifican cada elemento
utilizando un byte; por tanto, es posible representar 256
caracteres. Los caracteres a representar se agrupan en cinco
categorías:

1.

2.

3.

4.

5.

Caracteres alfabéticos: A-Z, a-z
Caracteres numéricos: 0-9
Caracteres especiales: ?, !, {, (, etc.
Caracteres de control: no son imprimibles.
Caracteres expandidos: á, Ç , Ñ, etc.

El código de caracteres más comunmente usado es el ASCII
que utilizan, por ejemplo, los PC’s.
12

6

¨
¨
¨
¨
¨
¨
¨
¨
Lenguajes. Representación de valores lógicos
n Los valores lógicos son dos: verdadero y falso;

para codificarlos bastaría con emplear un solo bit
asignando de manera arbitraria el 1 y el 0 a cada
uno de esos valores.

n Por cuestiones de eficiencia, los ordenadores no

manipulan bits individuales sino bytes por lo que la
representación de los valores lógicos emplea
siempre un byte. Dependiendo de la máquina,
dicho byte puede tener todos los bits a 1 o a 0, o
emplear un bit determinado para la representación
del valor lógico.

13

Lenguajes. Representación de enteros

n

n

Los números enteros pueden tener signo o no; en caso de enteros sin
signo la representación se hace codificando el número directamente
en base 2. Sin embargo, no se puede utilizar un número arbitrario de
bits para representar un valor, sino que es necesario especificar la
longitud de los mismos.

Los ordenadores utilizan enteros sin signo de 2 bytes (enteros
cortos) y enteros sin signo de 4 bytes (enteros largos). Con 16 bits
es posible representar 65.536 valores con lo cual el rango de los
enteros cortos sin signo es el [0 , 65.535]; en los enteros largos sin
signo es [0 , 4.294.967.296].

n Por tanto, un ordenador no puede representar cualquier valor

sino un valor perteneciente al rango determinado.

n Para los enteros con signo se utiliza un bit para representar el signo.
El rango de enteros cortos con signo es [-32.768 , 32.767], y los
enteros largos con signo [-2.147.483.648 , 2.147.483.647].

14

7

Lenguajes. Representación de reales

n Para codificar los números reales se utiliza el formato exponencial, es

decir de la forma:

mantisa x 2exponente

n Para codificar un número en este formato se utiliza una parte de los

bits para la representación de la mantisa y otra parte para la
representación del exponente.

n Como en el caso de los enteros habrá un rango de valores y, además,

una limitación en la precisión debido a que el exponente también se
deberá limitar a un rango específico.

n Por tanto, existe un error de representación puesto que habrá

infinitos números que no se pueden representar de forma exacta en un
ordenador:
n Números con infinitas cifras decimales (como los irracionales).
n Números con más cifras decimales que las representables.
n Números con demasiadas cifras significativas (números excesivamente

grandes o excesivamente pequeños).

15

Lenguajes. Representación de datos

n Aunque un ordenador electrónico sólo puede manipular

números en base 2 es posible representar cualquier tipo de
dato:
n Los caracteres se representan mediante la definición de un

conjunto de símbolos para cada uno de los cuales se asocia un
número natural (representable en binario).

n Los valores lógicos se representan de forma inmediata asociando a

los valores verdadero y falso un valor binario arbitrario.

n Los enteros sin signo se representan de forma directa y para los

enteros con signo se emplea un bit para indicar el signo del
entero.

n Los reales se dividen en mantisa y exponente representando

ambas partes como enteros con signo.

n Esta forma de representar la información supone la

existencia de límites representativos.

16

8

Lenguajes. Lenguaje máquina

n

n

Las instrucciones que maneja la Unidad de Control también deben
representarse en forma binaria para poder ser almacenadas en la memoria.

Este conjunto de instrucciones codificadas en binario se conoce con el
nombre de lenguaje máquina; es el lenguaje de programación más básico y
el único que entiende un ordenador.

n Resulta muy tedioso programar en código máquina:

0000 0000 0010 0000 0000 0000 0010 0000
1110 0010 0010 0001 0000 0000 0010 0000

n

La primera instrucción permite sumar dos números enteros y almacenar el
resultado en una tercera posición mientras que la segunda permite restar dos
números reales y almacenar el resultado en una tercera posición. Está claro,
¿¡verdad!?

n Antiguamente los ordenadores se programaban así pero eran máquinas

rudimentarias con pocas instrucciones.

n

En la actualidad hay que utilizar lenguajes más avanzados que se deben
traducir a código máquina.

17

Lenguajes. Lenguaje ensamblador

n

Los lenguajes ensambladores son una versión simbólica de los
lenguajes máquina; por cada instrucción de la máquina se crea un
símbolo que puede utilizar el programador; así, las instrucciones anteriores
se escribirían como:

add.i c a b
sub.f c a b

n Aunque aún es críptico resulta más sencillo programar en un lenguaje

de este tipo que en código máquina.

n Reciben este nombre porque las instrucciones básicas del lenguaje

ensamblador eran en realidad pequeños programas escritos directamente
en código máquina; cuando un programador debía escribir un nuevo
programa con ese lenguaje en realidad estaba ensamblando código
máquina.

n Tanto los lenguajes ensambladores como el código máquina son
totalmen
  • Links de descarga
http://lwp-l.com/pdf11667

Comentarios de: Algorítmica y Lenguajes de Programación (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad