Task Your task will be to implement an IFC type-checker. This will be based on the type-checker that we implemented in the class (available on moodle), but you will have to add the information flow part. You are given a template file with the datatype and supporting functions for security labels already implemented. The template solution also has the type-signature for the typecheck function that you are required to implement. You are only required to implement four cases: the lambda case, application case, if else case and the plus case.

Oh no! Our experts couldn't answer your question.

Don't worry! We won't leave you hanging. Plus, we're giving you back one question for the inconvenience.

Submit your question and receive a step-by-step explanation from our experts in as fast as 30 minutes.
You have no more questions left.
Message from our expert:
Our experts need more information to provide you with a solution. Please resubmit your question, making sure it's detailed and complete. We've credited a question to your account.
Your Question:
type Identifier = String

type EContext = [(Identifier,Value)]
type TContext = [(Identifier,SecType)]
type ErrorMesg = String

data Value = BoolVal Bool
           | NumVal Int
           | StringVal String
           | LamVal Identifier SecType Expr

data Expr = Var String
          | NExp Int
          | BExp Bool
          | Plus Expr Expr
          | Conj Expr Expr
          | Ifelse Expr Expr Expr
          | Lam Identifier SecType Expr
          | App Expr Expr

data Type = TNat
          | Tbool
          | Arr SecType SecType
   deriving Eq

data Label = Public
           | Secret
  deriving Eq

join :: Label -> Label -> Label
join Public Public = Public
join _ Secret = Secret
join Secret _ = Secret

leq :: Label -> Label -> Bool
leq Public Public = True
leq Public Secret = True
leq Secret Secret = True
leq Secret Public = False

data SecType = Lab Type Label
  deriving Eq

typeCheck :: TContext -> Expr -> Either SecType ErrorMesg
typeCheck g e = Right "answer me"
Task Your task will be to implement an IFC type-checker. This will be based
on the type-checker that we implemented in the class (available on moodle), but
you will have to add the information flow part. You are given a template file with
the datatype and supporting functions for security labels already implemented.
The template solution also has the type-signature for the typecheck function
that you are required to implement. You are only required to implement four
cases: the lambda case, application case, if else case and the plus case.
Transcribed Image Text:Task Your task will be to implement an IFC type-checker. This will be based on the type-checker that we implemented in the class (available on moodle), but you will have to add the information flow part. You are given a template file with the datatype and supporting functions for security labels already implemented. The template solution also has the type-signature for the typecheck function that you are required to implement. You are only required to implement four cases: the lambda case, application case, if else case and the plus case.
Knowledge Booster
Fibonacci algorithm
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education