Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   La Taberna (https://www.clubdelphi.com/foros/forumdisplay.php?f=40)
-   -   Concurso de programación usando APL (https://www.clubdelphi.com/foros/showthread.php?t=88446)

nlsgarcia 08-06-2015 03:07:11

Concurso de programación usando APL
 
Club Delphi,

Cita:

Empezado por UnoCero
...APL (que significa A Programming Language) fue uno de los primeros lenguajes de computadora. Hoy Dyalog mantiene un dialecto de APL y han promovido un concurso para introducir este lenguaje a las nuevas generaciones de programadores...

:rolleyes:

Ver la noticia completa en : Un concurso de programación… pero usando APL

Información relacionada:
Nelson.

mamcx 08-06-2015 03:23:59

APL y sus derivados son interesantisimos. En especial su dialecto kdb+:

Esto es lo que pregunte en lambda:

http://lambda-the-ultimate.org/node/5075

Cita:

In the linked page it claim the interpreter is faster than C:

Kdb+ is a testament to the rewards available from finding the right abstractions. K programs routinely outperform hand-coded C. This is of course, impossible, as The Hitchhiker’s Guide to the Galaxy likes to say. K programs are interpreted into C. For every K program there is a C program with exactly the same performance. So how do K programs beat hand-coded C? As Whitney explained at the Royal Society in 2004, “It is a lot easier to find your errors in four lines of code than in four hundred.”

Now I'm a noob about compilers, but I understand that a)Interpreters are easier to code than compilers b)And them are slow, probably very very slow.

How can be faster? How do it?

I don't see how "“It is a lot easier to find your errors in four lines of code than in four hundred.”" can be the explanation.
Basicamente, la duda era como es posible que un lenguaje interpretado sea de forma consistente mas rapido que C. Y es posible!

Estos hacen parte de la familia de los "Lenguajes orientados a arrays", que el mas conocido es matlab.

Tanto es asi, que la direccion que le estoy dando a mi lenguaje es por estos tiros, aunque con una sintaxis mucho mas humana (inspirada en python). El asunto es que procesar array es muy eficiente a cara de la CPU, y si se da la suficiente ergonomia, se puede hacer un interprete muy eficiente.

Junto con rebol, forth y otros son un testamento que las herramientas mas comunes son mucho mas complejas y "pesadas" de lo que podrian ser.

Al González 08-06-2015 05:15:45

Cita:

Empezado por mamcx (Mensaje 492989)
[...] la direccion que le estoy dando a mi lenguaje es por estos tiros, aunque con una sintaxis mucho mas humana (inspirada en python).

Enhorabuena, Mario. Veo que por fin te decidiste. No te olvides de usar "<>" en lugar del espantoso (y menos humano) "!=". ;)

¡Éxito! :)

mamcx 09-06-2015 06:09:16

Si Al, no creas que le gasto mucho tiempo a pensar en esas cosas. De hecho, ni he hecho el parser (hago todo directo con AST) para no casarme aun con nada, pero si tengo como una docena de "programas imaginarios" donde coloco ideas de como saldria la programacion de algo.

Por ejemplo, esto es son algunas ideas de hacer arrays:

Código PHP:

nums Int32[size=100 data=5 7 6.0 5555 150505]
nums = Array.int32(3 5 0 7)
nums = Array:int32(3 5 0 7)
nums = array(int321007 1 7)

matrixInt32[
1 4 3;
6 0 7;
]

data Str[]

insert(data, [], item>20)


data 30
data 
int32[6 2]

buf Int[size=100]

for 
i in range(buf len)
    
buf[i] = 

Tambien tengo unos cuantos archivos intentando ver como implemento algunos programas (como un API web y cosas asi), porque lo que mas me interesa es que la sintaxis sea predecible y regular, con el menor numero de casos especiales y con las diferencias que resulten marcar de forma clara el cambio.


La franja horaria es GMT +2. Ahora son las 09:23:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi