FoxSharp un lenguage de dominio especifico para Visual FoxPro

152 views
Skip to first unread message

Irwin Rodriguez

unread,
Jun 30, 2021, 2:47:27 PM6/30/21
to publice...@googlegroups.com
Saludos comunidad,

Quiero presentarles mi proyecto de verano llamado FoxSharp. Es un lenguaje de dominio específico (DSL) escrito en C# que le permite a Visual FoxPro realizar diversas tareas de cómputo apoyándose desde luego de la plataforma NET. Los dominios específicos son envío de email y peticiones HTTP (este último en mantenimiento) pero pienso expandir su dominio a medida que lo vaya usando (y espero que ustedes también).

El lenguaje es turing completo por lo que además de lo anterior también ofrece las características comunes que ofrecen otros lenguajes tales como:

1. Enlaces de Variables (Variable bindings)
2. Tipos de datos primitivos
3. Tipos de datos compuestos (Array, Hash, Email, Http)
4. Expresiones lógicas y aritméticas
5. Funciones integradas
6. Funciones de alto orden
7. Clausuras
8. Control de flujo

Todas las funciones son ciudadanas de primera clase o (First Class Citizen) lo cual quiere decir que se deben tratar como tratamos cualquier variable de otro tipo. Esta característica junto con las clausuras las he tomado prestadas de Haskell que a mi parecer es uno de los lenguajes más poderosos de la programación funcional.

FoxSharp también cuenta con un conjunto de funciones integradas que (en conjunto con el control de flujo) permiten tratar los datos, por ahora hay poco más de 10 pero sin duda habrá más :)

Si van al repositorio podrán ver en la carpeta Redist una aplicación llamada FoxSharpREPL.app con la que podrán jugar un rato para familiarizarse con el lenguaje, solo tienen que apuntar al directorio donde se encuentran estos ficheros y lanzar la aplicación desde el IDE de Visual FoxPro:

cd c:\my-foxsharp\folder\
do FoxSharpREPL.app
image.png
Desde la REPL podrán ejecutar código FoxSharp y recibir la respuesta directamente en la consola de salida en la parte inferior. Por ejemplo pueden enviar un email de la siguiente forma:
// primero creamos el tipo de dato smpt
myEmail := smtp {
   "provider": "smtp.gmail.com",
   "port": 587,
   "user": "email-adm...@dominio.com",
   "pass": "la-contraseña",
   "from": "alg...@dominio.com",
   "to": "otro-a...@dominio.com",
   "subject": "Qué te parece este lenguaje?",
   "body": "Se ve interesante ¿verdad?",
};

// enviamos el email con la función send()
if (send(myEmail)) {
   info("email enviado!");
} else {
   error("ha ocurrido un error en el envío del email.");
}
La sintaxis está inspirada en C# y algunas funciones integradas coinciden con las de Visual FoxPro. El proyecto es completamente open source y espero que les sea de gran utilidad como lo es para mí. 
Para ver más información vayan al repositorio y lean el README que contiene información detallada acerca del uso tanto en modo consola como en modo producción.
IMPORTANTE: Quiero agradecer a mis patrocinadores de patreon quienes me han apoyado todo este tiempo. Sin su ayuda no habría podido comprar los libros que necesitaba para realizar este tipo de proyecto. 
Los que deseen apoyarme en patreon o paypal bienvenido sean y gracias de antemano.
¡Feliz día para todos!


Dsan

unread,
Jun 30, 2021, 3:48:23 PM6/30/21
to publice...@googlegroups.com
Excelente Irwin- voy echar un ojjo.

Y la sintaxis de vfp es imposible mantenerla?,  algo que me gustaria en fox fuera declarar la variable y ahi mismo asignarle valor ni Chen lo ha hecho, supongo que por mantener compatibilidad hacia atras...

saludes

DS




--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CABooBBnO-4B%3DkLV5jQCwyjqH40d_Q9Qc-tANAEfjmTXs7vOh%3Dg%40mail.gmail.com.

Ivan Martinez

unread,
Jun 30, 2021, 4:11:34 PM6/30/21
to publicesvfoxpro
Muchas gracias Erwin.
Tambien vi tu sitio y eta muy bien e interesante.

Adelante
Ivan Martinez von Halle

Reply all
Reply to author
Forward
0 new messages