Beruflich Dokumente
Kultur Dokumente
7
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Alejandro Piedrahita H.
Instituto de Matem
aticas
Facultad de Ciencias Exactas y Naturales
Universidad de Antioquia
Contenido
1 Introducci
on
2 Arquitectura y funcionamiento
4 Referencias
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Abaco chino (500 adC)
Realiza operaciones aritm
eticas
Primera calculadora mec
anica
Suanpan,
abaco chino
Pascalina (1642)
Calculadora mec
anica inventada por Blaise Pascal
Suma y resta n
umeros de hasta 7 cifras por medio de
un mecanismo de ruedas y engranajes
En 1673 Gottfried von Leibniz modifica la pascalina y
crea la primera calculadora de prop
osito general
Pascalina
ENIAC (1946)
Construida por John Presper Eckert y John William
Mauchly en la Universidad de Pennsylvania
Utilizaba tubos de vaco
ENIAC
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Tubos de vaco
Segunda generaci
on (19591964)
Transistores
Memoria de n
ucleos magn
eticos
transmiten datos a la m
aquina a distancia
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Tercera generaci
on (19641971)
Circuitos integrados
Utilizaci
on de memorias RAM y ROM
Cuarta generaci
on (1971 a la fecha)
Video recomendado
http://youtu.be/L UIRRXjqVA
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Conceptos basicos
Hardware y Software
1 Monitor
2 Placa base
3 Procesador
4 Puertos ATA
5 Memoria principal (RAM)
6 Placas de expansi
on
7 Fuente electrica
8 Unidad de almacenamiento o
ptico
9 Disco duro
10 Teclado
11 Rat
on
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Arquitectura Eckert-Mauchly
Unidad L
ogica Aritm
etica (ULA): realiza operaciones aritmeticas y
l
ogicas
Memorias
Memorias
Aplicaciones ofim
aticas: conjunto de programas para el uso en oficinas y
entornos profesionales. Incluyen procesadores de texto, hojas de c
alculo,
programas de presentaci on, sistemas de gesti`
on de bases de datos, etc.
Software educativo: software destinado a la ense
nanza y el auto
aprendizaje.
Software m
edico: software utilizado para fines m
edicos.
Software de calculo num erico: programas que simulan procesos
matem
aticos complejos que describen fen
omenos reales.
Software de dise no asistido (CAD): herramientas computacionales
que asisten a ingenieros, arquitectos y a otros profesionales del dise
no en
sus respectivas actividades.
Software de Control Num erico (CAM): programas destinados a controlar
las fases de manufactura de un producto, incluyendo la planeaci
on del
proceso y la producci
on, maquinado, calendarizaci
on, administraci
on y
control de calidad.
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Terminologa basica
Terminologa basica
Compilador: al igual que los interpretes, los compiladores traducen un
programa escrito en algun lenguaje de programaci on en una secuencia
de instrucciones de maquina (lenguaje de m aquina) que se pueden
ejecutar. A diferencia de los interpretes, el compilador s
olo traduce:
La velocidad de ejecuci
on de un archivo compilado es de 10 a 20 veces
superior a la de un archivo interpretado.
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Seg
un su nivel de abstracci
on
Seg
un la forma de ejecuci
on
Seg
un el paradigma
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Seg
un su nivel de abstracci
on
Lenguajes M
aquina
Lenguajes de bajo nivel
Lenguajes de medio nivel
Lenguajes de alto nivel
Seg
un la forma de ejecuci
on
Seg
un el paradigma
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Seg
un su nivel de abstracci
on
Lenguajes M
aquina
Lenguajes M
aquina Conjunto de instrucciones que
Lenguajes de bajo nivel puede ejecutar el computador
Lenguajes de medio nivel
(CPU).
Est
a compuesto por un
Lenguajes de alto nivel
conjunto de instrucciones
Seg
un la forma de ejecuci
on binarias (0 y 1) ejecutadas en
secuencia.
Seg
un el paradigma Representan acciones (on,
off) que la m
aquina podra
realizar.
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Seg
un su nivel de abstracci
on
Lenguajes de bajo nivel
Lenguajes M
aquina Proporciona poca o ninguna
Lenguajes de bajo nivel abstracci
on del
microprocesador del
Lenguajes de medio nivel
computador.
Lenguajes de alto nivel
Es bajo por ofrecer una
Seg
un la forma de ejecuci
on reducida abstracci
on entre el
lenguaje y el hardware
Seg
un el paradigma Maxima velocidad con mnimo
uso de memoria.
Requiere conocer en detalle la
arquitectura de la m
aquina.
Ejemplo: el lenguaje
ensamblador.
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Seg
un su nivel de abstracci
on
Lenguajes de medio nivel
Lenguajes M
aquina Presenta caractersticas que
Lenguajes de bajo nivel los acercan a los lenguajes de
Lenguajes de medio nivel
bajo nivel.
Posee cualidades que lo hacen
Lenguajes de alto nivel
un lenguaje mas cercano al
Seg
un la forma de ejecuci
on humano y, por tanto, de alto
nivel.
Seg
un el paradigma Expertos consideran al
lenguaje C, un lenguaje de
medio nivel.
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Seg
un su nivel de abstracci
on
Lenguajes de alto nivel
Lenguajes M
aquina De f acil comprensi
on por estar
Lenguajes de bajo nivel formado por elementos de
Lenguajes de medio nivel
lenguajes naturales como el
ingles.
Lenguajes de alto nivel
Dise
nado m as para la
Seg
un la forma de ejecuci
on capacidad cognitiva humana,
en lugar de la capacidad
Seg
un el paradigma ejecutora de las m
aquinas.
Ejemplos: Basic, Fortran,
COBOL.
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Seg
un su nivel de abstracci
on
Seg
un la forma de ejecuci
on
Lenguajes compilados
Lenguajes interpretados
Seg
un el paradigma
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Seg
un su nivel de abstracci
on Lenguajes compilados
Seg
un la forma de ejecuci
on Son traducidos partir de su
c
odigo fuente por medio de un
Lenguajes compilados
compilador.
Lenguajes interpretados
El archivo generado es
Seg
un el paradigma ejecutable para una
determinada plataforma.
Ejemplos: Fortran, Pascal, la
familia de lenguajes de C,
incluyendo C++ y Objective
C pero no Java.
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Seg
un su nivel de abstracci
on Lenguajes interpretados
Seg
un la forma de ejecuci
on Son ejecutado por medio de
un interprete.
Lenguajes compilados
Las instrucciones se traducen
Lenguajes interpretados
o interpretan una a una
Seg
un el paradigma siendo tpicamente unas 10
veces mas lentos que los
programas compilados.
Ejemplos: Lisp, Bash, Basic.
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Seg
un su nivel de abstracci
on
Seg
un la forma de ejecuci
on
Seg
un el paradigma
Paradigma imperativo o por
procedimientos
Paradigma funcional
Paradigma l
ogico
Paradigma orientado a objetos
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Seg
un su nivel de abstracci
on Paradigma imperativo
Seg
un la forma de ejecuci
on Conjunto de instrucciones que
el computador debe ejecutar.
Seg
un el paradigma
Enfoque que describe la
Paradigma imperativo o por programacion en terminos del
procedimientos estado del programa y
Paradigma funcional sentencias que cambian dicho
estado.
Paradigma l
ogico
Los programas imperativos le
Paradigma orientado a objetos
indican al computador c
omo
realizar una tarea.
La implementacion de
hardware de la mayora de
computadores es imperativa.
Ejemplos: BASIC, C, C++,
Fortran, Pascal, Java, Perl,
PHP.
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Seg
un su nivel de abstracci
on Paradigma funcional
Seg
un la forma de ejecuci
on Enfoque de programaci on
declarativo basado en la
Seg
un el paradigma utilizaci
on de funciones
Paradigma imperativo o por matem aticas.
procedimientos Hace enfasis en la aplicaci
on
Paradigma funcional de funciones, en contraste con
el concepto de estado del
Paradigma l
ogico
c
omputo (paradigma
Paradigma orientado a objetos imperativo)
No es necesario bajar al nivel
de la maquina para describir
el proceso llevado a cabo por
el programa.
Ejemplos: La familia de
lenguajes LISP (en particular
Scheme), ML o Haskell, R.
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Seg
un su nivel de abstracci
on Paradigma l
ogico
Seg
un la forma de ejecuci
on Forma parte de los
paradigmas declarativos en los
Seg
un el paradigma que se especfica que debera
Paradigma imperativo o por hacer el computador y no
procedimientos c
omo.
Paradigma funcional Tiene como caracterstica
principal la aplicaci
on de las
Paradigma l
ogico
reglas de la l
ogica para inferir
Paradigma orientado a objetos conclusiones a partir de datos.
El PROLOG es el lenguaje
emblem
atico del paradigma.
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Seg
un su nivel de abstracci
on Paradigma orientado a objetos
Seg
un la forma de ejecuci
on Estilo de programacion que
utiliza objetos como bloque
Seg
un el paradigma fundamental de construccion.
Paradigma imperativo o por Los bloques son un conjunto
procedimientos complejo de datos (atributos)
Paradigma funcional y funciones (metodos) que
poseen una determinada
Paradigma l
ogico
estructura y forman parte de
Paradigma orientado a una organizacion.
objetos
Los atributos definen el estado
del objeto; los metodos, su
comportamiento.
Ejemplos: Visual Basic, C++,
PHP.
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Bits y Bytes
Bit: dgito binario que toma como posible valor 0
o 1.
22 = 4 posibilidades:
0 0 : apagadoapagado.
0 1 : apagadoencendido.
1 0 : encendidoapagado.
1 1 : encendidoencendido.
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Bits y Bytes
Terminologa basica
Direcci
on de memoria
Palabra
Cadena finita de bits que es tratada por los circuitos como una sola
entidad, por la unidad de control como una instrucci on y por la unidad
aritm
etica-l
ogica como una cantidad.
Se les asigna una direcci
on de memoria.
El tama no de una palabra hace referencia al n
umero de bits contenidos
en ella.
Los computadores modernos normalmente tienen un tama
no de palabra
de 16, 32 64 bits.
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Terminologa basica
Caracteres: est
an formados por
Dgitos decimales: 0, 1, 2, . . . , 9
Letras: A, B, . . . , Z y a, b, . . . , z.
Campos:
Terminologa basica
Registro
N
umero de seguro social (campo alfanum
erico).
Direcci
on (campo alfanum
erico).
Percepciones de un a
no a la fecha (campo num
erico).
Terminologa basica
Archivos
El archivo de n
omina de una empresa contiene un registro para cada
empleado.
Bases de datos
Terminologa basica
Jerarqua de datos
Introducci
on Arquitectura y funcionamiento Software y lenguajes de programaci
on Referencias
Bibliografa I
Bibliografa II
Bibliografa III
Bibliografa IV
A. Shen
Algorithms and Programming
Springer Undergraduate Texts in Mathematics and Technology, 2010
P. Tymann
Schaums Outline of Principles of Computer Science
McGraw-Hill, 1th edition, 2008