6º generación de lenguajes de programacion

Post on 27-Apr-2015

1.372 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

José Pablo Santiago Cabrera

sixth generation of programming languages

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

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

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

THANK YOU TO PAY ATTENTION

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

“D”, DEVUELVE EL VALOR CUANDO SE CUMPLE

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

back

C# MUESTRA EN PANTALLA HOLA MUNDO¡¡

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

back

FERITE, MUESTRA HOLA MUNDO

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

back

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

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

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

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

NEMERLE MUESTRA HOLA MUNDO

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

back

SCALA MUESTRA HOLA MUNDO

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

or

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

back

SQUIRREL MOSTRANDO CÓDIGO FUENTE DE UN FACTORIAL

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

back

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

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

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

back

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

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

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

back

top related