Publicado el 12 de Agosto del 2019
625 visualizaciones desde el 12 de Agosto del 2019
1,6 MB
8 paginas
Creado hace 11a (01/10/2012)
Fundamentos de programación
Informática, computadora, y programación
¿Qué es la Informática?
¿Qué es la Informática?
1
Grado en Ingeniería Informática
Grado en Ingeniería Informática
Grado en Ingeniería del Software
Grado en Ingeniería del Software
Grado en Ingeniería de Computadores
Grado en Ingeniería de Computadores
Material de la Prof.ª Mercedes Gómez Albarrán
Material de la Prof.ª Mercedes Gómez Albarrán
Versión revisada y ampliada del material del Prof. Luis Hernández Yáñez
Versión revisada y ampliada del material del Prof. Luis Hernández Yáñez
Facultad de Informática
Facultad de Informática
Universidad Complutense
Universidad Complutense
¿Qué es una computadora?
¿Qué es una computadora?
Hardware vs. software
Hardware vs. software
¿En qué consiste la programación de computadoras?
¿En qué consiste la programación de computadoras?
Fundamentos de programación: Computadoras y programación
Fundamentos de programación: Computadoras y programación
Página
Página 11
El hombre y sus primeros intentos de
procesar la información
Ábaco –– 2.000 a.c.
Ábaco
2.000 a.c.
El sumador de Pascal –– mediados s.XVII
El sumador de Pascal
mediados s.XVII
La La Pascalina
Pascalina
(Wikipedia)
(Wikipedia)
Comienza la era de la Informática
19451945
El modelo de J. von Neumann: estructura de la computadora
El modelo de J. von Neumann: estructura de la computadora
El concepto de programa interno
El concepto de programa interno
La calculadora de G.W. von Leibniz –– finales s.XVII
La calculadora de G.W. von Leibniz
finales s.XVII
Dispositivos de E/S
Dispositivos de E/S
La máquina de diferencias de Babbage
La máquina de diferencias de Babbage –– s.XIXs.XIX
El concepto de programa externo
El concepto de programa externo
Lady Ada Lovelace es
Lady Ada Lovelace es
considerada la primera
considerada la primera
programadora
programadora
C.P.U. (Procesador)
C.P.U. (Procesador)
ALUALU
Unidad Aritmético--Lógica
Unidad Aritmético
Lógica
Unidad de Control
Unidad de Control
Memoria
Memoria
Fundamentos de programación: Computadoras y programación
Fundamentos de programación: Computadoras y programación
Página
Página 22
Fundamentos de programación: Computadoras y programación
Fundamentos de programación: Computadoras y programación
Página
Página 33
Algunos hitos en la vida de la Informática
Las computadoras están por todas partes
¡Con múltiples formas distintas de un PC!
¡Con múltiples formas distintas de un PC!
¿Cuándo se crean los primeros lenguajes de programación? ¿cuáles
¿Cuándo se crean los primeros lenguajes de programación? ¿cuáles
fueron? ¿Es C++ mayor de edad? ¿Quién es más joven: C++ o Java?
fueron? ¿Es C++ mayor de edad? ¿Quién es más joven: C++ o Java?
¿Cuál puede considerarse el primer virus informático?
¿Cuál puede considerarse el primer virus informático?
¿Quién surge primero: MS
¿Quién surge primero: MS--DOS, Windows, UNIX, Linux,
¿Quién surge primero: MS
¿Quién surge primero: MS--DOS, Windows, UNIX, Linux,
DOS, Windows, UNIX, Linux, Android
DOS, Windows, UNIX, Linux, Android
Android??
Android??
¿Cuándo se crea la WWW?
¿Cuándo se crea la WWW?
¿Qué soportes externos conoces: disquete, CD, DVD? ¿Alguno nació
¿Qué soportes externos conoces: disquete, CD, DVD? ¿Alguno nació
antes que tú?
antes que tú?
¿Quién es Alan Turing
¿Quién es Alan
Turing??
Fundamentos de programación: Computadoras y programación
Fundamentos de programación: Computadoras y programación
Página
Página 44
Fundamentos de programación: Computadoras y programación
Fundamentos de programación: Computadoras y programación
Página
Página 55
¿Qué entiende la computadora?
Lenguaje máquina
Computadora
Computadora: Máquina electrónica
: Máquina electrónica digital
digital, dotada de ...
, dotada de ...
Pasos
a = (b + d)/(c + e)
La computadora manipula información digital: esquema binario
La computadora manipula información digital: esquema binario
¿Por qué no se usa una representación analógica de la información?
¿Por qué no se usa una representación analógica de la información?
¿A qué nos conduce la solución adoptada para evitar el problema
¿A qué nos conduce la solución adoptada para evitar el problema
tecnológico?
tecnológico?
sumar cc y y ee, y guardar el resultado en una dirección de memoria
, y guardar el resultado en una dirección de memoria
sumar bb yy dd, y guardar el resultado en una dirección de memoria
, y guardar el resultado en una dirección de memoria
sumar
temporal
temporal X X
sumar
temporal
temporal YY
dividir el contenido de
dividir el contenido de
dividir el contenido de YY por el de
dividir el contenido de YY por el de
por el de XX y guardar en la dirección de
por el de XX y guardar en la dirección de
y guardar en la dirección de aa
y guardar en la dirección de aa
Ejemplo de código máquina
codigoOp direccOp1 direccOp2 direccRes
Código de la suma
0000 00001000 00001100 00001110
0000 00011000 00011100 00011110
0101 00011110 00001110 00000100
Direcc. Temporal X
Código de la división
Direcc. Temporal Y
Fundamentos de programación: Computadoras y programación
Fundamentos de programación: Computadoras y programación
Página
Página 66
Fundamentos de programación: Computadoras y programación
Fundamentos de programación: Computadoras y programación
Página
Página 77
Lenguaje máquina
Lenguaje ensamblador
Lenguaje de programación de bajo nivel
Lenguaje de programación de bajo nivel
Nulo nivel de abstracción: los códigos contienen los ceros y unos
Nulo nivel de abstracción: los códigos contienen los ceros y unos
que gobiernan directamente los circuitos de la CPU
que gobiernan directamente los circuitos de la CPU
Totalmente dependiente de la máquina
Totalmente dependiente de la máquina
Cada familia de procesadores usa sus propios códigos,
Cada familia de procesadores usa sus propios códigos,
distintos de los de otras familias
distintos de los de otras familias
Programación: muy
Programación: muy tediosa
tediosa
Grandes posibilidades de error
Grandes posibilidades de error
Lenguaje simbólico con una mínima capacidad de abstracción
Lenguaje simbólico con una mínima capacidad de abstracción
Nemotécnicos para los códigos que representan
Nemotécnicos para los códigos que representan
instrucciones
instrucciones
Nombres simbólicos para las direcciones de memoria
Nombres simbólicos para las direcciones de memoria
a = (b + d)/(c + e)
ADD C, E, X
ADD B, D, Y
DIV Y, X, A
Mayor legibilidad
Mayor legibilidad
¿Cómo entiende la máquina este código?
¿Cómo entiende la máquina este código?
Dependiente de la máquina
Dependiente de la máquina
Código fuente
Código fuente
(lenguaje ensamblador)
(lenguaje ensamblador)
(lenguaje ensamblador)
(lenguaje ensamblador)
Programa ensamblador
Programa ensamblador
Código objeto
Código objeto
(lenguaje máquina)
(lenguaje máquina)
Fundamentos de programación: Computadoras y programación
Fundamentos de programación: Computadoras y programación
Página
Página 88
Fundamentos de programación: Computadoras y programación
Fundamentos de programación: Computadoras y programación
Página
Página 99
Lenguajes de programación de alto nivel
Lenguajes de programación de alto nivel
Lenguaje que permite expresar el mecanismo de resolución de
Lenguaje que permite expresar el mecanismo de resolución de
problemas usando instrucciones independientemente de la
problemas usando instrucciones independientemente de la
computadora
computadora
Más cercanos a los lenguajes natural y matemático
Más cercanos a los lenguajes natural y matemático
a = (b + d)/(c + e);
Capacidad de abstracción
Capacidad de abstracción
Abstracción procedimental
Abstracción procedimental
Abstracción procedimental
Abstracción procedimental
Abstracción de datos
Abstracción de datos
Mayor legibilidad, mayor facilidad de codificación
Mayor legibilidad, mayor facilidad de codificación
¿Cómo conseguir que la computadora “entienda” los programas
¿Cómo conseguir que la computadora “entienda” los programas
escritos en lenguajes de alto nivel?
escritos en lenguajes de alto nivel?
Compiladores e intérpretes
Compiladores e intérpretes
COBOL
COBOL
COBOL
COBOL
1959
1959
1959
1959
FORTRAN
FORTRAN
FORTRAN
FORTRAN
1954
1954
1954
1954
ALGOL
ALGOL
ALGOL
ALGOL
1958
1958
1958
1958
LispLisp
LispLisp
1958
1958
1958
1958
PL/IPL/I
PL/IPL/I
1964
1964
1964
1964
CPLCPL
CPLCPL
1963
1963
1963
1963
BASIC
BASIC
BASIC
BASIC
BASIC
BASIC
BASIC
BASIC
1964
1964
1964
1964
Simula
Simula
Simula
Simula
1964
1964
1964
1964
C++C++
C++C++
1983
1983
1983
1983
Prolog
Prolog
Prolog
Prolog
1970
1970
1970
1970
CC
CC
1971
1971
1971
1971
Pascal
Pascal
Pascal
Pascal
1970
1970
1970
1970
Modula
Modula
Modula
Modula
1975
1975
1975
1975
JavaJava
JavaJava
1995
1995
1995
1995
C#C#
C#C#
2000
2000
2000
2000
Python
Python
Python
Python
1991
1991
1991
1991
AdaAda
AdaAda
1979
1979
1979
1979
Eiffel
Eiffel
Eiffel
Eiffel
1986
1986
1986
1986
RubyRuby
RubyRuby
1993
1993
1993
1993
Haskell
Haskell
Haskell
Haskell
1987
1987
1987
1987
Smalltalk
Smalltalk
Smalltalk
Smalltalk
1971
1971
1971
1971
Scheme
Scheme
Scheme
Scheme
1975
1975
1975
1975
Logo
Logo
Logo
Logo
1968
1968
1968
1968
Fuente: http://www.levenez.com/lang/
Fuente:
http://www.levenez.com/lang/
Fundamentos de programación: Computadoras y programación
Fundamentos de programación: Computadoras y programación
Página
Página 1010
Fundamentos de programación: Computadoras y programación
Fundamentos de programación: Computadoras y programación
Página
Página 1111
Estado
Estado
inicial
inicial
Algoritmo
Algoritmo
Estado
Estado
Comentarios de: Qué es una computadora - Fundamentos de programación (0)
No hay comentarios