Searching for restricted functionality and efficient JVM-based languages
===

I work on systems whose business logic may change reasonably frequently, and there is often times a division of responsibility between the developer and the business analyst. There is a balance, but it can be hugely valuable to differentiate between infrastructure code and business logic.

For a long time I have been looking for languages -- now a days, preferably JVM based -- that can offer the following:

* Restricted functionality. The logic can't open a file. It can't print a line to the console. It can't do *anything* except what it is explicitly permitted (eg write a log message).
* High performance. The business code can be at the heart of the system. I realize that it's still possible to do an infinite loop, but that's life. This generally implies statically typed.
* Familiar syntax. The syntax of Java is fine. Syntax of C.

It is the restricted functionality requirement above that makes it very difficult. Javascript is a good language for this -- there are *no* built-in IO libraries -- but as it is dynamic its performance is limited.

I've toyed with implementing my own language, but given the huge selection of languages out there I'm convinced there must be something.

Does anyone have any suggestions?

Thanks!
