SlideShare una empresa de Scribd logo
Lenguajes y Paradigmas de Programación
Sesión 4: Lenguajes de Programación
1
Indice
• Historia de los lenguajes de programación
• Elementos de los lenguajes de programación
• Abstracción
• Paradigmas de programación
• Compiladores e intérpretes
• ¿Por qué estudiar lenguajes de programación?
3
Historia de los lenguajes de programación
• Al comienzo sólo existía el código máquina (años 40). No existían los
lenguajes de programación.
• Código máquina: secuencia de bits que controlan directamente un
procesador. Muy tedioso. 55 89 e5 53 83 ec 04 f0 e8 31...
• Ensamblador: Abreviaturas mnemotécnicas para expresar operaciones. El
traductor abreviatura-instrucción código máquina es el ensamblador. subl,
pushl, movl, ...
• Necesidad de un lenguaje independiente de la máquina (años 50).
4
Historia de los lenguajes de programación
UNIVAC primer computador comercial
5
Historia de los lenguajes de programación
6
• A finales de los años 50 surgieron los primeros lenguajes de programación
• FORTRAN fue el primer lenguaje de programación. Desarrollado por un
equipo de IBM dirigido por John Backus en 1956.
• Cita de John Backus:
Much of my work has come from being lazy. I didn't like writing programs, and so,
when I was working on the IBM 701, writing programs for computing missile
trajectories, I started work on a programming system to make it easier to write
programs.
Historia de los lenguajes de programación
• Desde 1954 hasta la actualidad se han documentado más de 2500 lenguajes
de programación
• Árbol genealógico de lenguajes de programación
• Torre de Babel de Éric Lévenez
• Lenguajes más influyentes
7
Historia de los lenguajes de programación
• Al principio los lenguajes de programación se diseñaban sólo para poder
ejecutar los programas eficientemente
• Ordenadores carísimos, los programadores muy baratos
• Años 60, cuando habían surgido FORTRAN, COBOL, LISP y ALGOL, la
programación empezó a cambiar
• Nuevas necesidades: migrar programas, buen mantenimiento de los
programas
• Años 70, la tecnología de los ordenadores empezó a madurar, los lenguajes
se centraban en un dominio: FORTRAN científico, LISP IA, COBOL negocios,
JOVIAL militar.
8
Aspectos que provocan la evolución de los LP
• Recursos y tipos de ordenadores
• Aplicaciones y necesidades de los usuarios
• Nuevos métodos de programación
• Estudios teóricos
• Estandarización
9
¿Por qué estudiar lenguajes de programación?
• Mejora el uso del lenguaje de programación
• Incrementa el vocabulario de los elementos de programación
• Permite una mejor elección del lenguaje de programación
• Mejora la habilidad para desarrollar programas efectivos y eficientes
• Facilita el aprendizaje de un nuevo lenguaje de programación
• Facilita el diseño de nuevos lenguajes de programación
10
Los LP en continua evolución
• Ruby:
• Ruby, un lenguaje de programación ideado en 1993 por un joven japonés
llamado Yukihiro Matsumoto
• Lenguaje multi-paradigma interpretado y muy expresivo que actualmente
se utiliza tanto para desarrollar aplicaciones web como videojuegos.
• Proyecto vivo, cada año aparecen nuevas versiones
11
Los LP en continua evolución
• Scala:
• Scala, diseñado en 2003 por el profesor alemán Martin Odersky
• Respuesta a los problemas de los lenguajes tradicionales imperativos para
manejar la concurrencia
• Está implementado sobre Java y corre en la Máquina Virtual Java
• Go, el nuevo lenguaje de programación de Google
• Una mezcla de C y Python que intenta conseguir un lenguaje de
programación de sistemas muy eficiente, expresivo y también
12
Definición de lenguaje de programación
• Definición de la Encyclopedia of Computer Science
• Definición de Abelson y Sussman
13
A programming language is a set of characters, rules for combining them, and rules specifying their effects when
executed by a computer, which have the following four characteristics:
- It requires no knowledge of machine code on the part of the user
- It has machine independence
- Is translated into machine language
- Employs a notation that is closer to that of the specific problem being solved than is machine code
A powerful programming language is more than just a means for instructing a computer
to perform tasks. The language also serves as a framework within which we organize
our ideas about processes. Thus, when we describe a language, we should pay
particular attention to the means that the language provides for combining simple ideas
to form more complex ideas.
Características de los lenguajes de programación
• Define un proceso que se ejecuta en un computador
• Es de alto nivel, cercano a los problemas que se quieren resolver
(abstracción)
• Permite construir nuevas abstracciones que se adapten al dominio que se
programa
14
Elementos de los lenguajes de programación
• Para Abelson y Sussman, todos los lenguajes de progamación permiten
combinar ideas simples en ideas más complejas mediante los siguientes tres
mecanismos
• Expresiones primitivas que representan las entidades más simples del
lenguaje
• Mecanismos de combinación con los que se construyen elementos
compuestos a partir de elementos más simples
• Mecanismos de abstracción con los que dar nombre a los elementos
compuestos y manipularlos como unidades
15
Los lenguajes son para las personas
Abstraccion
• Una misión fundamental de los lenguajes de programación es proporcionar
herramientas que sirvan para construir abstracciones
• Abstracciones: sirven para tratar la complejidad del mundo real
• Existen abstracciones propias de la computación: listas, árboles, grafos,
tablas hash...
16
Paradigmas de programación
• Un paradigma define un conjunto de reglas, patrones y estilos de
programación que son usados por un grupo de lenguajes de programación
• Paradigma funcional
• Paradigma lógico
• Paradigma imperativo o procedural
• Paradigma orientado a objetos
17
Paradigma funcional
• La computación se realiza mediante la evaluación de expresiones
• Definición de funciones
• Funciones como datos primitivos
• Valores sin efectos laterales, no existe la asignación
• Programación declarativa
• Lenguajes: LISP, Scheme, Haskell, Scala, Clojure.
18
(define (factorial x)
(if (= x 0)
1
(* x (factorial (- x 1)))))
(factorial 8)
40320
(factorial 30)
265252859812191058636308480000000
Paradigma lógico
• Definición de reglas
• Unificación como elemento de computación
• Programación declarativa
• Lenguajes: Prolog, Mercury, Oz.
19
padrede('juan', 'maria'). % juan es padre de maria
padrede('pablo', 'juan'). % pablo es padre de juan
padrede('pablo', 'marcela').
padrede('carlos', 'debora').
hijode(A,B) :- padrede(B,A).
abuelode(A,B) :- padrede(A,C), padrede(C,B).
hermanode(A,B) :- padrede(C,A) , padrede(C,B), A == B.
familiarde(A,B) :- padrede(A,B).
familiarde(A,B) :- hijode(A,B).
familiarde(A,B) :- hermanode(A,B).
?- hermanode('juan', 'marcela').
yes
?- hermanode('carlos', 'juan').
no
?- abuelode('pablo', 'maria').
yes
?- abuelode('maria', 'pablo').
no
Paradigma imperativo
• Definición de procedimientos
• Definición de tipos de datos
• Chequeo de tipos en tiempo de compilación
• Cambio de estado de variables
• Pasos de ejecución de un proceso
20
type
tDimension = 1..100;
eMatriz(f,c: tDimension) = array [1..f,1..c] of real;
tRango = record
f,c: tDimension value 1;
end;
tpMatriz = ^eMatriz;
procedure EscribirMatriz(var m: tpMatriz);
var filas,col : integer;
begin
for filas := 1 to m^.f do begin
for col := 1 to m^.c do
write(m^[filas,col]:7:2);
writeln(resultado);
writeln(resultado)
end;
end;
Paradigma orientado a objetos
• Definición de clases y herencia
• Objetos como abstracción de datos y procedimientos
• Polimorfismo y chequeo de tipos en tiempo de ejecución
• Ejemplo en Java
21
22
public class Bicicleta {
public int marcha;
public int velocidad;
public Bicicleta(int velocidadInicial, int marchaInicial) {
marcha = marchaInicial;
velocidad = velocidadInicial;
}
public void setMarcha(int nuevoValor) {
marcha = nuevoValor;
}
public void frenar(int decremento) {
velocidad -= decremento;
}
public void acelerar(int incremento) {
velocidad += incremento;
}
}
public class MountainBike extends Bicicleta {
public int alturaSillin;
public MountainBike(int alturaInicial, int velocidadInicial, int
marchaInicial) {
super(velocidadInicial, marchaInicial);
alturaSillin = alturaInicial;
}
public void setAltura(int nuevoValor) {
alturaSillin = nuevoValor;
}
}
public class Excursion {
public static void main(String[] args) {
MountainBike miBicicleta = new MoutainBike(10,10,3);
miBicicleta.acelerar(10);
miBicicleta.setMarcha(4);
miBicicleta.frenar(10);
}
}
23
Compiladores e intérpretes
• Existen una gran variedad de estrategias para conseguir que un programa se
ejecute en un ordenador
• Todas se basan en los "meta-programas" (compiladores, intérpretes, etc.)
cuyos datos de entrada son el código fuente de otros programas.
Compilación
• Ejemplos: C, C++
• Diferentes momentos en la vida de un programa: tiempo de compilación y
tiempo de ejecución
• Mayor eficiencia
24
Interpretación
• Ejemplos: BASIC, LISP, Scheme, Python, Ruby
• No hay diferencia entre el tiempo de compilación y el tiempo de ejecución
• Mayor flexibilidad: el código se puede construir y ejecutar "on the
fly" (funciones lambda o clousures)
25
Ejecución en máquina virtual
• Ejemplos: Java, Scala
26
Enlazado de rutinas y librerías
27
Preprocesamiento
28
• El preprocesador analiza el código y sustituye macros. Ejemplo: C, C++.
Scala hace algo parecido con Java.

