Skip to main content
    • Aa
    • Aa

Types and trace effects of higher order programs


This paper shows how type effect systems can be combined with model-checking techniques to produce powerful, automatically verifiable program logics for higher order programs. The properties verified are based on the ordered sequence of events that occur during program execution, so-called event traces. Our type and effect systems infer conservative approximations of the event traces arising at run-time, and model-checking techniques are used to verify logical properties of these histories. Our language model is based on the λ-calculus. Technical results include a type inference algorithm for a polymorphic type effect system, and a method for applying known model-checking techniques to the trace effects inferred by the type inference algorithm, allowing static enforcement of history- and stack-based security mechanisms. A type safety result is proven for both unification and subtyping constraint versions of the type system, ensuring that statically well-typed programs do not contain trace event checks that can fail at run-time.

Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

T. Amtoft , F. Nielson & H. R. Nielson (1999) Type and Effect Systems: Behaviours for Concurrency. London: Imperial College Press.

F. Besson , T. Jensen , D. Le Métayer & T. Thorn (2001) Model checking security properties of control flow graphs. J. Comput. Secur. 9, 217250.

O. Burkart , D. Caucal , F Moller . & B. Steffen (2001) Verification on infinite structures. In Handbook on Process Algebra, J. Bergstra , A. Pons , & S. Smolka (eds), Elsevier, pp. 545623.

K. W. Hamlen , G. Morrisett & F. B. Schneider (2006) Certified in-lined reference monitoring on. NET. In Plas '06: Proceedings of the 2006 Workshop on Programming Languages and Analysis for Security. New York: ACM Press, pp. 716.

Tomoyuki Higuchi & Atsushi. Ohori (2007) A static type system for JVM access control. ACM Trans. Program. Lang. Syst. 29 (1), 4.

D. Kozen (1983) Results on the propositional mu-calculus. Theor. Comput. Sci., 27, 333354.

J. Palsberg & P. O'Keefe (1995) A type system equivalent to flow analysis. ACM Trans. Program. Lang. Syst., 17 (4), 576599.

D. A. Schmidt (1998) Trace-based abstract interpretation of operational semantics. Lisp Symbol. Comput, 10 (3), 237271.

F. B. Schneider (2000) Enforceable security policies. Inform. Syst. Secur. 3 (1), 3050.

C. Skalka & F. Pottier (2003) Syntactic type soundness for HM(X). Electro. Notes Theor. Comput. Sci., 75, pp. 6174.

A. Tarski (1955) A lattice-theoretical fixpoint theorem and its applications. Pac. J. Math. 5 (2), 285309.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *


Full text views

Total number of HTML views: 0
Total number of PDF views: 5 *
Loading metrics...

Abstract views

Total abstract views: 65 *
Loading metrics...

* Views captured on Cambridge Core between September 2016 - 19th September 2017. This data will be updated every 24 hours.