6º Generación de Lenguajes de programacion
Transcript of 6º Generación de Lenguajes de programacion
![Page 1: 6º Generación de Lenguajes de programacion](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/1.jpg)
José Pablo Santiago Cabrera
sixth generation of programming languages
![Page 2: 6º Generación de Lenguajes de programacion](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/2.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/3.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/4.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/5.jpg)
THANK YOU TO PAY ATTENTION
![Page 6: 6º Generación de Lenguajes de programacion](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/6.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/7.jpg)
“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](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/8.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/9.jpg)
FERITE, MUESTRA HOLA MUNDO
uses "console";Console.println( "Hello World" );
back
![Page 10: 6º Generación de Lenguajes de programacion](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/10.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/11.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/12.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/13.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/14.jpg)
NEMERLE MUESTRA HOLA MUNDO
class Hello { static Main () : void { System.Console.WriteLine ("Hello, world!"); }}
back
![Page 15: 6º Generación de Lenguajes de programacion](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/15.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/16.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/17.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/18.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/19.jpg)
F# MOSTRANDO HOLA MUNDO¡¡(* This is commented *)(* Sample hello world program *)printfn "Hello World!"
back
![Page 20: 6º Generación de Lenguajes de programacion](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/20.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022051515/553e31ba55034684398b4946/html5/thumbnails/21.jpg)
VALA MOSTRANDO HOLA MUNDOvoid main () { print ("Hello World\n");}
class Sample : Object { void run () { stdout.printf ("Hello World\n"); }
back