Lenguajes y paradigmas de
             programación
          Iván Felipe Álvarez



          GEMIS-OE
          EAFIT 2006
Temas
 Que es un programa?
 Que es un lenguaje de
  programación?
 Características de los lenguajes de
  programación
 Paradigmas de programación
Que es un programa?
   La unión de una secuencia de
    instrucciones que un computador
    puede interpretar y ejecutar y un
    conjunto de estructuras de datos
    que almacenan la información sobre
    la que la operan las instrucciones
Que es un lenguaje de
programación?
 Es una técnica de comunicación
  estilizada que se utiliza para
  controlar el comportamiento de una
  maquina (usualmente un
  computador)
 Como los lenguajes humanos, los
  lenguajes de programación tienen
  reglas sintácticas y semánticas para
  definir el significado
Que es un lenguaje de
programación?
   Herramienta que permite a un
    programador especificar de manera
    precisa: sobre qué datos una
    computadora debe operar, cómo
    deben ser estos almacenados y
    transmitidos y qué acciones debe
    tomar bajo una variada gama de
    circunstancias
Que es un lenguaje de
programación?
   Ejemplos:
       Visual Basic
       C/C++
       JAVA
       FORTRAN
       LISP
Características de los
lenguajes de programación
 Tipos de datos
 Estructuras de datos
 Instrucciones y Control de flujo
 Filosofía de diseño
 Compilación e Interpretación
Tipos de datos
   Internamente, todos los datos de los
    computadores tradicionales están
    guardados simplemente como ceros o
    unos(binario)
   Un solo valor en memoria puede ser
    interpretado de múltiples formas:
        10010110
        “Hola”
        Azul – Rojo – Verde
        150
Estructuras de Datos
   Variables
                 205
   Arreglos
          2 9 3 0 5 1              6 9 3
                                   3 6 2
   Listas
      0      2         3   4   6     9
Instrucciones y Control de
flujo
int a = 0;
while (a!=10){
  if (a==5){
      cout << “La variable a va en 5”;
  }
  a++;
}
b=a
Filosofía de diseño
 Cada lenguaje se desarrolla de
  acuerdo a un diseño especial o una
  filosofía
 Estos están ligados al paradigma de
  programación a utilizar
 Se refiere a la forma de hacer las
  cosas
Compilación e
Interpretación
 Interptetes: analizan las
  instrucciones una a una y las
  ejecutan directamente
 Compiladores: convierten el código
  fuente a código de maquina para ser
  ejecutado posteriormente
Paradigmas de
programación
   Orientado a aspectos
   Concurrente
   Declarativo
   Funcional
   Imperativo
   Lógico
   Multiparadigma
   Orientado a objetos
   Scripting
Lenguajes Declarativos
 Describen un problema mas que
  definir una solución
 Todos los lenguajes puramente
  funcionales y lógicos son
  Declarativos
 Ejemplos: ABSET, Lustre, MetaPost,
  Prolog, SQL, XSL Transformations
Lenguajes Funcionales
 Definen programas y subrutinas
  como funciones matematicas
 Muchos de estos lenguajes estan
  unidos a herramientas de calculo
  matematico
 Ejemplos: Clean, Erlang, Haskell,
  Mathematica
Lenguajes basados en
logica
   Especifican un conjunto de atributos que
    una solución debe tener, en vez de un
    conjunto de pasos para obtener la
    solución
   En este paradigma se definen reglas
    lógicas y luego un motor de inferencia
    lógico permite extraer conclusiones o
    responder a preguntas planteadas al
    sistema
   Ejemplos: ALF, Curry, Prolog, Oz
Scripts
   En un sentido tradicional, los scripts
    están diseñados para automatizar
    tareas usadas frecuentemente que
    usualmente tienen que ver con
    llamar o pasar comandos a
    programas externos
Scripts
 Muchos programas de aplicación
  complejos dejan a los usuarios
  implementar funciones
  personalizadas proveyéndoles de un
  lenguaje propio.
 Muchos de estos deciden utilizar
  lenguajes de scripting tradicionales
  como el Perl o Visual Basic
Scripts
   Ejemplos:
       ActionScript
       JavaScript
       Perl
       PHP
       Phyton
       Ruby
Programación imperativa
 Opuesta a la programación
  declarativa, este paradigma describe
  la computación en términos de un
  estado del programa y de unas
  instrucciones que cambian dicho
  estado.
 Los programas imperativos son una
  secuencia de comandos para que el
  computador realice
Programacion Estructurada
 Hace uso de las estructuras de
  control de flujo
 Es Turing completa, esto quiere
  decir que todo algoritmo computable
  puede ser escrito en términos de
  programación estructurada
Programación
procedimental
   Es un paradigma de programación basado
    en el concepto de “llamado de
    procedimientos”
   Procedimientos, tambien conocidos como
    rutinas, subrutinas, metodos o funciones
    simplemente consienen series de pasos
    computacionales.
   Cualquier procedimiento puede ser
    llamado en cualquier punto durante la
    ejecucion de un programa, incluyendo
    otros procedimientos o en él mismo
Programación
procedimental
   Ejemplos:
       C
       Basic
       COBOL
       Matlab
       Pascal
Programación Orientada a
Objetos
   La idea detrás de la POO, es que un
    programa de computador puede ser visto
    como abarcando una colección de
    unidades individuales, objetos, que
    actúan unos con otros
   Opuesto a la forma de ver tradicional en
    la cual un programa debe ser visto como
    una colección de procedimientos o
    simplemente una lista de instrucciones
    para el computador
Programación Orientada a
Objetos
  Cada objeto es capaz de recibir
  mensajes, procesar datos, y enviar
  mensajes a otros objetos.
 Es la unión de la programación
  estructurada y procedimental con
  los tipos de datos abstractos
