What is it?

EveXL is a Domain-Specific Language that I developed while completing my PhD studies.

I originally developed it to be used in smartphones (I built the first prototype for Android), to support the development of interactive applications that reacted to user behavior as it took place.

The general idea was to have a server app offering event-detection services to other apps in the smartphone. Whenever another app needed to be notified about a specific event in the user's life, like arriving at home or at the gym, it would submit an EveXL event to the EveXL server. In turn, the server would start listening for the event and notify back the submitting app whenever it took place.

Here you can learn about EveXL and try programming with it. Instead of real life sensors reading the environment, as would happen in a smartphone environment, I have created a generator of readings for this site. It's just a small JavaScript game featuring a physics engine that drops a stream of colored balls and registers their color. You can generate the ball stream yourself by using the colored buttons, or just flip the "Start Demo" button and let the generator produce a predefined sequence.

At the bottom of the Examples page you'll find an editor that will allow you to write your own expressions and another generator for you to execute them against a live stream of readings. Have fun!

Note: The execution of the EveXL expressions is done by a remote server that sometimes falls asleep if left idle for too long. You may notice the generators hanging a bit after dropping the first ball, but after that everything should come up to speed.


If you'd like to know more, please check the following publications: