4 ms·
It's not a programming language, but a DSL.
by jmnicolas 13y ago
It's not a programming language, but a DSL.
- tkellogg 13y agoHonestly, I'm glad its only a DSL. It means I can still use the programming language that I love but get the benefits of some obscure special purpose language.
- bjz_ 13y agoAh yes. From the README on github: > Jeeves is a programming language for automatically enforcing privacy policies. We have implemented it as an embedded domain-specific language in Python. I'm guessing the PR person writing the original post thought "Programming Language" sounded better.
- judk 13y agoPlease explain the difference.
- jeanyang 13y agoA language exists on its own, with its own syntax and semantics. It may interoperate with other languages, but it usually takes some work to get a language written in one language to talk to a language executing in another language. (Examples include C/OCaml and all the languages that execute on the .NET runtime.) An embedded domain-specific language is a language with its own semantics that has been grafted onto another language. For instance, Jeeves is embedded in Python. We can use Jeeves as a Python library, but when we're using Jeeves functions, the program behave like Jeeves programs rather than vanilla Python programs. (In this case, it means that the runtime tracks different possible views of sensitive values and computations done on them.) When programmers use the @jeeves decorator and the Jeeves API, the programs look like Python programs and can even use Python built-in functions and libraries, but the Jeeves library is doing work behind the scenes to make the programs behave differently.