Más contenido relacionado

La actualidad más candente

Capitulo i
Capitulo iCapitulo i
Capitulo i
Washo Ramos
 
introducción a lenguajes de programacion
introducción a lenguajes de programacionintroducción a lenguajes de programacion
introducción a lenguajes de programacion
bretorio
 
Estructua Basica Lenguaje C++
Estructua Basica Lenguaje C++Estructua Basica Lenguaje C++
Estructua Basica Lenguaje C++
franjpr
 
Exposicion
ExposicionExposicion
Exposicion
JhulinoHurtado
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDesarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
cocomarin2
 
El estudio de los lenguajes de programacion
El estudio de los lenguajes de programacionEl estudio de los lenguajes de programacion
El estudio de los lenguajes de programacion
Ashley Stronghold Witwicky
 
Cap1 compiladores
Cap1 compiladoresCap1 compiladores
Cap1 compiladores
CJAO
 
Unidad I. Algoritmo y Programas. Parte 1
Unidad I. Algoritmo y Programas. Parte 1Unidad I. Algoritmo y Programas. Parte 1
Unidad I. Algoritmo y Programas. Parte 1
LisbleinArismendi
 
Lenguajes de-programacion-clase
Lenguajes de-programacion-claseLenguajes de-programacion-clase
Lenguajes de-programacion-clase
Beatriz Moreyra
 
Lenguajes De Programación
Lenguajes De ProgramaciónLenguajes De Programación
Lenguajes De Programación
Bacaanda' Gómez Esteva
 
Linea del Tiempo
Linea del TiempoLinea del Tiempo
Linea del Tiempo
Mireya Vera arceo
 
Trabajo practico libro2
Trabajo practico libro2Trabajo practico libro2
Trabajo practico libro2
exequiel9035a
 
Cap2
Cap2Cap2
Cap2
CJAO
 
Línea de-tiempo-del-lenguaje-de-programación
Línea de-tiempo-del-lenguaje-de-programaciónLínea de-tiempo-del-lenguaje-de-programación
Línea de-tiempo-del-lenguaje-de-programación
ArmandoC42
 
C:\Documents And Settings\Alumnos\Escritorio\Programaion1
C:\Documents And Settings\Alumnos\Escritorio\Programaion1C:\Documents And Settings\Alumnos\Escritorio\Programaion1
C:\Documents And Settings\Alumnos\Escritorio\Programaion1
kfacu
 
Generacionlenguajes
GeneracionlenguajesGeneracionlenguajes
Generacionlenguajes
Nicolas Mestanza
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
DANTE ELVIS CACHI ALANOCA
 
Linea del tiempo de los lenguajes de programación
Linea del tiempo de los lenguajes de programaciónLinea del tiempo de los lenguajes de programación
Linea del tiempo de los lenguajes de programación
EspitiaGiancarlo
 
Trabajo de programacion 1
Trabajo de programacion 1 Trabajo de programacion 1
Trabajo de programacion 1
Leobardo Montalvo
 

La actualidad más candente (19)

Capitulo i
Capitulo iCapitulo i
Capitulo i
 
introducción a lenguajes de programacion
introducción a lenguajes de programacionintroducción a lenguajes de programacion
introducción a lenguajes de programacion
 
Estructua Basica Lenguaje C++
Estructua Basica Lenguaje C++Estructua Basica Lenguaje C++
Estructua Basica Lenguaje C++
 
Exposicion
ExposicionExposicion
Exposicion
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDesarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
 
El estudio de los lenguajes de programacion
El estudio de los lenguajes de programacionEl estudio de los lenguajes de programacion
El estudio de los lenguajes de programacion
 
Cap1 compiladores
Cap1 compiladoresCap1 compiladores
Cap1 compiladores
 
Unidad I. Algoritmo y Programas. Parte 1
Unidad I. Algoritmo y Programas. Parte 1Unidad I. Algoritmo y Programas. Parte 1
Unidad I. Algoritmo y Programas. Parte 1
 
Lenguajes de-programacion-clase
Lenguajes de-programacion-claseLenguajes de-programacion-clase
Lenguajes de-programacion-clase
 
Lenguajes De Programación
Lenguajes De ProgramaciónLenguajes De Programación
Lenguajes De Programación
 
Linea del Tiempo
Linea del TiempoLinea del Tiempo
Linea del Tiempo
 
Trabajo practico libro2
Trabajo practico libro2Trabajo practico libro2
Trabajo practico libro2
 
Cap2
Cap2Cap2
Cap2
 
Línea de-tiempo-del-lenguaje-de-programación
Línea de-tiempo-del-lenguaje-de-programaciónLínea de-tiempo-del-lenguaje-de-programación
Línea de-tiempo-del-lenguaje-de-programación
 
C:\Documents And Settings\Alumnos\Escritorio\Programaion1
C:\Documents And Settings\Alumnos\Escritorio\Programaion1C:\Documents And Settings\Alumnos\Escritorio\Programaion1
C:\Documents And Settings\Alumnos\Escritorio\Programaion1
 
Generacionlenguajes
GeneracionlenguajesGeneracionlenguajes
Generacionlenguajes
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Linea del tiempo de los lenguajes de programación
Linea del tiempo de los lenguajes de programaciónLinea del tiempo de los lenguajes de programación
Linea del tiempo de los lenguajes de programación
 
Trabajo de programacion 1
Trabajo de programacion 1 Trabajo de programacion 1
Trabajo de programacion 1
 

Destacado

Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
EdagaJunior
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
Gerardo Antonio Gomez Moreno
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
CarenPC
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
carlos_graterol
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
Ariel Medina
 
Lenguajes de Programación
Lenguajes de Programación Lenguajes de Programación
Lenguajes de Programación
lobi7o
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
Jesús Navarro
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
Fercho Rodriguez Torres
 
Historia de los Lenguajes de Programación
Historia de los Lenguajes de ProgramaciónHistoria de los Lenguajes de Programación
Historia de los Lenguajes de Programación
LILIANA06
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
Andres Felipe Ruiz
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
Karol
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
farmero
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
May Ibarra
 
Lenguajes De Programacion
Lenguajes De ProgramacionLenguajes De Programacion
Lenguajes De Programacion
fcolauravel
 
Generaciones de los lenguajes de programación
Generaciones de los lenguajes de programaciónGeneraciones de los lenguajes de programación
Generaciones de los lenguajes de programación
romeprofe
 
Clasificación de los lenguajes de programación
Clasificación de los lenguajes de programaciónClasificación de los lenguajes de programación
Clasificación de los lenguajes de programación
d3m3nt3
 
Lenguaje de Programación
Lenguaje de ProgramaciónLenguaje de Programación
Lenguaje de Programación
Eder Luna León
 
Que Es Un Lenguaje De Programacion...?
Que Es Un Lenguaje De Programacion...?Que Es Un Lenguaje De Programacion...?
Que Es Un Lenguaje De Programacion...?
charnisch
 
Clases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programaciónClases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programación
En La Vereda de Mi Casaa!
 
Lenguaje de programacion sgs.ppt
Lenguaje de programacion sgs.pptLenguaje de programacion sgs.ppt
Lenguaje de programacion sgs.ppt
Sergio Sorelas
 

Destacado (20)

Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Lenguajes de Programación
Lenguajes de Programación Lenguajes de Programación
Lenguajes de Programación
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Historia de los Lenguajes de Programación
Historia de los Lenguajes de ProgramaciónHistoria de los Lenguajes de Programación
Historia de los Lenguajes de Programación
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Lenguajes De Programacion
Lenguajes De ProgramacionLenguajes De Programacion
Lenguajes De Programacion
 
Generaciones de los lenguajes de programación
Generaciones de los lenguajes de programaciónGeneraciones de los lenguajes de programación
Generaciones de los lenguajes de programación
 
Clasificación de los lenguajes de programación
Clasificación de los lenguajes de programaciónClasificación de los lenguajes de programación
Clasificación de los lenguajes de programación
 
Lenguaje de Programación
Lenguaje de ProgramaciónLenguaje de Programación
Lenguaje de Programación
 
Que Es Un Lenguaje De Programacion...?
Que Es Un Lenguaje De Programacion...?Que Es Un Lenguaje De Programacion...?
Que Es Un Lenguaje De Programacion...?
 
Clases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programaciónClases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programación
 
Lenguaje de programacion sgs.ppt
Lenguaje de programacion sgs.pptLenguaje de programacion sgs.ppt
Lenguaje de programacion sgs.ppt
 

Similar a Lenguajes de programacion

lenguaje de Programacion
lenguaje de Programacionlenguaje de Programacion
lenguaje de Programacion
christian0396
 
Introducción a los lenguajes de programación.pptx
Introducción a los lenguajes de programación.pptxIntroducción a los lenguajes de programación.pptx
Introducción a los lenguajes de programación.pptx
GabrielAstete1
 
Unidad-1.pptx.pdf
Unidad-1.pptx.pdfUnidad-1.pptx.pdf
Unidad-1.pptx.pdf
FabricioMontero9
 
Unidad-1.pptx.pdf
Unidad-1.pptx.pdfUnidad-1.pptx.pdf
Unidad-1.pptx.pdf
FabricioMontero9
 
Introducción a la ing sistemas
Introducción a la ing sistemasIntroducción a la ing sistemas
Introducción a la ing sistemas
viviana19s
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmos+sam+deyson
Algoritmos+sam+deysonAlgoritmos+sam+deyson
Algoritmos+sam+deyson
Sam Jhon Gallego Manosalva
 
TEMA Nº 1
TEMA Nº 1TEMA Nº 1
TEMA Nº 1
Marta Quintero
 
introduccion a la programacion
introduccion a la programacion introduccion a la programacion
introduccion a la programacion
IANALECKMANTEROLASOR
 
Programación
ProgramaciónProgramación
Programación
natybe1993
 
Lenguajes de programacion22
Lenguajes de programacion22Lenguajes de programacion22
Lenguajes de programacion22
soto0106
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
Cecilia Díaz
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
detlefsen
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
detlefsen
 
1___LENGUAJES DE PROGRAMACION_2023.pdf
1___LENGUAJES DE PROGRAMACION_2023.pdf1___LENGUAJES DE PROGRAMACION_2023.pdf
1___LENGUAJES DE PROGRAMACION_2023.pdf
MariaTeresaGarznPrez
 
Conceptos Básicos de Programación
Conceptos Básicos de ProgramaciónConceptos Básicos de Programación
Conceptos Básicos de Programación
MaraIsabel87
 
Introduccion a la prgrmacion.
Introduccion a la prgrmacion.Introduccion a la prgrmacion.
Introduccion a la prgrmacion.
Vladimir Pomares
 
Resolución de problemas de algoritmo.
Resolución de problemas de algoritmo.Resolución de problemas de algoritmo.
Resolución de problemas de algoritmo.
francisco dixon
 
Clase02 paradigmas
Clase02 paradigmasClase02 paradigmas
Clase02 paradigmas
Manuel Hormechea
 
Introduccion a los algoritmos
Introduccion a los algoritmosIntroduccion a los algoritmos
Introduccion a los algoritmos
Universidad de cordoba
 

