SlideShare a Scribd company logo
Latest Advances in 
AdaCore Static Analysis 
Tools 
Presented by 
Arnaud Charlet
What is Static Analysis? 
• Basic Static Analysis: coding standard checking, metrics, compiler 
warnings and style checks 
• Advanced Static Analysis: symbolic execution/interpretation of source 
code, whole program analysis to perform software verification 
• Formal Verification: verify high level or abstract properties on your 
application, give strong guarantees
Why Use Static Analysis? 
• Make software more reliable at reasonable cost 
• Full coverage of your code 
• No missing check (no “false negatives”) 
• Anticipate problems (get results before testing) 
• Automate part of code review 
• Express and verify your requirements and architecture
CodePeer Overview 
• Advanced static analysis tool for Ada 
• Includes also basic static analysis (gnatcheck, gnatmetric) 
• Detects runtime and logic errors 
• Buffer overflow, division by zero, dead code, … 
• Analyzes complete or partial programs (full Ada) 
• Generates human readable annotations
Why Use CodePeer? 
• Early testing (detect errors earlier on code modifications/new code) 
• Find bugs (on existing code) 
• Impact analysis 
• Code review: help focusing on potential problems/complex code
Why Use CodePeer? 
• Race conditions 
• Provide evidence for program verification
SPARK Overview 
• Formal verification tool and language 
developed by AdaCore and Altran 
• Subset of Ada 2012: no pointers, no exceptions 
• New aspects, pragmas, attributes 
• Can add (executable) contracts for more precise analysis 
• Can combine test and proof at subprogram level 
• Allows 100% automatic proof
Why Use SPARK? 
• Guarantee no runtime errors, no uninitialized variables 
• Functional verification 
• Check data flows (data coupling) 
• Express and verify high level properties
Why Use SPARK? 
When starting from existing code: 
• You can start by adding incrementally annotations (pre/post) 
• Get immediate benefit from tests 
• Incrementally get additional benefits from the SPARK toolset
Why Use SPARK? 
When (re)writing (new) code: 
• Express your requirements in a way that can be reviewed by humans, 
checked by testing, and verified by SPARK 
• Express your software architecture, and verify it automatically
SPARK CodePeer 
• Ada subset (no pointers/exceptions) 
• Requires more effort (add contracts) 
• Find (and prove) all runtime errors 
• Verify functional correctness and 
security properties 
• Full Ada 
• Very easy to run (easier than 
writing tests) 
• Find possible runtime errors and 
suspicious code worth reviewing 
• No functional error detection 
• Can tune level of detection/false 
alarms
Next Release 
SPARK 15.0 and CodePeer 3.0
What’s New in SPARK 15.0 
• Improved proof capability 
• Improved user interface 
• New language features
Improved Proof Capability 
• Local subprograms can be used without contracts 
• Improved parallelism 
• Use of Ada functions in contracts 
• Improved handling of arrays, integers, floating-point
Improved User Interface 
• Improved handling of error and warning messages 
• More precise generation of contracts (Globals/Depends) 
• Support for manual provers (e.g. Coq, Isabelle) 
• Computation and display of remaining assumptions 
• Improved documentation (examples, tutorials, …)
New Language Features 
• Support for tagged types and dynamic dispatching 
• Library of (un)bounded indefinite containers 
• Support for dynamic constants/types 
• Improved usability of volatile objects 
• Support for simple raise statements 
• Support for proof-only (“ghost”) code
What’s New in CodePeer 3.0 
• DO178B and EN50128 qualification 
• Support for IEEE 754 floating point semantics 
• Symbolic debugger 
• Enhanced project file support 
• Improved support for non GNAT compilers 
• Enhanced Messages
DO178B Qualification 
• CodePeer can be used to automate part of DO178B 6.3.4.f 
The objective is to determine the correctness and consistency of the Source Code 
• Qualified as a verification tool (TQL 5 in DO178C) 
• Most checks have been qualified: overflow, range, index, division by 
zero, uninitialized variables 
• Generation of a detailed report file (date of run, switches, messages, 
limitations, …)
EN50128 Qualification 
• Qualified as a tool class T2 
• Boundary value analysis 
• Null dereference, buffer overflow, numeric overflow, … 
• Control flow analysis 
• Unreachable code, redundant conditionals, … 
• Data flow analysis 
• Uninitialized variables, redundant assignments, …
IEEE 754 Floating Point 
• CodePeer used to approximate floating point using infinite precision 
values (mathematical results) 
• This could lead to missing potential errors, or false alarms 
• IEEE 754 rounding and loss of precision now taken into account 
• Reliable detection of possible overflows, division by zero 
• Understand properties of mathematical functions (cos, sin, sqrt, …)
Symbolic Debugger 
• Display of Backtraces on precondition messages 
• Display of possible values for any variable
Enhanced Project File Support 
• Aggregate projects 
• Specifying main files on command line 
• Analyzing closure of project 
• Excluding some files from analysis 
• Improved documentation on getting started with project files
Support for Other Compilers 
• Compiler specific libraries 
• Support for a target configuration file 
• Ability to generate a target configuration file using target compiler 
• Support for Ada 83 non portable or invalid code
Enhanced Messages 
• New message: check on possible parameter aliasing 
• New filter on security related vulnerabilities 
• Support for CWE (Common Weakness Enumeration) cwe.mitre.org 
• Compiler-like behavior: file by file quick incremental analysis 
• More accurate messages, fewer false positives
Future Plans 
SPARK 16.0 and CodePeer 3.1
SPARK 16.0 
• Generation of counter examples 
• Integration with tests 
• Symbolic debugger 
• Improved proof 
• Support for tasking
CodePeer 3.1 
• Detection of dangling references 
• Incremental (re)analysis 
• Integration with GNATtest 
• New HTML interface 
• Integration with Jenkins
Questions?

