Loading user information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading user information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

Juan Chen and Nikhil Swamy: FINE, Functional Programming for End-to-End Security Verification

15 minutes, 3 seconds


Right click “Save as…”

Juan Chen and Nikhil Swamy, two researchers at the Research in Software Engineering group, present FINE, a new programming language for .NET.

Software systems are governed by increasingly complex security policies. Ensuring that a system properly enforces its policy is hard. FINE is a new programming language (similar to F#) whose type system can be used to check that rich, stateful authorization and information flow policies are properly enforced. FINE is compiled to DCIL, a new minimal extension of .NET CIL. Our compiler carries type information throughout and allows DCIL programs to be verified independently for security.

In this video, Juan an Nikhil give the big picture and a shiny demo of FINE.

 The Research in Software Engineering team (RiSE) coordinates Microsoft's research in Software Engineering in Redmond, USA.


Follow the discussion

  • Oops, something didn't work.

    Getting subscription
    Subscribe to this conversation
  • Sounds interesting -- will watch later ...

  • Interesting!


    The type of fread looks a bit like a dependent type. Since the third type depends on the value of the first argument. Although, since u is only used in the predicate part of the "type", that might not be true.


    Is FINE depedently typed?

  • Yes, Fine is dependently typed. In fact, we have dependent refinements: types like {x:t | phi}, where the formula phi is a type that can contain values from the term language. We also have value indexed types like cred < u > in the example of fread from the video, where u is a value. And, we also have affine types which allow us to model stateful programs. Incidentally, we chose the name "Fine" in part because of the afFINE and reFINEment typing constructs. 


    Check out our papers at research.microsoft.com/fine for more details. 

Remove this comment

Remove this thread


Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.