Similar a Lenguajes de programacion (20)

lenguaje de Programacion
lenguaje de Programacionlenguaje de Programacion
lenguaje de Programacion
 
Introducción a los lenguajes de programación.pptx
Introducción a los lenguajes de programación.pptxIntroducción a los lenguajes de programación.pptx
Introducción a los lenguajes de programación.pptx
 
Unidad-1.pptx.pdf
Unidad-1.pptx.pdfUnidad-1.pptx.pdf
Unidad-1.pptx.pdf
 
Unidad-1.pptx.pdf
Unidad-1.pptx.pdfUnidad-1.pptx.pdf
Unidad-1.pptx.pdf
 
Introducción a la ing sistemas
Introducción a la ing sistemasIntroducción a la ing sistemas
Introducción a la ing sistemas
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmos+sam+deyson
Algoritmos+sam+deysonAlgoritmos+sam+deyson
Algoritmos+sam+deyson
 
TEMA Nº 1
TEMA Nº 1TEMA Nº 1
TEMA Nº 1
 
introduccion a la programacion
introduccion a la programacion introduccion a la programacion
introduccion a la programacion
 
Programación
ProgramaciónProgramación
Programación
 
Lenguajes de programacion22
Lenguajes de programacion22Lenguajes de programacion22
Lenguajes de programacion22
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
 
1___LENGUAJES DE PROGRAMACION_2023.pdf
1___LENGUAJES DE PROGRAMACION_2023.pdf1___LENGUAJES DE PROGRAMACION_2023.pdf
1___LENGUAJES DE PROGRAMACION_2023.pdf
 
Conceptos Básicos de Programación
Conceptos Básicos de ProgramaciónConceptos Básicos de Programación
Conceptos Básicos de Programación
 
Introduccion a la prgrmacion.
Introduccion a la prgrmacion.Introduccion a la prgrmacion.
Introduccion a la prgrmacion.
 
Resolución de problemas de algoritmo.
Resolución de problemas de algoritmo.Resolución de problemas de algoritmo.
Resolución de problemas de algoritmo.
 
Clase02 paradigmas
Clase02 paradigmasClase02 paradigmas
Clase02 paradigmas
 
Introduccion a los algoritmos
Introduccion a los algoritmosIntroduccion a los algoritmos
Introduccion a los algoritmos
 

Más de Tensor

Libertad
LibertadLibertad
Libertad
Tensor
 
Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)
Tensor
 
Metodo de la bisección
Metodo de la bisecciónMetodo de la bisección
Metodo de la bisección
Tensor
 
Transito vehicular
Transito vehicularTransito vehicular
Transito vehicular
Tensor
 
Teoria de colas
Teoria de colasTeoria de colas
Teoria de colas
Tensor
 
Practica 7 2016
Practica 7 2016Practica 7 2016
Practica 7 2016
Tensor
 
Practica 6 2016
Practica 6 2016Practica 6 2016
Practica 6 2016
Tensor
 
Game maker
Game makerGame maker
Game maker
Tensor
 
Practica 5 2016
Practica 5 2016Practica 5 2016
Practica 5 2016
Tensor
 
Procesamiento de archivos
Procesamiento de archivosProcesamiento de archivos
Procesamiento de archivos
Tensor
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
Tensor
 
Simulación en promodel clase 04
Simulación en promodel clase 04Simulación en promodel clase 04
Simulación en promodel clase 04
Tensor
 
Reduccion de orden
Reduccion de ordenReduccion de orden
Reduccion de orden
Tensor
 
Variación+de+parametros
Variación+de+parametrosVariación+de+parametros
Variación+de+parametros
Tensor
 
Coeficientes indeterminados enfoque de superposición
Coeficientes indeterminados   enfoque de superposiciónCoeficientes indeterminados   enfoque de superposición
Coeficientes indeterminados enfoque de superposición
Tensor
 
Bernoulli y ricatti
Bernoulli y ricattiBernoulli y ricatti
Bernoulli y ricatti
Tensor
 
Practica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioPractica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicio
Tensor
 
Clase 14 ondas reflejadas
Clase 14 ondas reflejadasClase 14 ondas reflejadas
Clase 14 ondas reflejadas
Tensor
 
Ondas em
Ondas emOndas em
Ondas em
Tensor
 
Clase 7 ondas electromagneticas
Clase 7 ondas electromagneticasClase 7 ondas electromagneticas
Clase 7 ondas electromagneticas
Tensor
 

Más de Tensor (20)

Libertad
LibertadLibertad
Libertad
 
Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)
 
Metodo de la bisección
Metodo de la bisecciónMetodo de la bisección
Metodo de la bisección
 
Transito vehicular
Transito vehicularTransito vehicular
Transito vehicular
 
Teoria de colas
Teoria de colasTeoria de colas
Teoria de colas
 
Practica 7 2016
Practica 7 2016Practica 7 2016
Practica 7 2016
 
Practica 6 2016
Practica 6 2016Practica 6 2016
Practica 6 2016
 
Game maker
Game makerGame maker
Game maker
 
Practica 5 2016
Practica 5 2016Practica 5 2016
Practica 5 2016
 
Procesamiento de archivos
Procesamiento de archivosProcesamiento de archivos
Procesamiento de archivos
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
 