More Related Content

What's hot

HKG15-110: ODP Project Update
HKG15-110: ODP Project UpdateHKG15-110: ODP Project Update
HKG15-110: ODP Project Update
Linaro
 
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway DemoTech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
AdaCore
 
Project P Open Workshop
Project P Open WorkshopProject P Open Workshop
Project P Open Workshop
matteobordinadacore
 
Tech Days 2015: Static Analysis CodePeer
Tech Days 2015: Static Analysis CodePeer Tech Days 2015: Static Analysis CodePeer
Tech Days 2015: Static Analysis CodePeer
AdaCore
 
H S
H SH S
IE WebGL and Babylon.js (Web3D 2014)
IE WebGL and Babylon.js (Web3D 2014)IE WebGL and Babylon.js (Web3D 2014)
IE WebGL and Babylon.js (Web3D 2014)
David Catuhe
 
Tech Days 2015: CodePeer - Introduction and Examples of Use
Tech Days 2015: CodePeer - Introduction and Examples of Use Tech Days 2015: CodePeer - Introduction and Examples of Use
Tech Days 2015: CodePeer - Introduction and Examples of Use
AdaCore
 
HKG15-301: OVS implemented via ODP & vendor SDKs
HKG15-301: OVS implemented via ODP & vendor SDKsHKG15-301: OVS implemented via ODP & vendor SDKs
HKG15-301: OVS implemented via ODP & vendor SDKs
Linaro
 
Sci scada toolbox
Sci scada toolboxSci scada toolbox
Sci scada toolbox
Awesomejk
 
Værktøjer udviklet på AAU til analyse af SCJ programmer
Værktøjer udviklet på AAU til analyse af SCJ programmerVærktøjer udviklet på AAU til analyse af SCJ programmer
Værktøjer udviklet på AAU til analyse af SCJ programmer
InfinIT - Innovationsnetværket for it
 
ScilabTEC 2015 - Evidence
ScilabTEC 2015 - EvidenceScilabTEC 2015 - Evidence
ScilabTEC 2015 - Evidence
Scilab
 
ScilabTEC 2015 - Noesis Solutions
ScilabTEC 2015 - Noesis SolutionsScilabTEC 2015 - Noesis Solutions
ScilabTEC 2015 - Noesis Solutions
Scilab
 
Tech Days 2015: A quick tour of Ada 2012
Tech Days 2015: A quick tour of Ada 2012Tech Days 2015: A quick tour of Ada 2012
Tech Days 2015: A quick tour of Ada 2012
AdaCore
 
Composable infrastructure try valence
Composable infrastructure try valenceComposable infrastructure try valence
Composable infrastructure try valence
Shuquan Huang
 
Fpga Verification Methodology and case studies - Semisrael Expo2014
Fpga Verification Methodology and case studies - Semisrael Expo2014Fpga Verification Methodology and case studies - Semisrael Expo2014
Fpga Verification Methodology and case studies - Semisrael Expo2014
Avi Caspi
 
ScilabTEC 2015 - Embedded Solutions
ScilabTEC 2015 - Embedded SolutionsScilabTEC 2015 - Embedded Solutions
ScilabTEC 2015 - Embedded Solutions
Scilab
 
Build and Host Real-world Machine Learning Services from Scratch @ pycontw2019
Build and Host Real-world Machine Learning Services from Scratch @ pycontw2019 Build and Host Real-world Machine Learning Services from Scratch @ pycontw2019
Build and Host Real-world Machine Learning Services from Scratch @ pycontw2019
Chun-Yu Tseng
 
PhD SDN Projects
PhD SDN ProjectsPhD SDN Projects
PhD SDN Projects
Phdtopiccom
 
C# 8 in Libraries and Applications - BASTA! Frankfurt 2020
C# 8 in Libraries and Applications - BASTA! Frankfurt 2020C# 8 in Libraries and Applications - BASTA! Frankfurt 2020
C# 8 in Libraries and Applications - BASTA! Frankfurt 2020
Christian Nagel
 

What's hot (20)

HKG15-110: ODP Project Update
HKG15-110: ODP Project UpdateHKG15-110: ODP Project Update
HKG15-110: ODP Project Update
 
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway DemoTech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
 
Project P Open Workshop
Project P Open WorkshopProject P Open Workshop
Project P Open Workshop
 
Tech Days 2015: Static Analysis CodePeer
Tech Days 2015: Static Analysis CodePeer Tech Days 2015: Static Analysis CodePeer
Tech Days 2015: Static Analysis CodePeer
 
H S
H SH S
H S
 
IE WebGL and Babylon.js (Web3D 2014)
IE WebGL and Babylon.js (Web3D 2014)IE WebGL and Babylon.js (Web3D 2014)
IE WebGL and Babylon.js (Web3D 2014)
 
Tech Days 2015: CodePeer - Introduction and Examples of Use
Tech Days 2015: CodePeer - Introduction and Examples of Use Tech Days 2015: CodePeer - Introduction and Examples of Use
Tech Days 2015: CodePeer - Introduction and Examples of Use
 
HKG15-301: OVS implemented via ODP & vendor SDKs
HKG15-301: OVS implemented via ODP & vendor SDKsHKG15-301: OVS implemented via ODP & vendor SDKs
HKG15-301: OVS implemented via ODP & vendor SDKs
 
Sci scada toolbox
Sci scada toolboxSci scada toolbox
Sci scada toolbox
 
Værktøjer udviklet på AAU til analyse af SCJ programmer
Værktøjer udviklet på AAU til analyse af SCJ programmerVærktøjer udviklet på AAU til analyse af SCJ programmer
Værktøjer udviklet på AAU til analyse af SCJ programmer
 
ScilabTEC 2015 - Evidence
ScilabTEC 2015 - EvidenceScilabTEC 2015 - Evidence
ScilabTEC 2015 - Evidence
 
ScilabTEC 2015 - Noesis Solutions
ScilabTEC 2015 - Noesis SolutionsScilabTEC 2015 - Noesis Solutions
ScilabTEC 2015 - Noesis Solutions
 
Tech Days 2015: A quick tour of Ada 2012
Tech Days 2015: A quick tour of Ada 2012Tech Days 2015: A quick tour of Ada 2012
Tech Days 2015: A quick tour of Ada 2012
 
Composable infrastructure try valence
Composable infrastructure try valenceComposable infrastructure try valence
Composable infrastructure try valence
 
Fpga Verification Methodology and case studies - Semisrael Expo2014
Fpga Verification Methodology and case studies - Semisrael Expo2014Fpga Verification Methodology and case studies - Semisrael Expo2014
Fpga Verification Methodology and case studies - Semisrael Expo2014
 
ScilabTEC 2015 - Embedded Solutions
ScilabTEC 2015 - Embedded SolutionsScilabTEC 2015 - Embedded Solutions
ScilabTEC 2015 - Embedded Solutions
 
Build and Host Real-world Machine Learning Services from Scratch @ pycontw2019
Build and Host Real-world Machine Learning Services from Scratch @ pycontw2019 Build and Host Real-world Machine Learning Services from Scratch @ pycontw2019
Build and Host Real-world Machine Learning Services from Scratch @ pycontw2019
 
PhD SDN Projects
PhD SDN ProjectsPhD SDN Projects
PhD SDN Projects
 
C# 8 in Libraries and Applications - BASTA! Frankfurt 2020
C# 8 in Libraries and Applications - BASTA! Frankfurt 2020C# 8 in Libraries and Applications - BASTA! Frankfurt 2020
C# 8 in Libraries and Applications - BASTA! Frankfurt 2020
 
Narottam_Resume_07042015
Narottam_Resume_07042015Narottam_Resume_07042015
Narottam_Resume_07042015
 

Viewers also liked

GNAT Pro User Day: AdaCore University
GNAT Pro User Day: AdaCore UniversityGNAT Pro User Day: AdaCore University
GNAT Pro User Day: AdaCore University
AdaCore
 
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
AdaCore
 
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
AdaCore
 
GNAT Pro User Day: VISIUM™ and Ada
GNAT Pro User Day: VISIUM™  and AdaGNAT Pro User Day: VISIUM™  and Ada
GNAT Pro User Day: VISIUM™ and Ada
AdaCore
 
GNAT Pro User Day: GNATdoc: Automatic Documentation Generator
GNAT Pro User Day: GNATdoc: Automatic Documentation GeneratorGNAT Pro User Day: GNATdoc: Automatic Documentation Generator
GNAT Pro User Day: GNATdoc: Automatic Documentation Generator
AdaCore
 
GNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
GNAT Pro User Day: New and Upcoming Developments in the AdaCore TechnologyGNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
GNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
AdaCore
 
Ada 2012
Ada 2012Ada 2012
Ada 2012
AdaCore
 

Viewers also liked (7)

GNAT Pro User Day: AdaCore University
GNAT Pro User Day: AdaCore UniversityGNAT Pro User Day: AdaCore University
GNAT Pro User Day: AdaCore University
 
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
 
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
 
GNAT Pro User Day: VISIUM™ and Ada
GNAT Pro User Day: VISIUM™  and AdaGNAT Pro User Day: VISIUM™  and Ada
GNAT Pro User Day: VISIUM™ and Ada
 
GNAT Pro User Day: GNATdoc: Automatic Documentation Generator
GNAT Pro User Day: GNATdoc: Automatic Documentation GeneratorGNAT Pro User Day: GNATdoc: Automatic Documentation Generator
GNAT Pro User Day: GNATdoc: Automatic Documentation Generator
 
GNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
GNAT Pro User Day: New and Upcoming Developments in the AdaCore TechnologyGNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
GNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
 
Ada 2012
Ada 2012Ada 2012
Ada 2012
 

Similar to GNAT Pro User Day: Latest Advances in AdaCore Static Analysis Tools

Code Quality - Security
Code Quality - SecurityCode Quality - Security
Code Quality - Security
sedukull
 
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald BelchamGetting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
.NET Conf UY
 
Code Review with Sonar
Code Review with SonarCode Review with Sonar
Code Review with Sonar
Max Kleiner
 
Design Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesDesign Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best Practices
Inductive Automation
 
Design Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesDesign Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best Practices
Inductive Automation
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
ESUG
 
CodeChecker Overview Nov 2019
CodeChecker Overview Nov 2019CodeChecker Overview Nov 2019
CodeChecker Overview Nov 2019
Olivera Milenkovic
 
Beginners overview of automated testing with Rspec
Beginners overview of automated testing with RspecBeginners overview of automated testing with Rspec
Beginners overview of automated testing with Rspec
jeffrey1ross
 
Static Analysis Primer
Static Analysis PrimerStatic Analysis Primer
Static Analysis PrimerCoverity
 
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Denim Group
 
Test automation lesson
Test automation lessonTest automation lesson
Test automation lesson
Sadaaki Emura
 
White box testing
White box testingWhite box testing
White box testing
Neethu Tressa
 
Devops architecture
Devops architectureDevops architecture
Devops architecture
Ojasvi Jagtap
 
Secure Your Open Source Projects For Free
Secure Your Open Source Projects For FreeSecure Your Open Source Projects For Free
Secure Your Open Source Projects For Free
Davide Benvegnù
 
685163main 2 4-a-swat_extendingbenefitsofstaticcodeanalysistools_final
685163main 2 4-a-swat_extendingbenefitsofstaticcodeanalysistools_final685163main 2 4-a-swat_extendingbenefitsofstaticcodeanalysistools_final
685163main 2 4-a-swat_extendingbenefitsofstaticcodeanalysistools_final
Šumadin Šumić
 
Code Analysis-run time error prediction
Code Analysis-run time error predictionCode Analysis-run time error prediction
Code Analysis-run time error predictionNIKHIL NAWATHE
 
Enter Cookbook: refactoring under a microscope
Enter Cookbook: refactoring under a microscopeEnter Cookbook: refactoring under a microscope
Enter Cookbook: refactoring under a microscope
Kamil Samigullin
 
Improving the accuracy and reliability of data analysis code
Improving the accuracy and reliability of data analysis codeImproving the accuracy and reliability of data analysis code
Improving the accuracy and reliability of data analysis code
Johan Carlin
 
Next-gen Automation Framework
Next-gen Automation FrameworkNext-gen Automation Framework
Next-gen Automation Framework
Kumar Swamy Dontamsetti
 
[OPD 2019] AST Platform and the importance of multi-layered application secu...
[OPD 2019]  AST Platform and the importance of multi-layered application secu...[OPD 2019]  AST Platform and the importance of multi-layered application secu...
[OPD 2019] AST Platform and the importance of multi-layered application secu...
OWASP
 

Similar to GNAT Pro User Day: Latest Advances in AdaCore Static Analysis Tools (20)

Code Quality - Security
Code Quality - SecurityCode Quality - Security
Code Quality - Security
 
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald BelchamGetting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
 
Code Review with Sonar
Code Review with SonarCode Review with Sonar
Code Review with Sonar
 
Design Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesDesign Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best Practices
 
Design Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesDesign Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best Practices
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
 
CodeChecker Overview Nov 2019
CodeChecker Overview Nov 2019CodeChecker Overview Nov 2019
CodeChecker Overview Nov 2019
 
Beginners overview of automated testing with Rspec
Beginners overview of automated testing with RspecBeginners overview of automated testing with Rspec
Beginners overview of automated testing with Rspec
 
Static Analysis Primer
Static Analysis PrimerStatic Analysis Primer
Static Analysis Primer
 
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
 
Test automation lesson
Test automation lessonTest automation lesson
Test automation lesson
 
White box testing
White box testingWhite box testing
White box testing
 
Devops architecture
Devops architectureDevops architecture
Devops architecture
 
Secure Your Open Source Projects For Free
Secure Your Open Source Projects For FreeSecure Your Open Source Projects For Free
Secure Your Open Source Projects For Free
 
685163main 2 4-a-swat_extendingbenefitsofstaticcodeanalysistools_final
685163main 2 4-a-swat_extendingbenefitsofstaticcodeanalysistools_final685163main 2 4-a-swat_extendingbenefitsofstaticcodeanalysistools_final
685163main 2 4-a-swat_extendingbenefitsofstaticcodeanalysistools_final
 
Code Analysis-run time error prediction
Code Analysis-run time error predictionCode Analysis-run time error prediction
Code Analysis-run time error prediction
 
Enter Cookbook: refactoring under a microscope
Enter Cookbook: refactoring under a microscopeEnter Cookbook: refactoring under a microscope
Enter Cookbook: refactoring under a microscope
 
Improving the accuracy and reliability of data analysis code
Improving the accuracy and reliability of data analysis codeImproving the accuracy and reliability of data analysis code
Improving the accuracy and reliability of data analysis code
 
Next-gen Automation Framework
Next-gen Automation FrameworkNext-gen Automation Framework
Next-gen Automation Framework
 
[OPD 2019] AST Platform and the importance of multi-layered application secu...
[OPD 2019]  AST Platform and the importance of multi-layered application secu...[OPD 2019]  AST Platform and the importance of multi-layered application secu...
[OPD 2019] AST Platform and the importance of multi-layered application secu...
 

More from AdaCore

RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standards
AdaCore
 
Have we a Human Ecosystem?
Have we a Human Ecosystem?Have we a Human Ecosystem?
Have we a Human Ecosystem?
AdaCore
 
Rust and the coming age of high integrity languages
Rust and the coming age of high integrity languagesRust and the coming age of high integrity languages
Rust and the coming age of high integrity languages
AdaCore
 
SPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic librarySPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic library
AdaCore
 
Developing Future High Integrity Processing Solutions
Developing Future High Integrity Processing SolutionsDeveloping Future High Integrity Processing Solutions
Developing Future High Integrity Processing Solutions
AdaCore
 
Taming event-driven software via formal verification
Taming event-driven software via formal verificationTaming event-driven software via formal verification
Taming event-driven software via formal verification
AdaCore
 
Pushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program ProofPushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program Proof
AdaCore
 
RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standards
AdaCore
 
Product Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configurationProduct Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configuration
AdaCore
 
Securing the Future of Safety and Security of Embedded Software
Securing the Future of Safety and Security of Embedded SoftwareSecuring the Future of Safety and Security of Embedded Software
Securing the Future of Safety and Security of Embedded Software
AdaCore
 
Spark / Ada for Safe and Secure Firmware Development
Spark / Ada for Safe and Secure Firmware DevelopmentSpark / Ada for Safe and Secure Firmware Development
Spark / Ada for Safe and Secure Firmware Development
AdaCore
 
Introducing the HICLASS Research Programme - Enabling Development of Complex ...
Introducing the HICLASS Research Programme - Enabling Development of Complex ...Introducing the HICLASS Research Programme - Enabling Development of Complex ...
Introducing the HICLASS Research Programme - Enabling Development of Complex ...
AdaCore
 
The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!
AdaCore
 
Adaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR Architecture
AdaCore
 
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
AdaCore
 
Software Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologySoftware Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar Technology
AdaCore
 
MISRA C in an ISO 26262 context
MISRA C in an ISO 26262 contextMISRA C in an ISO 26262 context
MISRA C in an ISO 26262 context
AdaCore
 
Application of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle softwareApplication of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle software
AdaCore
 
The Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareThe Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling Software
AdaCore
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise Environment
AdaCore
 

More from AdaCore (20)

RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standards
 
Have we a Human Ecosystem?
Have we a Human Ecosystem?Have we a Human Ecosystem?
Have we a Human Ecosystem?
 
Rust and the coming age of high integrity languages
Rust and the coming age of high integrity languagesRust and the coming age of high integrity languages
Rust and the coming age of high integrity languages
 
SPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic librarySPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic library
 
Developing Future High Integrity Processing Solutions
Developing Future High Integrity Processing SolutionsDeveloping Future High Integrity Processing Solutions
Developing Future High Integrity Processing Solutions
 
Taming event-driven software via formal verification
Taming event-driven software via formal verificationTaming event-driven software via formal verification
Taming event-driven software via formal verification
 
Pushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program ProofPushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program Proof
 
RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standards
 
Product Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configurationProduct Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configuration
 
Securing the Future of Safety and Security of Embedded Software
Securing the Future of Safety and Security of Embedded SoftwareSecuring the Future of Safety and Security of Embedded Software
Securing the Future of Safety and Security of Embedded Software
 
Spark / Ada for Safe and Secure Firmware Development
Spark / Ada for Safe and Secure Firmware DevelopmentSpark / Ada for Safe and Secure Firmware Development
Spark / Ada for Safe and Secure Firmware Development
 
Introducing the HICLASS Research Programme - Enabling Development of Complex ...
Introducing the HICLASS Research Programme - Enabling Development of Complex ...Introducing the HICLASS Research Programme - Enabling Development of Complex ...
Introducing the HICLASS Research Programme - Enabling Development of Complex ...
 
The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!
 
Adaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR Architecture
 
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
 
Software Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologySoftware Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar Technology
 
MISRA C in an ISO 26262 context
MISRA C in an ISO 26262 contextMISRA C in an ISO 26262 context
MISRA C in an ISO 26262 context
 
Application of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle softwareApplication of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle software
 
The Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareThe Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling Software
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise Environment
 

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 

GNAT Pro User Day: Latest Advances in AdaCore Static Analysis Tools

  • 1. Latest Advances in AdaCore Static Analysis Tools Presented by Arnaud Charlet
  • 2. What is Static Analysis? • Basic Static Analysis: coding standard checking, metrics, compiler warnings and style checks • Advanced Static Analysis: symbolic execution/interpretation of source code, whole program analysis to perform software verification • Formal Verification: verify high level or abstract properties on your application, give strong guarantees
  • 3. Why Use Static Analysis? • Make software more reliable at reasonable cost • Full coverage of your code • No missing check (no “false negatives”) • Anticipate problems (get results before testing) • Automate part of code review • Express and verify your requirements and architecture
  • 4. CodePeer Overview • Advanced static analysis tool for Ada • Includes also basic static analysis (gnatcheck, gnatmetric) • Detects runtime and logic errors • Buffer overflow, division by zero, dead code, … • Analyzes complete or partial programs (full Ada) • Generates human readable annotations
  • 5. Why Use CodePeer? • Early testing (detect errors earlier on code modifications/new code) • Find bugs (on existing code) • Impact analysis • Code review: help focusing on potential problems/complex code
  • 6. Why Use CodePeer? • Race conditions • Provide evidence for program verification
  • 7. SPARK Overview • Formal verification tool and language developed by AdaCore and Altran • Subset of Ada 2012: no pointers, no exceptions • New aspects, pragmas, attributes • Can add (executable) contracts for more precise analysis • Can combine test and proof at subprogram level • Allows 100% automatic proof
  • 8. Why Use SPARK? • Guarantee no runtime errors, no uninitialized variables • Functional verification • Check data flows (data coupling) • Express and verify high level properties
  • 9. Why Use SPARK? When starting from existing code: • You can start by adding incrementally annotations (pre/post) • Get immediate benefit from tests • Incrementally get additional benefits from the SPARK toolset
  • 10. Why Use SPARK? When (re)writing (new) code: • Express your requirements in a way that can be reviewed by humans, checked by testing, and verified by SPARK • Express your software architecture, and verify it automatically
  • 11. SPARK CodePeer • Ada subset (no pointers/exceptions) • Requires more effort (add contracts) • Find (and prove) all runtime errors • Verify functional correctness and security properties • Full Ada • Very easy to run (easier than writing tests) • Find possible runtime errors and suspicious code worth reviewing • No functional error detection • Can tune level of detection/false alarms
  • 12. Next Release SPARK 15.0 and CodePeer 3.0
  • 13. What’s New in SPARK 15.0 • Improved proof capability • Improved user interface • New language features
  • 14. Improved Proof Capability • Local subprograms can be used without contracts • Improved parallelism • Use of Ada functions in contracts • Improved handling of arrays, integers, floating-point
  • 15. Improved User Interface • Improved handling of error and warning messages • More precise generation of contracts (Globals/Depends) • Support for manual provers (e.g. Coq, Isabelle) • Computation and display of remaining assumptions • Improved documentation (examples, tutorials, …)
  • 16. New Language Features • Support for tagged types and dynamic dispatching • Library of (un)bounded indefinite containers • Support for dynamic constants/types • Improved usability of volatile objects • Support for simple raise statements • Support for proof-only (“ghost”) code
  • 17. What’s New in CodePeer 3.0 • DO178B and EN50128 qualification • Support for IEEE 754 floating point semantics • Symbolic debugger • Enhanced project file support • Improved support for non GNAT compilers • Enhanced Messages
  • 18. DO178B Qualification • CodePeer can be used to automate part of DO178B 6.3.4.f The objective is to determine the correctness and consistency of the Source Code • Qualified as a verification tool (TQL 5 in DO178C) • Most checks have been qualified: overflow, range, index, division by zero, uninitialized variables • Generation of a detailed report file (date of run, switches, messages, limitations, …)
  • 19. EN50128 Qualification • Qualified as a tool class T2 • Boundary value analysis • Null dereference, buffer overflow, numeric overflow, … • Control flow analysis • Unreachable code, redundant conditionals, … • Data flow analysis • Uninitialized variables, redundant assignments, …
  • 20. IEEE 754 Floating Point • CodePeer used to approximate floating point using infinite precision values (mathematical results) • This could lead to missing potential errors, or false alarms • IEEE 754 rounding and loss of precision now taken into account • Reliable detection of possible overflows, division by zero • Understand properties of mathematical functions (cos, sin, sqrt, …)
  • 21. Symbolic Debugger • Display of Backtraces on precondition messages • Display of possible values for any variable
  • 22. Enhanced Project File Support • Aggregate projects • Specifying main files on command line • Analyzing closure of project • Excluding some files from analysis • Improved documentation on getting started with project files
  • 23. Support for Other Compilers • Compiler specific libraries • Support for a target configuration file • Ability to generate a target configuration file using target compiler • Support for Ada 83 non portable or invalid code
  • 24. Enhanced Messages • New message: check on possible parameter aliasing • New filter on security related vulnerabilities • Support for CWE (Common Weakness Enumeration) cwe.mitre.org • Compiler-like behavior: file by file quick incremental analysis • More accurate messages, fewer false positives
  • 25. Future Plans SPARK 16.0 and CodePeer 3.1
  • 26. SPARK 16.0 • Generation of counter examples • Integration with tests • Symbolic debugger • Improved proof • Support for tasking
  • 27. CodePeer 3.1 • Detection of dangling references • Incremental (re)analysis • Integration with GNATtest • New HTML interface • Integration with Jenkins