CSE 130 Lecture Notes - Lecture 19: Domain-Specific Language, Llvm, Intermediate Representation
Document Summary
Fact - domain specific language for writing constant-time code. Dsl more specific to a domain (sql, fact, etc. ) Header (. h) file - for notions of what our types are! Object (. o) file - link against to allow to call the function(s) What"s in the . o? - actual implementation of the function. Spits out a llvm - front-end ish, an intermediate language. Llvm spits out all the binary bits n pieces. Slightly higher level than your typical assembly! What do fact functions look like? (just functions, no main) Statements + expression (will have short-circuit ops!) Must declare var mut to mutate vars! Lets you know if your functions can muck with your arguments/variables or not! We should not let people write mutable code for immutable args/vars at compile-time! Every value must be labeled secret/public secret_x + public_y is labeled secret. If void , there is nothing to return, therefore no need! Never allow secrets be written to public output!