6º generación de lenguajes de programacion

21
José Pablo Santiago Cabrera sixth generation of programming languages

Upload: mocosi

Post on 27-Apr-2015

1.371 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 6º Generación de Lenguajes de programacion

José Pablo Santiago Cabrera

sixth generation of programming languages

Page 2: 6º Generación de Lenguajes de programacion

AÑOLENGUAJE DE

PROGRAMACIONDISEÑADOR O

COMPAÑIAPREDECESOR

EJEMPLO DE CODIGO FUENTE

VENTAJAS Y DESVENTAJAS

2000 Join JavaG Stewart von Itzstein

JavaEJEMPLO *

2000 Joy Von Thun FP, Fort * *

2000 DWalter Bright at Digital Mars

C, C++, C#, Java EJEMPLO *

2000 XLChristophe de Dinechin

Ada, C++, Lisp * *

2000 C#Anders Hejlsberg at Microsoft (ECMA)

C, C++, Java, Delphi, Modula-2

EJEMPLO *

2000 Ferite Chris RossC, C++, Java, PHP, Phyton,Ruby, Scheme

EJEMPLO *

2001 AspectJ Xerox PARC Java EJEMPLO Link

LINEA DEL TIEMPO DE LA SEXTA GENERACION

Simbología(*)no hay mucha información sobre el lenguaje de programación

Page 3: 6º Generación de Lenguajes de programacion

AÑOLENGUAJE DE

PROGRAMACIONDISEÑADOR O

COMPAÑIAPREDECESOR

EJEMPLO DE CODIGO FUENTE

VENTAJAS Y DESVENTAJAS

2001 VisualBasic.Net Microsoft Visual Basic EJEMPLO LINK

2002 Io Steve Dekorte Self, Newton Script * *

2003 Nemerle University of Wroclaw C#, ML, MetaHaskell EJEMPLO *

2003 Factor Slava Pestov Joy, Forth, Lisp * *

2003 Scala Martin OderskySmalltalk, Java, Haskell, Standard ML, OCaml

EJEMPLO *

2003 Squirrel Alberto Demichelis Luna EJEMPLO *

2004 Subtext Jonathan Edwards * *

2004 Boo Rodrigo B. De Oliveira Python, C#, Java EJEMPLO *

2004 Groovy James Strachan Java EJEMPLO *

2005 F#Don Syme at Microsoft Research

Objective Calm, C#, Haskell

EJEMPLO *

Simbología(*)no hay mucha información sobre el lenguaje de programación

Page 4: 6º Generación de Lenguajes de programacion

AÑOLENGUAJE DE

PROGRAMACIONDISEÑADOR O

COMPAÑIAPREDECESOR

EJEMPLO DE CODIGO FUENTE

VENTAJAS Y DESVENTAJAS

2006 LinksPhilip Wadler, University of Edinburgh

Haskell * *

2006 Kite Mooneer Salem * EJEMPLO *

2006 Windows PowerShell MicrosoftC#, ksh, Perl, CL, DCL, SQL

* *

2007 FanBrian Frank, Andy Frank

C#, Scala, Ruby, Erlang, C#

* *

2007 Vala GNOME C# EJEMPLO *

2007 Clojure Rich HickeyLisp, ML, Haskell, Erlang

* *

2007 Oberon-07 Wirth Oberón * *

Simbología(*)no hay mucha información sobre el lenguaje de programación

Page 5: 6º Generación de Lenguajes de programacion

THANK YOU TO PAY ATTENTION

Page 6: 6º Generación de Lenguajes de programacion

JOIN JAVA, DEVUELVE EL VALOR DE X EN EL FRAGMENTÓ 1

class JoinExample { int fragment1() & fragment2(int x) { //will return value of x //to caller of fragment1 return x; }}

back

Page 7: 6º Generación de Lenguajes de programacion

“D”, DEVUELVE EL VALOR CUANDO SE CUMPLE

ulong factorial(ulong n){ if(n <= 1) return 1; else return n * factorial(n - 1);}

back

Page 8: 6º Generación de Lenguajes de programacion

C# MUESTRA EN PANTALLA HOLA MUNDO¡¡

class ExampleClass{ static void Main() { System.Console.WriteLine("Hello, world!"); }}

back

Page 9: 6º Generación de Lenguajes de programacion

FERITE, MUESTRA HOLA MUNDO

uses "console";Console.println( "Hello World" );

back

Page 10: 6º Generación de Lenguajes de programacion

ASPECTJASPECTJ

Ejemplo. aspectpublic class Test {public void Say(String name) {System.out.println(name);}public static void main(String[] args) {Test test = new Test();test.Say("Hello");System.out.println("She say - ");test.Say("bye");}}public aspect Pensando {pointcut speak() : call(public void Say(String));before() : speak() { System.out.println("Before Say - Think"); }after() : speak() {System.out.println("After Say - Smile");}}

“Prueba o depuracion”

Resultado:Before Say - ThinkHelloAfter Say - SmileShe say -Before Say - ThinkbyeAfter Say - Smileback

Page 11: 6º Generación de Lenguajes de programacion

VENTAJAS Y DESVENTAJAS

= +AspectJ

Entidades Dinámicas

Entidades Estáticas

Puntos de EnlacesCortesAvisos

Introducciones Y Declaraciones

LOA BASE ASPECTOS

VENTAJAS*Implementación modularizada : POA logra separar cada concepto con mínimo acoplamiento, resultando en implementaciones modularizadas aún en la presencia de conceptos que se entrecruzan. Esto lleva a un código más limpio, menos duplicado, más fácil de entender y de mantener.*Mayor evolucionabilidad: La separación de conceptos permite agregar nuevos aspectos, modificar y / o remover aspectos existentes fácilmente.

DESVENTAJAS*Posibles choques entre los aspectos. El ejemplo clásico es tener dos aspectos que trabajan perfectamente por separado pero al aplicarlos conjuntamente resultan en un comportamiento anormal.

back

Page 12: 6º Generación de Lenguajes de programacion

VISUALBASIC.NET MUESTRA HOLA MUNDOPublic Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MsgBox("Hello, World") End SubEnd ClassPublic Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MessageBox.Show("Hello, World") End SubEnd Class

back

Page 13: 6º Generación de Lenguajes de programacion

VENTAJAS* Visual Basic es un lenguaje simple, por lo tanto es fácil de aprender* Se dibuja formularios mediante el arrastre de controles.* La sintaxis tiene semejanza al lenguaje natural humano.* Lenguaje compatible con Microsoft office.* Es un lenguaje RAD centrado en conseguir en el menor tiempo posible los resultados que se desea obtener.* Tiene una ligera implementación de la POO (La Programación Orientada a Objetos, la cual es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora).* Permite el tratamiento de mensajes de Windows.* Es excelente para cálculos intensivos del CPU como por ejemplo operaciones matemáticas.

DESVENTAJAS* Solo Microsoft puede decidir la evolución de este lenguaje.* Solo existe un compilador, llamado igual que el lenguaje.* Solo genera ejecutables para Windows.* La sintaxis es demasiado inflexible.* Los ejecutables generados son relativamente lentos.* No es adecuado para aplicaciones grandes, como por ejemplo: multimedia, oficina, videojuegos, editores gráficos, etc.* La ligera implementación de la POO no permite sacar el máximo provecho de este modelo de programación.

back

Page 14: 6º Generación de Lenguajes de programacion

NEMERLE MUESTRA HOLA MUNDO

class Hello { static Main () : void { System.Console.WriteLine ("Hello, world!"); }}

back

Page 15: 6º Generación de Lenguajes de programacion

SCALA MUESTRA HOLA MUNDO

object HelloWorld extends Application { println("Hello, world!") }

or

object HelloWorld { def main(args: Array[String]) { println("Hello, world!") } }

back

Page 16: 6º Generación de Lenguajes de programacion

SQUIRREL MOSTRANDO CÓDIGO FUENTE DE UN FACTORIAL

function factorial(x) { if (x == 0) { return 1; } else { return x * factorial(x-1); } }

back

Page 17: 6º Generación de Lenguajes de programacion

BOO, MOSTRANDO LA SERIE FIBONACCIdef fib(): a, b = 0L, 1L #The 'L's make the numbers 64-bit while true: yield b a, b = b, a + b # Print the first 5 numbers in the series:for index as int, element in zip(range(5), fib()): print("${index+1}: ${element}")

back

Page 18: 6º Generación de Lenguajes de programacion

GROOVY

Groovy's syntax can be made far more compact than Java. For example, a declaration in Standard Java 5+ such as:

for (String it : new String[] {"Rod", "Carlos", "Chris"}) if (it.length() <= 4) System.out.println(it);

can be expressed in Groovy as:

["Rod", "Carlos", "Chris"].findAll{it.size() <= 4}.each{println it}

back

Page 19: 6º Generación de Lenguajes de programacion

F# MOSTRANDO HOLA MUNDO¡¡(* This is commented *)(* Sample hello world program *)printfn "Hello World!"

back

Page 20: 6º Generación de Lenguajes de programacion

KITE Inheritance

class a [ property m1, construct [ this.m1 = "foo"; ]];

class b from a [ property m2, construct [ this.m2 = "bar"; ], method message() [ (this.m1 + this.m2)|print; ]];

(make b)|message;

"Hello World" in Kite

Hello World is simply a single line (excluding comments and blank lines):

#!/usr/local/bin/kite

"Hello World"|print;

Language Features

Logic

decide [ condition1 [ ... ], condition2 [ ... ], true [ ... ]];

Loops

i = 0;

while (i < 10) [ i = i + 1;];

until (i == 0) [ i = i - 1;];

back

Page 21: 6º Generación de Lenguajes de programacion

VALA MOSTRANDO HOLA MUNDOvoid main () { print ("Hello World\n");}

class Sample : Object { void run () { stdout.printf ("Hello World\n"); }

back