You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							28 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							28 lines
						
					
					
						
							1.4 KiB
						
					
					
				| ---
 | |
| id: about-Infer
 | |
| title: About Infer
 | |
| ---
 | |
| 
 | |
| Infer is a static program analyzer for Java, C, and Objective-C, written in
 | |
| [OCaml](https://ocaml.org/). Infer is deployed within Facebook and it is running
 | |
| continuously to verify select properties of every code modification for the main
 | |
| Facebook apps for Android and iOS, Facebook Messenger, Instagram, and other
 | |
| apps. It can be used for other code too: Infer can also analyze C code, and Java
 | |
| code that is not Android. At present Infer is tracking problems caused by null
 | |
| pointer dereferences and resource and memory leaks, which cause some of the more
 | |
| important problems on mobile.
 | |
| 
 | |
| Infer came to Facebook with the acquisition of the verification startup
 | |
| Monoidics in 2013. Monoidics was itself based on recent academic research,
 | |
| particularly on separation logic and bi-abduction.
 | |
| 
 | |
| We have broadened Infer's scope within the past few years. We now refer to the
 | |
| original separation logic analysis as Infer.SL. We now also have Infer.AI, a
 | |
| general analysis framework which is an interface to the modular analysis engine
 | |
| which can be used by other kinds of program analyses (technically, called
 | |
| ''abstract interpretations'', hence the AI monicker). This added generality has
 | |
| been used to develop instantiations of Infer.AI for security, concurrency and in
 | |
| other domains. Additionally, we have Infer linters for describing shallow
 | |
| syntactic analyses, using the AL language, because sometimes linters are just
 | |
| what you need.
 |