[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"detail-sidebar-cat-0-en-105":3,"doc-seo-639350-105":59,"doc-detail-639350-en":130},{"code":4,"msg":5,"data":6},0,"success",[7,13,18,23,28,33,38,43,48,51,55],{"id":8,"doc_module":4,"doc_module_name":9,"category_name":10,"show_sort_weight":11,"slug":12},1,"Document","Story & Novel",90,"story-novel",{"id":14,"doc_module":4,"doc_module_name":9,"category_name":15,"show_sort_weight":16,"slug":17},2,"Literature",80,"literature",{"id":19,"doc_module":4,"doc_module_name":9,"category_name":20,"show_sort_weight":21,"slug":22},4,"Exam",70,"exam",{"id":24,"doc_module":4,"doc_module_name":9,"category_name":25,"show_sort_weight":26,"slug":27},5,"Comic",60,"comic",{"id":29,"doc_module":4,"doc_module_name":9,"category_name":30,"show_sort_weight":31,"slug":32},6,"Technology",50,"technology",{"id":34,"doc_module":4,"doc_module_name":9,"category_name":35,"show_sort_weight":36,"slug":37},7,"Healthcare",40,"healthcare",{"id":39,"doc_module":4,"doc_module_name":9,"category_name":40,"show_sort_weight":41,"slug":42},8,"Research & Report",30,"research-report",{"id":44,"doc_module":4,"doc_module_name":9,"category_name":45,"show_sort_weight":46,"slug":47},9,"Religion & Spirituality",20,"religion-spirituality",{"id":46,"doc_module":4,"doc_module_name":9,"category_name":49,"show_sort_weight":46,"slug":50},"World Cup","world-cup",{"id":52,"doc_module":4,"doc_module_name":9,"category_name":53,"show_sort_weight":52,"slug":54},10,"Lifestyle","lifestyle",{"id":56,"doc_module":4,"doc_module_name":9,"category_name":57,"show_sort_weight":24,"slug":58},19,"General","general",{"code":4,"msg":60,"data":61},"ok",{"site_id":62,"language":63,"slug":64,"title":65,"keywords":66,"description":67,"schema_data":68,"social_meta":123,"head_meta":125,"extra_data":127,"updated_unix":129},105,"en","popl99-jflow-practical-mostly-static-information-flow-control","POPL’99 - JFlow: Practical Mostly-Static Information Flow Control","","POPL’99 research introduces JFlow, an extension to Java that statically checks information flow to protect privacy and integrity of sensitive data. It addresses limitations of earlier language extensions by adding a decentralized label model, label polymorphism, runtime label checking, and automatic label inference. The paper formalizes JFlow and provides correctness rules while supporting major Java features such as objects, subclassing, dynamic type tests, access control, and exceptions, with minimal implementation overhead.",{"@graph":69,"@context":122},[70,84,105],{"@type":71,"itemListElement":72},"BreadcrumbList",[73,77,79,82],{"item":74,"name":75,"@type":76,"position":8},"https://docshare.wps.com","Home","ListItem",{"item":78,"name":9,"@type":76,"position":14},"https://docshare.wps.com/document/",{"item":80,"name":30,"@type":76,"position":81},"https://docshare.wps.com/document/technology/",3,{"item":83,"name":65,"@type":76,"position":19},"https://docshare.wps.com/document/popl99-jflow-practical-mostly-static-information-flow-control/639350/",{"url":83,"name":65,"@type":85,"image":86,"author":91,"headline":65,"publisher":94,"fileFormat":97,"inLanguage":63,"description":67,"dateModified":98,"datePublished":99,"encodingFormat":97,"isAccessibleForFree":100,"interactionStatistic":101},"DigitalDocument",{"url":87,"@type":88,"width":89,"height":90},"https://docshare.wps.com/thumbnails/popl99-jflow-practical-mostly-static-information-flow-control/639350.png","ImageObject",300,407,{"name":92,"@type":93},"jayni","Person",{"url":74,"name":95,"@type":96},"DocShare","Organization","application/pdf","2026-10-26","2026-10-22",true,{"@type":102,"interactionType":103,"userInteractionCount":8},"InteractionCounter",{"@type":104},"ViewAction",{"@type":106,"mainEntity":107},"FAQPage",[108,114,118],{"name":109,"@type":110,"acceptedAnswer":111},"What problem does JFlow aim to solve?","Question",{"text":112,"@type":113},"JFlow aims to prevent sensitive private information from leaking through program computation by statically checking information flow within programs that may manipulate the data.","Answer",{"name":115,"@type":110,"acceptedAnswer":116},"How does JFlow improve practical usability over earlier approaches?",{"text":117,"@type":113},"JFlow is designed as a usable programming model rather than a restrictive static-analysis language. It integrates practical Java features and adds flexible mechanisms like a decentralized label model, label polymorphism, runtime label checking, and automatic label inference.",{"name":119,"@type":110,"acceptedAnswer":120},"Which programming language features does the paper say JFlow supports?",{"text":121,"@type":113},"The paper states that JFlow supports objects, subclassing, dynamic type tests, access control, and exceptions, along with mutable objects (subsuming function values) and formal correctness rules for checking programs.","https://schema.org",{"og:url":83,"og:type":124,"og:title":65,"og:site_name":95,"og:description":67},"article",{"robots":126,"canonical":83},"index,follow",{"doc_id":128,"site_id":62},639350,1793051603,{"code":4,"msg":5,"data":131},{"doc_id":128,"user_id":132,"nickname":92,"user_avatar":133,"doc_module":4,"category_id":29,"category_name":30,"doc_title":65,"doc_description":67,"doc_content":134,"file_id":135,"file_url":136,"file_type":137,"file_size":138,"view_count":8,"is_deleted":4,"is_public":8,"is_downloadable":8,"audit_status":8,"page_count":139,"language":140,"language_code":63,"site_id":62,"html_lang":63,"table_of_contents":141,"faqs":142,"seo_title":143,"seo_description":67,"update_tm":144,"read_time":145},3985747859343,"https://ap-avatar.wpscdn.com/davatar_276721f389ce27ea32af1340a28f341c","Proceedings of the 26th ACM Symposium on Principles of Programming Languages (POPL’99), San Antonio, Texas, USA, January 1999  \nJFlow: Practical Mostly-Static Information Flow Control  \nAndrew C. Myers  \nLaboratory for Computer Science  \nMassachusetts Institute of Technology  \n[http://www](http://www. pmg. lcs. mit.edu/)[.](http://www. pmg. lcs. mit.edu/)[ pmg](http://www. pmg. lcs. mit.edu/)[.](http://www. pmg. lcs. mit.edu/)[ lcs](http://www. pmg. lcs. mit.edu/)[.](http://www. pmg. lcs. mit.edu/)[ mit](http://www. pmg. lcs. mit.edu/)[.](http://www. pmg. lcs. mit.edu/)[edu/](http://www. pmg. lcs. mit.edu/)~andru  \nAbstract  \nA promising technique for protecting privacy and integrity of sensitive data is to statically check information ﬂow within programs that manipulate the data. While previous work has proposed programming language extensions to allow this static checking, the resulting languages are too restrictive for practical use and have not been implemented. In this paper, we describe the new language JFlow, an extension to the Java language that adds statically-checked information ﬂow annotations. JFlow provides several new features that make information ﬂow checking more ﬂexible and convenient than in previous models: a decentralized label model, label polymorphism, run-time label checking, and automatic label inference. JFlow also supports many language features that have never been integrated successfully with static information ﬂow control, including objects, subclassing, dynamic type tests, access control, and exceptions. This paper deﬁnesthe JFlow language and presents formal rules that are used to check JFlow programs for correctness. Because most checking is static, there is little code space, data space, or run-time overhead in the JFlow implementation.  \n1 Introduction  \nProtection for the privacy of data is becoming increasingly important as data and programs become increasingly mobile. Conventional security techniques such as discretionary access control and information ﬂow control (including mandatory access control) have signiﬁcant shortcomings as privacyprotection mechanisms.  \nThe hard problem in protecting privacy is preventing private information from leaking through computation. Access control mechanisms do not help with this kind of leak, since  \nThis research was supported in part by DARPA Contract F30602-96-C-0303, monitored by USAF Rome Laboratory, and in part by DARPA Contract F30602-98-1-0237, also monitored by USAF Rome Laboratory.  \nCopyright 􀀍c 1999 by the Association for Computing Machinery, Inc. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for proﬁtor commercial advantage and that copies bear this notice and the full citation on the ﬁrst page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior speciﬁc permission and/or a fee. Request permissions from Publications Dept, ACM Inc., fax +1 (212) 869-0481, [or permissions@acm.org](or permissions@acm.org).  \nthey only control information release, not its propagation once released. Mandatory access control (MAC) mechanisms prevent leaks through propagation by associating a run-time security class with every piece of computed data. Every computation requires that the security class of the result value also be computed, so multi-level systems using this approach are slow. Also, these systems usually apply a security class to an entire process, tainting all data handled by the process. This coarse granularity results in data whose security class is overly restrictive, and makes it difﬁcult to write many useful applications.  \nA promising technique for protecting privacy and integrity of sensitive data is to statically check information ﬂows within programs that ","cbCaibDmpEB0HC4X","https://ap.wps.com/l/cbCaibDmpEB0HC4X","pdf",236875,17,"English","# Abstract\n# 1 Introduction\n## Privacy protection and information leakage\n## Access control vs information flow control\n## Static information flow checking\n## JFlow language and contributions","[{\"question\":\"What problem does JFlow aim to solve?\",\"answer\":\"JFlow aims to prevent sensitive private information from leaking through program computation by statically checking information flow within programs that may manipulate the data.\"},{\"question\":\"How does JFlow improve practical usability over earlier approaches?\",\"answer\":\"JFlow is designed as a usable programming model rather than a restrictive static-analysis language. It integrates practical Java features and adds flexible mechanisms like a decentralized label model, label polymorphism, runtime label checking, and automatic label inference.\"},{\"question\":\"Which programming language features does the paper say JFlow supports?\",\"answer\":\"The paper states that JFlow supports objects, subclassing, dynamic type tests, access control, and exceptions, along with mutable objects (subsuming function values) and formal correctness rules for checking programs.\"}]","POPL’99 - JFlow: Practical Mostly-Static Information Flow Control | PDF",1792703234,43]