Programación Orientada a
Objetos
   Ejemplos:
      C++
      JAVA
      Ruby
      SmallTalk
      C#
      Delphi

Leng progr 01

  • 1.
    Lenguajes y paradigmasde programación Iván Felipe Álvarez GEMIS-OE EAFIT 2006
  • 2.
    Temas  Que esun programa?  Que es un lenguaje de programación?  Características de los lenguajes de programación  Paradigmas de programación
  • 3.
    Que es unprograma?  La unión de una secuencia de instrucciones que un computador puede interpretar y ejecutar y un conjunto de estructuras de datos que almacenan la información sobre la que la operan las instrucciones
  • 4.
    Que es unlenguaje de programación?  Es una técnica de comunicación estilizada que se utiliza para controlar el comportamiento de una maquina (usualmente un computador)  Como los lenguajes humanos, los lenguajes de programación tienen reglas sintácticas y semánticas para definir el significado
  • 5.
    Que es unlenguaje de programación?  Herramienta que permite a un programador especificar de manera precisa: sobre qué datos una computadora debe operar, cómo deben ser estos almacenados y transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias
  • 6.
    Que es unlenguaje de programación?  Ejemplos: Visual Basic C/C++ JAVA FORTRAN LISP
  • 7.
    Características de los lenguajesde programación  Tipos de datos  Estructuras de datos  Instrucciones y Control de flujo  Filosofía de diseño  Compilación e Interpretación
  • 8.
    Tipos de datos  Internamente, todos los datos de los computadores tradicionales están guardados simplemente como ceros o unos(binario)  Un solo valor en memoria puede ser interpretado de múltiples formas: 10010110 “Hola” Azul – Rojo – Verde 150
  • 9.
    Estructuras de Datos  Variables 205  Arreglos 2 9 3 0 5 1 6 9 3 3 6 2  Listas 0 2 3 4 6 9
  • 10.
    Instrucciones y Controlde flujo int a = 0; while (a!=10){ if (a==5){ cout << “La variable a va en 5”; } a++; } b=a
  • 11.
    Filosofía de diseño Cada lenguaje se desarrolla de acuerdo a un diseño especial o una filosofía  Estos están ligados al paradigma de programación a utilizar  Se refiere a la forma de hacer las cosas
  • 12.
    Compilación e Interpretación  Interptetes:analizan las instrucciones una a una y las ejecutan directamente  Compiladores: convierten el código fuente a código de maquina para ser ejecutado posteriormente
  • 13.
    Paradigmas de programación  Orientado a aspectos  Concurrente  Declarativo  Funcional  Imperativo  Lógico  Multiparadigma  Orientado a objetos  Scripting
  • 14.
    Lenguajes Declarativos  Describenun problema mas que definir una solución  Todos los lenguajes puramente funcionales y lógicos son Declarativos  Ejemplos: ABSET, Lustre, MetaPost, Prolog, SQL, XSL Transformations
  • 15.
    Lenguajes Funcionales  Definenprogramas y subrutinas como funciones matematicas  Muchos de estos lenguajes estan unidos a herramientas de calculo matematico  Ejemplos: Clean, Erlang, Haskell, Mathematica
  • 16.
    Lenguajes basados en logica  Especifican un conjunto de atributos que una solución debe tener, en vez de un conjunto de pasos para obtener la solución  En este paradigma se definen reglas lógicas y luego un motor de inferencia lógico permite extraer conclusiones o responder a preguntas planteadas al sistema  Ejemplos: ALF, Curry, Prolog, Oz
  • 17.
    Scripts  En un sentido tradicional, los scripts están diseñados para automatizar tareas usadas frecuentemente que usualmente tienen que ver con llamar o pasar comandos a programas externos
  • 18.
    Scripts  Muchos programasde aplicación complejos dejan a los usuarios implementar funciones personalizadas proveyéndoles de un lenguaje propio.  Muchos de estos deciden utilizar lenguajes de scripting tradicionales como el Perl o Visual Basic
  • 19.
    Scripts  Ejemplos: ActionScript JavaScript Perl PHP Phyton Ruby
  • 20.
    Programación imperativa  Opuestaa la programación declarativa, este paradigma describe la computación en términos de un estado del programa y de unas instrucciones que cambian dicho estado.  Los programas imperativos son una secuencia de comandos para que el computador realice
  • 21.
    Programacion Estructurada  Haceuso de las estructuras de control de flujo  Es Turing completa, esto quiere decir que todo algoritmo computable puede ser escrito en términos de programación estructurada
  • 22.
    Programación procedimental  Es un paradigma de programación basado en el concepto de “llamado de procedimientos”  Procedimientos, tambien conocidos como rutinas, subrutinas, metodos o funciones simplemente consienen series de pasos computacionales.  Cualquier procedimiento puede ser llamado en cualquier punto durante la ejecucion de un programa, incluyendo otros procedimientos o en él mismo
  • 23.
    Programación procedimental  Ejemplos: C Basic COBOL Matlab Pascal
  • 24.
    Programación Orientada a Objetos  La idea detrás de la POO, es que un programa de computador puede ser visto como abarcando una colección de unidades individuales, objetos, que actúan unos con otros  Opuesto a la forma de ver tradicional en la cual un programa debe ser visto como una colección de procedimientos o simplemente una lista de instrucciones para el computador
  • 25.
    Programación Orientada a Objetos  Cada objeto es capaz de recibir mensajes, procesar datos, y enviar mensajes a otros objetos.  Es la unión de la programación estructurada y procedimental con los tipos de datos abstractos
  • 26.
    Programación Orientada a Objetos  Ejemplos: C++ JAVA Ruby SmallTalk C# Delphi