Simulación en promodel clase 04
Simulación en promodel clase 04Simulación en promodel clase 04
Simulación en promodel clase 04
 
Reduccion de orden
Reduccion de ordenReduccion de orden
Reduccion de orden
 
Variación+de+parametros
Variación+de+parametrosVariación+de+parametros
Variación+de+parametros
 
Coeficientes indeterminados enfoque de superposición
Coeficientes indeterminados   enfoque de superposiciónCoeficientes indeterminados   enfoque de superposición
Coeficientes indeterminados enfoque de superposición
 
Bernoulli y ricatti
Bernoulli y ricattiBernoulli y ricatti
Bernoulli y ricatti
 
Practica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioPractica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicio
 
Clase 14 ondas reflejadas
Clase 14 ondas reflejadasClase 14 ondas reflejadas
Clase 14 ondas reflejadas
 
Ondas em
Ondas emOndas em
Ondas em
 
Clase 7 ondas electromagneticas
Clase 7 ondas electromagneticasClase 7 ondas electromagneticas
Clase 7 ondas electromagneticas
 

Último

2° año LA VESTIMENTA-ciencias sociales 2 grado
2° año LA VESTIMENTA-ciencias sociales 2 grado2° año LA VESTIMENTA-ciencias sociales 2 grado
2° año LA VESTIMENTA-ciencias sociales 2 grado
GiselaBerrios3
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
lautyzaracho4
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Alejandrino Halire Ccahuana
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
DavidCamiloMosquera
 
El Cerebro se Cambia a si Mismo-Norman Doidge.pdf
El Cerebro se Cambia a si Mismo-Norman Doidge.pdfEl Cerebro se Cambia a si Mismo-Norman Doidge.pdf
El Cerebro se Cambia a si Mismo-Norman Doidge.pdf
Robert Zuñiga Vargas
 
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJAPANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
estroba5
 
Dosificación de los aprendizajes U4_Me gustan los animales_Parvulos 1_2_3.pdf
Dosificación de los aprendizajes U4_Me gustan los animales_Parvulos 1_2_3.pdfDosificación de los aprendizajes U4_Me gustan los animales_Parvulos 1_2_3.pdf
Dosificación de los aprendizajes U4_Me gustan los animales_Parvulos 1_2_3.pdf
KarenRuano6
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Demetrio Ccesa Rayme
 
Camus, Albert - El Extranjero.pdf
Camus, Albert -        El Extranjero.pdfCamus, Albert -        El Extranjero.pdf
Camus, Albert - El Extranjero.pdf
AlexDeLonghi
 
La vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primariaLa vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primaria
EricaCouly1
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
lautyzaracho4
 
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
rosannatasaycoyactay
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
acgtz913
 
1° T3 Examen Zany de primer grado compl
1° T3 Examen Zany  de primer grado compl1° T3 Examen Zany  de primer grado compl
1° T3 Examen Zany de primer grado compl
ROCIORUIZQUEZADA
 
EVALUACION ESTUDIANTIL 2023-2024 Ecuador - Costa.pptx
EVALUACION ESTUDIANTIL 2023-2024 Ecuador - Costa.pptxEVALUACION ESTUDIANTIL 2023-2024 Ecuador - Costa.pptx
EVALUACION ESTUDIANTIL 2023-2024 Ecuador - Costa.pptx
Victor Elizalde P
 
Liturgia día del Padre del siguiente domingo.pptx
Liturgia día del Padre del siguiente domingo.pptxLiturgia día del Padre del siguiente domingo.pptx
Liturgia día del Padre del siguiente domingo.pptx
YeniferGarcia36
 
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
JAVIER SOLIS NOYOLA
 
La necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdfLa necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdf
JonathanCovena1
 
pueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptxpueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptx
RAMIREZNICOLE
 

Último (20)

2° año LA VESTIMENTA-ciencias sociales 2 grado
2° año LA VESTIMENTA-ciencias sociales 2 grado2° año LA VESTIMENTA-ciencias sociales 2 grado
2° año LA VESTIMENTA-ciencias sociales 2 grado
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
 
A VISITA DO SENHOR BISPO .
A VISITA DO SENHOR BISPO                .A VISITA DO SENHOR BISPO                .
A VISITA DO SENHOR BISPO .
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
 
El Cerebro se Cambia a si Mismo-Norman Doidge.pdf
El Cerebro se Cambia a si Mismo-Norman Doidge.pdfEl Cerebro se Cambia a si Mismo-Norman Doidge.pdf
El Cerebro se Cambia a si Mismo-Norman Doidge.pdf
 
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJAPANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
 
Dosificación de los aprendizajes U4_Me gustan los animales_Parvulos 1_2_3.pdf
Dosificación de los aprendizajes U4_Me gustan los animales_Parvulos 1_2_3.pdfDosificación de los aprendizajes U4_Me gustan los animales_Parvulos 1_2_3.pdf
Dosificación de los aprendizajes U4_Me gustan los animales_Parvulos 1_2_3.pdf
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
 
Camus, Albert - El Extranjero.pdf
Camus, Albert -        El Extranjero.pdfCamus, Albert -        El Extranjero.pdf
Camus, Albert - El Extranjero.pdf
 
La vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primariaLa vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primaria
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
 
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
 
