Concurnas es un lenguaje de programación JVM de código abierto diseñado para construir sistemas concurrentes, distribuidos y paralelos confiables, escalables y de alto rendimiento. A primera vista es muy parecido a Groovy.
La extensión de un programa en Concurnas es *.conc
Instalación
$ sdk install concurnas
$ concc programa.conc
$ conc programa
El Hello, world y otros programas usando Concurnas:
hello_world.concSystem.out.println("Hola, mundo en Concurnas!!")
clases.conc
class X{ def hola(){ System.out.println("Hola desde clase X") } } class Y{ def hola(){ System.out.println("Hola desde clase Y") } } def main(args String[]){ new X().hola() new Y().hola() }
def main(args String[]){ x int = 4 y int = 2 System.out.println("x: "+x) System.out.println("y: "+y) if(x > y){ System.out.printf("%d > %d \n",x,y) } }
cuenta.conc
def main(args String[]){ cuenta() } def cuenta(){ suma int = 0 nombre String = "Polinar Sanchez Umberto" palabras String[] = nombre.split(" ") System.out.println(nombre) System.out.println("Cant. de palabras: "+palabras.length) for(cad in palabras){ System.out.println(cad+" : "+cad.length()) suma = suma + cad.length() } System.out.println("Cant. de letras: "+suma) }
class X{ def hacer(args String[]){ System.err.println("Argumentos: "+args) } def getLongitud(a String?)=> a?.length()?:'ups' } def main(args String[]){ System.out.println("Hola, mundo en Concurnas!!") new X().hacer(args) System.out.println(new X().getLongitud(null))//ups System.out.println(new X().getLongitud("null"))//4 System.out.println("\t***Tipos***") entero int entero = 453 System.out.println("Entero: "+entero) System.out.printf("Entero: %d\n",entero) cadena String cadena = "Este es un buen dia para comenzar." System.out.printf("Cadena: %s\n",cadena) verdadero Boolean verdadero = true if(verdadero){ System.out.println(new X().getLongitud("Juan Jacobo Rosseau")) } testA() caracter char caracter ='\u1234' System.out.println("Caracter: "+caracter) class MyClase objClase MyClase objClase = new MyClase() if(objClase == null){ System.out.println("El objeto es nulo") }else{ System.out.println("El objeto no es nulo") } testB() testC() } def testA(){ System.out.println("Este es un metodo") } def testB(){ a int = 32 b int = 21 c int = 11 mayor int = a System.out.printf("a:%d, b:%d, c:%d\n",a,b,c); if(mayor < b){ mayor = b } if(mayor < c){ mayor = c } System.out.println("El mayor es: "+mayor); } def testC(){ System.out.println(mayuscula()) System.out.println("Suma: "+suma(12,4)) System.out.println("Decimo: "+decimo()) System.out.println("Centesimo: "+centesimo()) System.out.println("Milesimo: "+milesimo()) //Esto no compilara: //cadena String=null cadena String="null" try{ cadena = cadena.toUpperCase() }catch(npe NullPointerException){ System.err.println("Ha ocurrido un NullPointerException!!") }catch(ex Exception){ System.err.println("Ha ocurrido una excepcion: "+ex.toString()) ex.printStackTrace() } if(verdadero()){ System.out.println("Suma: "+suma(-32,54)) } falsoFalso Boolean = falso() if( not falsoFalso){ System.out.println("Hola, mundo desde Concurnas!!!") } } def mayuscula(){ "mayuscula".toUpperCase() } def suma(a int, b int){ a+b } def decimo(){ 1.0/10.0 } def centesimo(){ 1.0/100.0 } def milesimo(){ 1.0/1000.0 } def verdadero()=> true def falso()=> false
Como se puede observar es muy similar a Java y/o Groovy. En próximos post seguiremos hablando de este lenguaje.
Sitio oficial:
https://concurnas.com