{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,3]],"date-time":"2026-05-03T11:00:25Z","timestamp":1777806025865,"version":"3.51.4"},"reference-count":51,"publisher":"SAGE Publications","issue":"4-5","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["JCS"],"published-print":{"date-parts":[[2017,7,10]]},"DOI":"10.3233\/jcs-15791","type":"journal-article","created":{"date-parts":[[2017,6,27]],"date-time":"2017-06-27T10:50:02Z","timestamp":1498560602000},"page":"323-365","source":"Crossref","is-referenced-by-count":10,"title":["Paragon \u2013 Practical programming with information flow control"],"prefix":"10.1177","volume":"25","author":[{"given":"Niklas","family":"Broberg","sequence":"first","affiliation":[{"name":"Department of Computer Science and Engineering, Chalmers University of Technology, Gothenburg, Sweden. E-mails:\u00a0niklas.broberg@chalmers.se,\u00a0dave@chalmers.se"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Bart","family":"van Delft","sequence":"additional","affiliation":[{"name":"Google, Z\u00fcrich, Switzerland"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"David","family":"Sands","sequence":"additional","affiliation":[{"name":"Department of Computer Science and Engineering, Chalmers University of Technology, Gothenburg, Sweden. E-mails:\u00a0niklas.broberg@chalmers.se,\u00a0dave@chalmers.se"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"179","reference":[{"key":"10.3233\/JCS-15791_ref1","doi-asserted-by":"crossref","unstructured":"J.\u00a0Aldrich, J.\u00a0Sunshine, D.\u00a0Saini and Z.\u00a0Sparks, Typestate-oriented programming, in: OOPSLA Companion, 2009, pp.\u00a01015\u20131022.","DOI":"10.1145\/1639950.1640073"},{"key":"10.3233\/JCS-15791_ref2","doi-asserted-by":"crossref","unstructured":"A.\u00a0Almeida Matos and G.\u00a0Boudol, On declassification and the non-disclosure policy, in: Proc. IEEE Computer Security Foundations Workshop, 2005, pp.\u00a0226\u2013240.","DOI":"10.1109\/CSFW.2005.21"},{"key":"10.3233\/JCS-15791_ref3","doi-asserted-by":"crossref","unstructured":"A.\u00a0Askarov and A.\u00a0Sabelfeld, Security-typed languages for implementation of cryptographic protocols: A case study, in: Proc. European Symp. on Research in Computer Security, Lecture Notes in Computer Science, Vol.\u00a03679, Springer-Verlag, 2005.","DOI":"10.1007\/11555827_12"},{"key":"10.3233\/JCS-15791_ref4","doi-asserted-by":"crossref","unstructured":"D.\u00a0Aspinall, Subtyping with singleton types, in: Computer Science Logic: 8th Workshop, CSL \u201994, Springer-Verlag, 1995, pp.\u00a01\u201315.","DOI":"10.1007\/BFb0022243"},{"key":"10.3233\/JCS-15791_ref5","doi-asserted-by":"crossref","unstructured":"M.Y.\u00a0Becker, C.\u00a0Fournet and A.D.\u00a0Gordon, Design and semantics of a decentralized authorization language, in: Proc. IEEE Computer Security Foundations Symposium, IEEE Computer Society, 2007, pp.\u00a03\u201315.","DOI":"10.1109\/CSF.2007.18"},{"key":"10.3233\/JCS-15791_ref6","doi-asserted-by":"crossref","unstructured":"K.\u00a0Bhargavan, C.\u00a0Fournet and A.D.\u00a0Gordon, Modular verification of security protocol code by typing, in: POPL \u201910: Proceedings of the 37th Annual ACM SIGPLAN\u2013SIGACT Symposium on Principles of Programming Languages, ACM, 2010.","DOI":"10.1145\/1706299.1706350"},{"key":"10.3233\/JCS-15791_ref8","doi-asserted-by":"crossref","unstructured":"A.\u00a0Birgisson, A.\u00a0Russo and A.\u00a0Sabelfeld, Unifying facets of information integrity, in: Information Systems Security, Lecture Notes in Computer Science, Vol.\u00a06503, 2010.","DOI":"10.1007\/978-3-642-17714-9_5"},{"key":"10.3233\/JCS-15791_ref9","doi-asserted-by":"crossref","unstructured":"J.\u00a0Borgstrom, J.\u00a0Chen and N.\u00a0Swamy, Verifying stateful programs with substructural state and Hoare types, in: Proceedings of the 5th ACM Workshop on Programming Languages Meets Program Verification, PLPV \u201911, ACM, 2011.","DOI":"10.1145\/1929529.1929532"},{"key":"10.3233\/JCS-15791_ref10","doi-asserted-by":"crossref","unstructured":"N.\u00a0Broberg and D.\u00a0Sands, Flow locks: Towards a core calculus for dynamic flow policies, in: Programming Languages and Systems: 15th European Symposium on Programming, ESOP 2006, Lecture Notes in Computer Science, Vol.\u00a03924, Springer-Verlag, 2006.","DOI":"10.1007\/11693024_13"},{"key":"10.3233\/JCS-15791_ref11","doi-asserted-by":"crossref","unstructured":"N.\u00a0Broberg and D.\u00a0Sands, Paralocks \u2013 Role-based information flow control and beyond, in: POPL \u201910: Proceedings of the 37th Annual ACM SIGPLAN\u2013SIGACT Symposium on Principles of Programming Languages, 2010.","DOI":"10.1145\/1706299.1706349"},{"key":"10.3233\/JCS-15791_ref12","doi-asserted-by":"crossref","unstructured":"N.\u00a0Broberg, B.\u00a0van Delft and D.\u00a0Sands, Paragon for practical programming with information-flow control, in: Programming Languages and Systems: Proceedings of the 11th Asian Symposium, APLAS 2013, Melbourne, VIC, Australia, December 9\u201311, 2013, Springer, 2013, pp.\u00a0217\u2013232.","DOI":"10.1007\/978-3-319-03542-0_16"},{"key":"10.3233\/JCS-15791_ref13","doi-asserted-by":"publisher","DOI":"10.1145\/2786558.2786563"},{"issue":"4","key":"10.3233\/JCS-15791_ref15","doi-asserted-by":"publisher","first-page":"39","DOI":"10.1145\/1046191.1032305","article-title":"Enforcing security and safety models with an information flow analysis tool","volume":"24","author":"Chapman","year":"2004","journal-title":"ACM SIGAda Ada Letters"},{"key":"10.3233\/JCS-15791_ref16","unstructured":"S.\u00a0Chong, K.\u00a0Vikram and A.C.\u00a0Myers, SIF: Enforcing confidentiality and integrity in web applications, in: Proceedings of the 16th USENIX Security Symposium, Boston, MA, USA, August 6\u201310, 2007, N.\u00a0Provos, ed., USENIX Association, 2007."},{"key":"10.3233\/JCS-15791_ref17","doi-asserted-by":"crossref","unstructured":"W.\u00a0De Groef, D.\u00a0Devriese, N.\u00a0Nikiforakis and F.\u00a0Piessens, FlowFox: A web browser with flexible and precise information flow control, in: The ACM Conference on Computer and Communications Security, CCS\u201912, Raleigh, NC, USA, October 16\u201318, 2012, T.\u00a0Yu, G.\u00a0Danezis and V.D.\u00a0Gligor, eds, ACM, 2012, pp.\u00a0748\u2013759, http:\/\/dl.acm.org\/citation.cfm?id=2382196. ISBN 978-1-4503-1651-4.","DOI":"10.1145\/2382196.2382275"},{"issue":"5","key":"10.3233\/JCS-15791_ref18","doi-asserted-by":"publisher","first-page":"236","DOI":"10.1145\/360051.360056","article-title":"A lattice model of secure information flow","volume":"19","author":"Denning","year":"1976","journal-title":"Comm. of the ACM"},{"issue":"7","key":"10.3233\/JCS-15791_ref19","doi-asserted-by":"publisher","first-page":"504","DOI":"10.1145\/359636.359712","article-title":"Certification of programs for secure information flow","volume":"20","author":"Denning","year":"1977","journal-title":"Comm. of the ACM"},{"key":"10.3233\/JCS-15791_ref20","doi-asserted-by":"crossref","unstructured":"D.J.\u00a0Dougherty, K.\u00a0Fisler and S.\u00a0Krishnamurthi, Specifying and reasoning about dynamic access-control policies, in: Automated Reasoning, Third International Joint Conference, IJCAR 2006, Lecture Notes in Computer Science, Vol.\u00a04130, Springer, 2006.","DOI":"10.1007\/11814771_51"},{"issue":"3","key":"10.3233\/JCS-15791_ref21","doi-asserted-by":"publisher","first-page":"263","DOI":"10.1007\/s10207-014-0257-6","article-title":"A new algorithm for low-deterministic security","volume":"14","author":"Giffhorn","year":"2015","journal-title":"International Journal of Information Security"},{"key":"10.3233\/JCS-15791_ref22","unstructured":"J.\u00a0Graf, M.\u00a0Hecker and M.\u00a0Mohr, Using JOANA for information flow control in Java programs \u2013 A practical guide, in: Proceedings of the 6th Working Conference on Programming Languages (ATPS\u201913), Lecture Notes in Informatics, Vol.\u00a0215, Springer, Berlin, 2013, pp.\u00a0123\u2013138."},{"key":"10.3233\/JCS-15791_ref23","doi-asserted-by":"crossref","unstructured":"C.\u00a0Hammer, Experiences with PDG-based IFC, in: Engineering Secure Software and Systems, Second International Symposium, 2010, pp.\u00a044\u201360.","DOI":"10.1007\/978-3-642-11747-3_4"},{"issue":"6","key":"10.3233\/JCS-15791_ref24","doi-asserted-by":"publisher","first-page":"399","DOI":"10.1007\/s10207-009-0086-1","article-title":"Flow-sensitive, context-sensitive, and object-sensitive information flow control based on program dependence graphs","volume":"8","author":"Hammer","year":"2009","journal-title":"International Journal of Information Security"},{"key":"10.3233\/JCS-15791_ref25","doi-asserted-by":"crossref","unstructured":"B.\u00a0Hicks, K.\u00a0Ahmadizadeh and P.D.\u00a0McDaniel, From languages to systems: Understanding practical application development in security-typed languages, in: 22nd Annual Computer Security Applications Conference (ACSAC 2006), IEEE Computer Society, 2006.","DOI":"10.1109\/ACSAC.2006.30"},{"key":"10.3233\/JCS-15791_ref26","doi-asserted-by":"crossref","unstructured":"L.\u00a0Jia and S.\u00a0Zdancewic, Encoding information flow in Aura, in: Proceedings of the ACM SIGPLAN Fourth Workshop on Programming Languages and Analysis for Security, 2009.","DOI":"10.1145\/1554339.1554344"},{"key":"10.3233\/JCS-15791_ref27","unstructured":"T.\u00a0Jim, SD3: A trust management system with certified evaluation, in: Proc. IEEE Symp. on Security and Privacy, 2001."},{"key":"10.3233\/JCS-15791_ref28","unstructured":"N.\u00a0Li, J.C.\u00a0Mitchell and W.H.\u00a0Winsborough, Design of a role-based trust-management framework, in: IEEE Symposium on Security and Privacy, 2002, pp.\u00a0114\u2013130."},{"issue":"19","key":"10.3233\/JCS-15791_ref29","doi-asserted-by":"crossref","first-page":"1974","DOI":"10.1016\/j.tcs.2010.01.025","article-title":"Arrows for secure information flow","volume":"411","author":"Li","year":"2010","journal-title":"Theor. Comput. Sci"},{"key":"10.3233\/JCS-15791_ref30","doi-asserted-by":"crossref","unstructured":"J.\u00a0Morgenstern and D.R.\u00a0Licata, Security-typed programming within dependently-typed programming, in: ICFP \u201910: Proceedings of the 15th ACM SIGPLAN International Conference on Functional Programming, 2010.","DOI":"10.1145\/1863543.1863569"},{"key":"10.3233\/JCS-15791_ref31","doi-asserted-by":"crossref","unstructured":"A.C.\u00a0Myers, JFlow: Practical mostly-static information flow control, in: POPL \u201999: Proceedings of the 26th ACM SIGPLAN\u2013SIGACT Symposium on Principles of Programming Languages, ACM, 1999, pp.\u00a0228\u2013241.","DOI":"10.1145\/292540.292561"},{"key":"10.3233\/JCS-15791_ref32","doi-asserted-by":"crossref","unstructured":"A.C.\u00a0Myers and B.\u00a0Liskov, A decentralized model for information flow control, in: Proc. ACM Symp. on Operating System Principles, 1997, pp.\u00a0129\u2013142.","DOI":"10.1145\/269005.266669"},{"issue":"4","key":"10.3233\/JCS-15791_ref33","doi-asserted-by":"publisher","first-page":"410","DOI":"10.1145\/363516.363526","article-title":"Protecting privacy using the decentralized label model","volume":"9","author":"Myers","year":"2000","journal-title":"ACM Transactions on Software Engineering and Methodology"},{"key":"10.3233\/JCS-15791_ref35","doi-asserted-by":"publisher","DOI":"10.1145\/2491522.2491523"},{"issue":"1","key":"10.3233\/JCS-15791_ref37","doi-asserted-by":"publisher","first-page":"117","DOI":"10.1145\/596980.596983","article-title":"Information flow inference for ML","volume":"25","author":"Pottier","year":"2003","journal-title":"ACM Transactions on Programming Languages and Systems (TOPLAS)"},{"key":"10.3233\/JCS-15791_ref38","doi-asserted-by":"crossref","unstructured":"J.\u00a0Rehof and T.\u00a0Mogensen, Tractable constraints in finite semilattices, in: Static Analysis, Lecture Notes in Computer Science, Vol.\u00a01145, 1996, pp.\u00a0285\u2013300.","DOI":"10.1007\/3-540-61739-6_48"},{"key":"10.3233\/JCS-15791_ref39","doi-asserted-by":"crossref","unstructured":"A.\u00a0Russo, K.\u00a0Claessen and J.\u00a0Hughes, A library for light-weight information-flow security in Haskell, in: Proceedings of the 1st ACM SIGPLAN Symposium on Haskell, 2008.","DOI":"10.1145\/1411286.1411289"},{"issue":"5","key":"10.3233\/JCS-15791_ref40","doi-asserted-by":"publisher","first-page":"517","DOI":"10.3233\/JCS-2009-0352","article-title":"Declassification: Dimensions and principles","volume":"15","author":"Sabelfeld","year":"2009","journal-title":"Journal of Computer Security"},{"key":"10.3233\/JCS-15791_ref42","doi-asserted-by":"crossref","unstructured":"D.\u00a0Stefan, A.\u00a0Russo, D.\u00a0Mazi\u00e8res and J.C.\u00a0Mitchell, Disjunction category labels, in: 16th Nordic Conference on Security IT Systems, NordSec, Lecture Notes in Computer Science, Vol.\u00a07161, Springer, 2011, pp.\u00a0223\u2013239.","DOI":"10.1007\/978-3-642-29615-4_16"},{"key":"10.3233\/JCS-15791_ref43","doi-asserted-by":"crossref","unstructured":"D.\u00a0Stefan, A.\u00a0Russo, J.C.\u00a0Mitchell and D.\u00a0Mazi\u00e8res, Flexible dynamic information flow control in Haskell, in: Proceedings of the 4th ACM Symposium on Haskell, 2011.","DOI":"10.1145\/2034675.2034688"},{"issue":"1","key":"10.3233\/JCS-15791_ref44","doi-asserted-by":"publisher","first-page":"157","DOI":"10.1109\/TSE.1986.6312929","article-title":"Typestate: A programming language concept for enhancing software reliability","volume":"12","author":"Strom","year":"1986","journal-title":"IEEE Trans. Software Eng."},{"key":"10.3233\/JCS-15791_ref45","doi-asserted-by":"crossref","unstructured":"A.J.\u00a0Summers and P.\u00a0M\u00fcller, Freedom before commitment: A lightweight type system for object initialisation, in: Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA \u201911, ACM, 2011, pp.\u00a01013\u20131032.","DOI":"10.1145\/2048066.2048142"},{"key":"10.3233\/JCS-15791_ref46","doi-asserted-by":"crossref","unstructured":"N.\u00a0Swamy, J.\u00a0Chen and R.\u00a0Chugh, Enforcing stateful authorization and information flow policies in Fine, in: Programming Languages and Systems: 19th European Symposium on Programming, ESOP 2010, 2010.","DOI":"10.1007\/978-3-642-11957-6_28"},{"key":"10.3233\/JCS-15791_ref47","doi-asserted-by":"crossref","unstructured":"N.\u00a0Swamy, J.\u00a0Chen, C.\u00a0Fournet, P.\u00a0Strub, K.\u00a0Bharagavan and J.\u00a0Yang, Secure distributed programming with value-dependent types, in: ICFP \u201911: Proceedings of the 16th ACM SIGPLAN International Conference on Functional Programming, 2011.","DOI":"10.1145\/2034773.2034811"},{"key":"10.3233\/JCS-15791_ref48","doi-asserted-by":"crossref","unstructured":"N.\u00a0Swamy, B.J.\u00a0Corcoran and M.\u00a0Hicks, Fable: A language for enforcing user-defined security policies, in: Proc. IEEE Symp. on Security and Privacy, 2008, pp.\u00a0369\u2013383.","DOI":"10.1109\/SP.2008.29"},{"key":"10.3233\/JCS-15791_ref49","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542486"},{"key":"10.3233\/JCS-15791_ref50","doi-asserted-by":"crossref","unstructured":"B.\u00a0van Delft, N.\u00a0Broberg and D.\u00a0Sands, A Datalog semantics for Paralocks, in: Proceedings of the 8th International Workshop on Security and Trust Management (STM), Springer, 2012, pp.\u00a0305\u2013320.","DOI":"10.1007\/978-3-642-38004-4_20"},{"key":"10.3233\/JCS-15791_ref51","doi-asserted-by":"crossref","unstructured":"B.\u00a0van Delft, N.\u00a0Broberg and D.\u00a0Sands, Programming with Paragon, in: Proc. 2013 Marktoberdorf Summer School, NATO Science Series, 2013, online at\u00a0[36].","DOI":"10.3233\/978-1-61499-385-8-279"},{"key":"10.3233\/JCS-15791_ref52","doi-asserted-by":"crossref","unstructured":"B.\u00a0van Delft, S.\u00a0Hunt and D.\u00a0Sands, Very static enforcement of dynamic policies, in: International Conference on Principles of Security and Trust, Springer 2015, pp.\u00a032\u201352.","DOI":"10.1007\/978-3-662-46666-7_3"},{"key":"10.3233\/JCS-15791_ref53","doi-asserted-by":"crossref","unstructured":"M.\u00a0Vanhoef, W.\u00a0De Groef, D.\u00a0Devriese, F.\u00a0Piessens and T.\u00a0Rezk, Stateful declassification policies for event-driven programs, in: Proc. IEEE Computer Security Foundations Symposium, IEEE, 2014, pp.\u00a0293\u2013307, http:\/\/ieeexplore.ieee.org\/xpl\/mostRecentIssue.jsp?punumber=6954678.","DOI":"10.1109\/CSF.2014.28"},{"key":"10.3233\/JCS-15791_ref54","doi-asserted-by":"crossref","unstructured":"J.\u00a0Whaley and M.\u00a0Rinard, Compositional pointer and escape analysis for Java programs, in: Proceedings of the 14th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA \u201999, ACM, 1999, pp.\u00a0187\u2013206.","DOI":"10.1145\/320384.320400"},{"key":"10.3233\/JCS-15791_ref55","doi-asserted-by":"crossref","unstructured":"J.\u00a0Yang, K.\u00a0Yessenov and A.\u00a0Solar-Lezama, A language for automatically enforcing privacy policies, in: POPL \u201912: Proceedings of the 39th Annual ACM SIGPLAN\u2013SIGACT Symposium on Principles of Programming Languages, ACM, 2012.","DOI":"10.1145\/2103656.2103669"},{"issue":"2\u20133","key":"10.3233\/JCS-15791_ref57","doi-asserted-by":"crossref","first-page":"67","DOI":"10.1007\/s10207-007-0019-9","article-title":"Dynamic security labels and static information flow control","volume":"6","author":"Zheng","year":"2007","journal-title":"International Journal of Information Security"}],"container-title":["Journal of Computer Security"],"original-title":[],"link":[{"URL":"https:\/\/content.iospress.com\/download?id=10.3233\/JCS-15791","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,29]],"date-time":"2026-04-29T20:45:04Z","timestamp":1777495504000},"score":1,"resource":{"primary":{"URL":"https:\/\/journals.sagepub.com\/doi\/full\/10.3233\/JCS-15791"}},"subtitle":[],"editor":[{"given":"Toby","family":"Murray","sequence":"additional","affiliation":[],"role":[{"role":"editor","vocabulary":"crossref"}]},{"given":"Andrei","family":"Sabelfeld","sequence":"additional","affiliation":[],"role":[{"role":"editor","vocabulary":"crossref"}]},{"given":"Lujo","family":"Bauer","sequence":"additional","affiliation":[],"role":[{"role":"editor","vocabulary":"crossref"}]}],"short-title":[],"issued":{"date-parts":[[2017,7,10]]},"references-count":51,"journal-issue":{"issue":"4-5"},"URL":"https:\/\/doi.org\/10.3233\/jcs-15791","relation":{},"ISSN":["1875-8924","0926-227X"],"issn-type":[{"value":"1875-8924","type":"electronic"},{"value":"0926-227X","type":"print"}],"subject":[],"published":{"date-parts":[[2017,7,10]]}}}