What is DL/SQL?DL/SQL is declarative, turing-complete programming language based on top of SQL database. The main idea is to store both program and data in one SQL table and make all the computations in it. The current version of interpreter written in PHP contains quasi-lazy evaluation and simple caching. For deeper information, please visit syntax and usage page. You can download the package here.
What's the reason for such mumbo-jumbo?Maybe it sounds unbeliavable, but there was project I was leading where such language was necessary. There were several thousand floating point values with about several hundred defined computations. The problem was that both values and computations (programs in terms of declarative languages) were modified quite often and it was economically and practically uneffective to add new computation to the code of the whole sytem, so we've projected a language and created its interpreter in PHP (yes, we didn't need it to be fast - the DB was updated once a day and the computation took about 2 minutes).
And...?The only problem remaining was the fact the language wasn't turing-complete but the main goal was difinitely reached...
...two years and several thousand beers later I was (finally :) thinking of topic of my bachelor thesis. I've chosen "Declarative language on top of SQL database" with the goal to create a new language, which would be turing-complete and support at least atomic lists. I've written completely new interpreter from scratch and successfully got my BSc. degree :)
That's it?The fine thing is that I'm willing to give the source of interpreter for free under BSD license. (hey, it's crap anyway :)