1° T3 Examen Zany de primer grado compl
1° T3 Examen Zany  de primer grado compl1° T3 Examen Zany  de primer grado compl
1° T3 Examen Zany de primer grado compl
 
EVALUACION ESTUDIANTIL 2023-2024 Ecuador - Costa.pptx
EVALUACION ESTUDIANTIL 2023-2024 Ecuador - Costa.pptxEVALUACION ESTUDIANTIL 2023-2024 Ecuador - Costa.pptx
EVALUACION ESTUDIANTIL 2023-2024 Ecuador - Costa.pptx
 
Liturgia día del Padre del siguiente domingo.pptx
Liturgia día del Padre del siguiente domingo.pptxLiturgia día del Padre del siguiente domingo.pptx
Liturgia día del Padre del siguiente domingo.pptx
 
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
 
La necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdfLa necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdf
 
pueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptxpueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptx
 

Lenguajes de programacion

  • 1. Lenguajes y Paradigmas de Programación Sesión 4: Lenguajes de Programación 1
  • 2. Indice • Historia de los lenguajes de programación • Elementos de los lenguajes de programación • Abstracción • Paradigmas de programación • Compiladores e intérpretes • ¿Por qué estudiar lenguajes de programación? 3
  • 3. Historia de los lenguajes de programación • Al comienzo sólo existía el código máquina (años 40). No existían los lenguajes de programación. • Código máquina: secuencia de bits que controlan directamente un procesador. Muy tedioso. 55 89 e5 53 83 ec 04 f0 e8 31... • Ensamblador: Abreviaturas mnemotécnicas para expresar operaciones. El traductor abreviatura-instrucción código máquina es el ensamblador. subl, pushl, movl, ... • Necesidad de un lenguaje independiente de la máquina (años 50). 4
  • 4. Historia de los lenguajes de programación UNIVAC primer computador comercial 5
  • 5. Historia de los lenguajes de programación 6 • A finales de los años 50 surgieron los primeros lenguajes de programación • FORTRAN fue el primer lenguaje de programación. Desarrollado por un equipo de IBM dirigido por John Backus en 1956. • Cita de John Backus: Much of my work has come from being lazy. I didn't like writing programs, and so, when I was working on the IBM 701, writing programs for computing missile trajectories, I started work on a programming system to make it easier to write programs.
  • 6. Historia de los lenguajes de programación • Desde 1954 hasta la actualidad se han documentado más de 2500 lenguajes de programación • Árbol genealógico de lenguajes de programación • Torre de Babel de Éric Lévenez • Lenguajes más influyentes 7
  • 7. Historia de los lenguajes de programación • Al principio los lenguajes de programación se diseñaban sólo para poder ejecutar los programas eficientemente • Ordenadores carísimos, los programadores muy baratos • Años 60, cuando habían surgido FORTRAN, COBOL, LISP y ALGOL, la programación empezó a cambiar • Nuevas necesidades: migrar programas, buen mantenimiento de los programas • Años 70, la tecnología de los ordenadores empezó a madurar, los lenguajes se centraban en un dominio: FORTRAN científico, LISP IA, COBOL negocios, JOVIAL militar. 8
  • 8. Aspectos que provocan la evolución de los LP • Recursos y tipos de ordenadores • Aplicaciones y necesidades de los usuarios • Nuevos métodos de programación • Estudios teóricos • Estandarización 9
  • 9. ¿Por qué estudiar lenguajes de programación? • Mejora el uso del lenguaje de programación • Incrementa el vocabulario de los elementos de programación • Permite una mejor elección del lenguaje de programación • Mejora la habilidad para desarrollar programas efectivos y eficientes • Facilita el aprendizaje de un nuevo lenguaje de programación • Facilita el diseño de nuevos lenguajes de programación 10
  • 10. Los LP en continua evolución • Ruby: • Ruby, un lenguaje de programación ideado en 1993 por un joven japonés llamado Yukihiro Matsumoto • Lenguaje multi-paradigma interpretado y muy expresivo que actualmente se utiliza tanto para desarrollar aplicaciones web como videojuegos. • Proyecto vivo, cada año aparecen nuevas versiones 11
  • 11. Los LP en continua evolución • Scala: • Scala, diseñado en 2003 por el profesor alemán Martin Odersky • Respuesta a los problemas de los lenguajes tradicionales imperativos para manejar la concurrencia • Está implementado sobre Java y corre en la Máquina Virtual Java • Go, el nuevo lenguaje de programación de Google • Una mezcla de C y Python que intenta conseguir un lenguaje de programación de sistemas muy eficiente, expresivo y también 12
  • 12. Definición de lenguaje de programación • Definición de la Encyclopedia of Computer Science • Definición de Abelson y Sussman 13 A programming language is a set of characters, rules for combining them, and rules specifying their effects when executed by a computer, which have the following four characteristics: - It requires no knowledge of machine code on the part of the user - It has machine independence - Is translated into machine language - Employs a notation that is closer to that of the specific problem being solved than is machine code A powerful programming language is more than just a means for instructing a computer to perform tasks. The language also serves as a framework within which we organize our ideas about processes. Thus, when we describe a language, we should pay particular attention to the means that the language provides for combining simple ideas to form more complex ideas.
  • 13. Características de los lenguajes de programación • Define un proceso que se ejecuta en un computador • Es de alto nivel, cercano a los problemas que se quieren resolver (abstracción) • Permite construir nuevas abstracciones que se adapten al dominio que se programa 14
  • 14. Elementos de los lenguajes de programación • Para Abelson y Sussman, todos los lenguajes de progamación permiten combinar ideas simples en ideas más complejas mediante los siguientes tres mecanismos • Expresiones primitivas que representan las entidades más simples del lenguaje • Mecanismos de combinación con los que se construyen elementos compuestos a partir de elementos más simples • Mecanismos de abstracción con los que dar nombre a los elementos compuestos y manipularlos como unidades 15 Los lenguajes son para las personas
  • 15. Abstraccion • Una misión fundamental de los lenguajes de programación es proporcionar herramientas que sirvan para construir abstracciones • Abstracciones: sirven para tratar la complejidad del mundo real • Existen abstracciones propias de la computación: listas, árboles, grafos, tablas hash... 16
  • 16. Paradigmas de programación • Un paradigma define un conjunto de reglas, patrones y estilos de programación que son usados por un grupo de lenguajes de programación • Paradigma funcional • Paradigma lógico • Paradigma imperativo o procedural • Paradigma orientado a objetos 17
  • 17. Paradigma funcional • La computación se realiza mediante la evaluación de expresiones • Definición de funciones • Funciones como datos primitivos • Valores sin efectos laterales, no existe la asignación • Programación declarativa • Lenguajes: LISP, Scheme, Haskell, Scala, Clojure. 18 (define (factorial x) (if (= x 0) 1 (* x (factorial (- x 1))))) (factorial 8) 40320 (factorial 30) 265252859812191058636308480000000
  • 18. Paradigma lógico • Definición de reglas • Unificación como elemento de computación • Programación declarativa • Lenguajes: Prolog, Mercury, Oz. 19 padrede('juan', 'maria'). % juan es padre de maria padrede('pablo', 'juan'). % pablo es padre de juan padrede('pablo', 'marcela'). padrede('carlos', 'debora'). hijode(A,B) :- padrede(B,A). abuelode(A,B) :- padrede(A,C), padrede(C,B). hermanode(A,B) :- padrede(C,A) , padrede(C,B), A == B. familiarde(A,B) :- padrede(A,B). familiarde(A,B) :- hijode(A,B). familiarde(A,B) :- hermanode(A,B). ?- hermanode('juan', 'marcela'). yes ?- hermanode('carlos', 'juan'). no ?- abuelode('pablo', 'maria'). yes ?- abuelode('maria', 'pablo'). no
  • 19. Paradigma imperativo • Definición de procedimientos • Definición de tipos de datos • Chequeo de tipos en tiempo de compilación • Cambio de estado de variables • Pasos de ejecución de un proceso 20 type tDimension = 1..100; eMatriz(f,c: tDimension) = array [1..f,1..c] of real; tRango = record f,c: tDimension value 1; end; tpMatriz = ^eMatriz; procedure EscribirMatriz(var m: tpMatriz); var filas,col : integer; begin for filas := 1 to m^.f do begin for col := 1 to m^.c do write(m^[filas,col]:7:2); writeln(resultado); writeln(resultado) end; end;
  • 20. Paradigma orientado a objetos • Definición de clases y herencia • Objetos como abstracción de datos y procedimientos • Polimorfismo y chequeo de tipos en tiempo de ejecución • Ejemplo en Java 21
  • 21. 22 public class Bicicleta { public int marcha; public int velocidad; public Bicicleta(int velocidadInicial, int marchaInicial) { marcha = marchaInicial; velocidad = velocidadInicial; } public void setMarcha(int nuevoValor) { marcha = nuevoValor; } public void frenar(int decremento) { velocidad -= decremento; } public void acelerar(int incremento) { velocidad += incremento; } } public class MountainBike extends Bicicleta { public int alturaSillin; public MountainBike(int alturaInicial, int velocidadInicial, int marchaInicial) { super(velocidadInicial, marchaInicial); alturaSillin = alturaInicial; } public void setAltura(int nuevoValor) { alturaSillin = nuevoValor; } } public class Excursion { public static void main(String[] args) { MountainBike miBicicleta = new MoutainBike(10,10,3); miBicicleta.acelerar(10); miBicicleta.setMarcha(4); miBicicleta.frenar(10); } }
  • 22. 23 Compiladores e intérpretes • Existen una gran variedad de estrategias para conseguir que un programa se ejecute en un ordenador • Todas se basan en los "meta-programas" (compiladores, intérpretes, etc.) cuyos datos de entrada son el código fuente de otros programas.
  • 23. Compilación • Ejemplos: C, C++ • Diferentes momentos en la vida de un programa: tiempo de compilación y tiempo de ejecución • Mayor eficiencia 24
  • 24. Interpretación • Ejemplos: BASIC, LISP, Scheme, Python, Ruby • No hay diferencia entre el tiempo de compilación y el tiempo de ejecución • Mayor flexibilidad: el código se puede construir y ejecutar "on the fly" (funciones lambda o clousures) 25
  • 25. Ejecución en máquina virtual • Ejemplos: Java, Scala 26
  • 26. Enlazado de rutinas y librerías 27
  • 27. Preprocesamiento 28 • El preprocesador analiza el código y sustituye macros. Ejemplo: C, C++. Scala hace algo parecido con Java.