JavaScript es manteca en mis manos ;-). Estuve trabajando en mi proyecto CobolScript, compiladr de COBOL a JavaScript, que puede ejecutarse en el navegador o en Node.js.
Agregué soporte de funciones definidaspor el usuario, con parámetros, argumentos a pasar, y hasta variables locales. El primer ejemplo fue el clásico factorial recursivo:
https://github.com/ajlopez/CobolScript/blob/master/samples/factorial/factorial.cob
Pueden ejecutarlo en ese directorio, con la línea de comando:
node run factorial.cob
data division. working-storage section. 01 n. procedure division. perform show-factorial varying n from 1 to 10. show-factorial local result. perform factorial using n giving result. display n "! = " result. factorial using n local m. if n = 1 then return n. subtract 1 from n giving m. perform factorial using m giving m. multiply n by m. return m.
Le agregué nueva sintaxis:
– perform … using … Para llamar a un procedimiento local pasando argumentos.
– <proc> using … El procedimiento declara sus argumentos.
– <proc> local(s) … El procedimiento declara sus variables locales (actualización: removido, ahora hay comando local(s)… directamente en el código del procedimiento).
– perform … giving <var>… Puedo especificar que el valor de retorno del procedimiento (internamente, es una función JavaScript) sea guardado en una o varias variables.
– return (expr) El procedimiento puede retornar en cualquier momento, con un resultado opcional. Me falta implementar el clásico exit de COBOL.
Le agregué soporte de plantillas, páginas web dinámicas, y acceso a objetos JavaScript/Node.js nativos. Pero eso ya es tema para otro post.
Nos leemos!
Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez