Skip to main content
    • Aa
    • Aa
  • Get access
    Check if you have access via personal or institutional login
  • Cited by 8
  • Cited by
    This article has been cited by the following publications. This list is generated based on data provided by CrossRef.

    Degano, Pierpaolo Ferrari, Gian-Luigi and Mezzetti, Gianluca 2016. Regular and context-free nominal traces. Acta Informatica,

    Degano, Pierpaolo Ferrari, Gian-Luigi and Galletta, Letterio 2016. A Two-Component Language for Adaptation: Design, Semantics and Program Analysis. IEEE Transactions on Software Engineering, Vol. 42, Issue. 6, p. 505.

    Murase, Akihiro Terauchi, Tachio Kobayashi, Naoki Sato, Ryosuke and Unno, Hiroshi 2016. Temporal verification of higher-order functional programs. ACM SIGPLAN Notices, Vol. 51, Issue. 1, p. 57.

    Murase, Akihiro Terauchi, Tachio Kobayashi, Naoki Sato, Ryosuke and Unno, Hiroshi 2016. Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - POPL 2016. p. 57.

    Chen, Jun-qing Huang, Lin-peng and Yu, Cheng-yuan 2014. Behavior-consistent service substitutions in dynamic environments. Journal of Shanghai Jiaotong University (Science), Vol. 19, Issue. 1, p. 17.

    Banerjee, Anindya and Naumann, David A. 2013. A Simple Semantics and Static Analysis for Stack Inspection. Electronic Proceedings in Theoretical Computer Science, Vol. 129, p. 284.

    Chen, Junqing Huang, Linpeng Huang, Han Yu, Chengyuan and Li, Chen 2012. 2012 International Conference on Cloud and Service Computing. p. 111.

    VAN HORN, DAVID and MIGHT, MATTHEW 2012. Systematic abstraction of abstract machines. Journal of Functional Programming, Vol. 22, Issue. 4-5, p. 705.


Types and trace effects of higher order programs

  • DOI:
  • Published online: 01 March 2008

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? *