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.