Jif implementation

43 views
Skip to first unread message

Deian Stefan

unread,
Jan 15, 2013, 12:09:04 AM1/15/13
to stanford-...@googlegroups.com
From Raj:

I  was going through the jif paper, pretty interesting that they have extended labels
(information flow control) to Java programming language. I was curious if there is a
practical implementation for jif and I couldn't find it on the web.

You can checkout Jif here: http://www.cs.cornell.edu/jif/

Josh Israel

unread,
Jan 15, 2013, 12:43:16 AM1/15/13
to stanford-...@googlegroups.com
On a related note, one thing I was wondering is whether Jif still needs to be implemented as java "extension". The paper is from 2000, well before annotations really made their way into Java. It seems like maybe now all the language features of jif could be implemented as an annotation processor. I imagine (naively?) that you could use real java annotations*, do all the static compile-time checking, and emit run-time checks into the source for declassification. I'm not terribly familiar with the API for annotation processing, though. Does anyone know if it would be possible?

*admittedly, defining the owner->reader maps would be kind of syntactically clunky, since you're limited to arrays

Deian Stefan

unread,
Jan 15, 2013, 1:29:21 AM1/15/13
to stanford-...@googlegroups.com

On Monday, January 14, 2013 9:43:16 PM UTC-8, Josh Israel wrote:
On a related note, one thing I was wondering is whether Jif still needs to be implemented as java "extension". The paper is from 2000, well before annotations really made their way into Java. It seems like maybe now all the language features of jif could be implemented as an annotation processor. I imagine (naively?) that you could use real java annotations*, do all the static compile-time checking, and emit run-time checks into the source for declassification. I'm not terribly familiar with the API for annotation processing, though. Does anyone know if it would be possible?

*admittedly, defining the owner->reader maps would be kind of syntactically clunky, since you're limited to arrays

That's a good question.  I am not very familiar with the API myself, but I suspect that you'll run into some nasty situations beyond label encoding. 
Jif is not backwards compatible with Java; among some other examples, Jif extends Java (with the label switch) and doesn't allow unchecked exceptions or static variables.
A more detailed description of JFlow (before it became Jif) is given in [Myers199a].
If someone knows more about the annotation processor,  please share your thoughts!
Reply all
Reply to author
Forward
0 new messages