Download Transparencias de clase

Document related concepts
Transcript
Fundamentos de
Informática
Grado en Información y Documentación
Tema 4
Introducción a la programación
1
Contenidos
Introducción: Programas e instrucciones.
 
 
 
 
 
Representación de instrucciones.
Tipos de instrucciones.
Tipos de estructuras en programas.
Partes de una instrucción.
Tipos de lenguajes.
 
 
 
 
 
 
Código máquina.
Lenguaje ensamblador.
Lenguajes de alto nivel
Lenguajes de bajo nivel vs lenguajes de alto nivel.
Lenguajes de programación: Evolución.
Traducción.
 
 
Ejemplos de lenguajes de alto nivel.
Entorno de programación.
Metodología de la programación.
Software libre y software propietario.
 
 
 
2
Introducción: Programas e instrucciones.
 
 
 
Para trabajar con un sistema informático nos hace falta un
ordenador (Hardware) y una serie de programas
(Software).
Un programa se puede ver como la solución a un
problema establecida en términos de una secuencia de
pasos computacionales (instrucciones o sentencias).
La programación de ordenadores es el proceso de
planificación de secuencias de las instrucciones para
realizar una acción o tarea.
Instrucción1
3
Instrucción2
Instrucción3
Representación de instrucciones.
Un programa se compone de instrucciones.
  Las instrucciones se
representan mediante 0’s y
1s. Código binario o Código
máquina.
  Cada codificación depende
del procesador.
  Las instrucciones deben ser
sencillas. Por ejemplo, suma
A,B y no Dibuja una casa.
 
4
Tipos de instrucciones
 
 
 
Instrucciones de transferencia: Mover los datos de un
sitio a otro.
Instrucciones de tratamiento de datos: Operaciones
Aritmético-Lógicas
Instrucciones de control: Permiten saltar el orden
secuencial de un programa. Debido a esto, encontramos
tres tipos de estructuras en los programas:
 
 
 
5
Estructura secuencial: Una sentencia sigue a otra.
Estructura condicional: Dependiendo de cuna condición se
ejecuta un conjunto de sentencias u otro.
Estructura repetitiva: Dependiendo de una condición se ejecuta
de forma repetitiva un conjunto de sentencias.
Tipos de estructuras en programas.
6
Partes de una instrucción
 
 
Código de operación: Codifican una
instrucción determinada.
Argumentos: Datos de la instrucción: Pueden
ser:
 
 
 
7
Direcciones de memoria con datos.
Datos a usar directamente.
Direcciones de memoria con la siguiente
instrucción.
Código máquina
Código máquina, código binario, lenguaje máquina o lenguaje
de bajo nivel.
 
 
 
 
 
 
8
Las instrucciones propias de cada máquina están codificadas con
ceros y unos.
Dependiente del procesador.
Incomprensibles y engorrosos de usar.
Realización de tareas complejas supone un gran esfuerzo.
Es dificil escribir en binario, se usan nemotécnicos (SUM, MUL,....).
Lenguaje ensamblador
 
 
 
 
9
Nemotécnico del código máquina.
Sigue ligado al ordenador, pero menos engorroso, pues se
utilizan palabras en lugar de sólo ceros y unos
Se traduce a lenguaje máquina, con un programa
Ensamblador.
Permiten variables, macros y comentarios.
Lenguajes de alto nivel
 
 
 
 
 
 
Cercanos al lenguaje natural y matemático. Por tanto son mas
fáciles de entender, leer y escribir.
Más compatibles (casi independientes del procesador).
Se permiten operaciones más complejas. Ej.: raíz cuadrada.
Son menos eficientes.
Se pueden usar sin conocer los entresijos de los ordenadores.
Necesidad de un Traductor que pase de lenguaje de alto
nivel a código máquina.
10
Lenguajes de alto nivel vs. bajo nivel
Si(nota>=5)entonces
nota=aprobado
Sino
nota=suspenso
Escribe(nota)
11
Mueve M[22], R1
Mueve 5,R2
Compara R1,R2
SaltaMenor M[10]
Mueve M[30],x41
Mueve M[31],x70
Mueve M[32],x72
Mueve M[33],x6F, etc.
Lenguajes de programación. Evolución.
 
 
 
 
 
 
Programas en Circuitos (No hay lenguaje como tal)
Con Von Newmann nacen lenguajes específicos para cada
computadora, en formato binario; son instrucciones
simples (0001101011101011010).
Código máquina.
Lenguaje Ensamblador.
Lenguajes de alto nivel.
Lenguajes de cuarta generación: Herramientas que
permiten construir aplicaciones sencillas combinando
piezas prefabricadas.
12
Traducción
 
Necesidad de un Traductor que pase de lenguaje de alto nivel a
código máquina:
 
 
 
Compilador: Se hace la conversión una vez de forma completa. Una vez
obtenido el programa ejecutable, se ejecutará todas las veces que
queramos, sin nuevas traducciones.
Intérprete: Se hace la conversión cada vez que se llama, sentencia a
sentencia. Interpreta una instrucción y la ejecuta directamente. La
traducción se repite en cada ejecución del programa. Los programas
son más portables pero más difíciles de optimizar y más lentos.
Cuando la traducción se hace en
una máquina distinta a la de
ejecución del programa, se utiliza un
traductor cruzado. En una
computadora se puede interpretar
otra distinta, con programas
llamados emuladores.
13
Ejemplos de lenguajes de alto nivel
 
Java (Interpretado), C(Compilado), C++(Compilado), C#
(Interpretado), Objetive C (Compilado), Pascal(Compilado),
Python (Interpretado), PHP (Interpretado), Perl
(Interpretado) , JavaScript (Interpretado), Basic(Interpretado),
Cobol(compilado), Fortran(Compilado)
14
Entorno de programación
 
 
 
 
 
Editor de texto
Compilador/traductor
Depurador: Para corregir errores.
Sistemas de ayuda
Herramientas varias (generación de documentación,
generación de interfaces de usuario, etc.)
15
Metodología de la programación
 
Estudio de procedimientos y/o métodos para resolver
problemas con computadoras, independientemente de un
lenguaje de programación concreto y del ordenador que
se va a implementar.
 
Es fundamental que los programas
cumplan:
 
 
 
16
Legibles: Comprensibles para
cualquier programador.
Modificables: Su estructura debe
permitir modificaciones.
Depurables: Debe ser fácil la
localización y corrección de errores.
Software libre y software propietario
 
 
 
El software libre es el software que respeta la libertad de los usuarios y, por
tanto, una vez obtenido puede ser usado, copiado, estudiado, cambiado,
redistribuido libremente e incluso vendido. Por lo tanto, debe venir
acompañado del código fuente.
El software libre suele ser gratis o a precio de costo. Sin embargo no es
obligatorio que sea así, por lo tanto software libre no es "software
gratuito" (denominado usualmente freeware), ya que, conservando su carácter
de libre, puede ser distribuido comercialmente.
Dentro de software libre hay, a su vez, matices que es necesario tener en
cuenta:
 
 
 
El software de dominio publico no está protegido, por tanto, podrían generarse
versiones no libres del mismo.
El software libre protegido con copyleft impide a los redistribuidores incluir algún
tipo de restricción, es decir, después de los cambios seguirá siendo libre.
El software propietario (también llamado no libre o privativo) se refiere a
cualquier programa donde los usuarios tienen limitadas las posibilidades de
usarlo, modificarlo o redistribuirlo (con o sin modificaciones), o que su código
fuente no está disponible o el acceso a éste se encuentra restringido.
17