Está en la página 1de 21

sixth generation of programming languages

José Pablo Santiago Cabrera


LINEA DEL TIEMPO DE LA SEXTA GENERACION

LENGUAJE DE DISEÑADOR O EJEMPLO DE VENTAJAS Y


AÑO PREDECESOR
PROGRAMACION COMPAÑIA CODIGO FUENTE DESVENTAJAS

G Stewart von Java


2000 Join Java EJEMPLO *
Itzstein
2000 Joy Von Thun FP, Fort * *

Walter Bright at
2000 D C, C++, C#, Java EJEMPLO *
Digital Mars

Christophe de
2000 XL Ada, C++, Lisp * *
Dinechin

Anders Hejlsberg
C, C++, Java, Delphi,
2000 C# at Microsoft EJEMPLO *
Modula-2
(ECMA)

C, C++, Java, PHP,


2000 Ferite Chris Ross Phyton, EJEMPLO *
Ruby, Scheme
2001 AspectJ Xerox PARC Java EJEMPLO Link

Simbología
(*)no hay mucha información sobre el lenguaje de programación
EJEMPLO DE
LENGUAJE DE DISEÑADOR O VENTAJAS Y
AÑO PREDECESOR CODIGO
PROGRAMACION COMPAÑIA DESVENTAJAS
FUENTE
2001 VisualBasic.Net Microsoft Visual Basic EJEMPLO LINK

2002 Io Steve Dekorte Self, Newton Script * *

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

Joy, Forth, Lisp


2003 Factor Slava Pestov * *

Smalltalk, Java,
2003 Scala Martin Odersky Haskell, Standard ML, EJEMPLO *
OCaml

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 *

Don Syme at Microsoft Objective Calm, C#,


2005 F# EJEMPLO *
Research Haskell

Simbología
(*)no hay mucha información sobre el lenguaje de programación
EJEMPLO DE
LENGUAJE DE DISEÑADOR O VENTAJAS Y
AÑO PREDECESOR CODIGO
PROGRAMACION COMPAÑIA DESVENTAJAS
FUENTE

Philip Wadler,
2006 Links University of Haskell * *
Edinburgh

2006 Kite Mooneer Salem * EJEMPLO *

C#, ksh, Perl, CL,


2006 Windows PowerShell Microsoft * *
DCL, SQL

Brian Frank, Andy C#, Scala, Ruby,


2007 Fan * *
Frank Erlang, C#

2007 Vala GNOME C# EJEMPLO *

Lisp, ML, Haskell,


2007 Clojure Rich Hickey * *
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;
}
}
ac
k

b
“D”, DEVUELVE EL VALOR CUANDO SE
CUMPLE
ulong factorial(ulong n)
{
if(n <= 1)
return 1;
else
return n * factorial(n - 1);
}
ac
k

b
C# MUESTRA EN PANTALLA HOLA
MUNDO¡¡
class ExampleClass
{
static void Main()
{
System.Console.WriteLine("Hello, world!");
}
}
ac
k

b
FERITE, MUESTRA HOLA MUNDO
uses "console";
Console.println( "Hello World" );
ac
k

b
Ejemplo. aspect
public 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”
ASPECTJ Resultado:
Before Say - Think
Hello
After Say - Smile
She say -
Before Say - Think
bye
After Say - Smile
ac
k

b
VENTAJAS Y DESVENTAJAS

ac
k

b
LOA BASE ASPECTOS

Puntos de Enlaces
Cortes
Entidades Dinámicas Avisos

AspectJ = + Introducciones Y
Declaraciones
Entidades Estáticas

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.
VISUALBASIC.NET MUESTRA HOLA
MUNDO
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
MsgBox("Hello, World")
End Sub
End Class
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
MessageBox.Show("Hello, World")
End Sub
End Class
ac
k

b
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.
ac
k

b
NEMERLE MUESTRA HOLA MUNDO

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

b
SCALA MUESTRA HOLA MUNDO
object HelloWorld extends Application {
println("Hello, world!")
}

or

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

b
SQUIRREL MOSTRANDO CÓDIGO
FUENTE DE UN FACTORIAL

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

b
BOO, MOSTRANDO LA SERIE
FIBONACCI
def 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}")
ac
k

b
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}
ac
k

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

b
KITE
"Hello World" in Kite Inheritance
class a [
Hello World is simply a single line (excluding property m1,
comments and blank lines): construct [
#!/usr/local/bin/kite this.m1 = "foo";
]
];
"Hello World"|print;
Language Features class b from a [
property m2,
Logic construct [
this.m2 = "bar";
decide [ ],
condition1 [ ... ], method message() [
condition2 [ ... ], (this.m1 + this.m2)|print;
true [ ... ] ]
]; ];

Loops (make b)|message;


i = 0;

while (i < 10) [


i = i + 1;
];

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

ac
k

b
];
VALA MOSTRANDO HOLA MUNDO
void main () {
print ("Hello World\n");
}

class Sample : Object {


void run () {
stdout.printf ("Hello World\n");
}

ac
k

También podría gustarte